Почему длина данных пакета ping 32, а длина данных пакета traceroute - 64 байта? Есть ли причина для этого? Или есть какие-то преимущества для этой разницы?
1 ответ
Реальность немного сложнее:
И ping, и traceroute имеют опции для изменения размера пакета:
Опция ping изменяет размер полезной нагрузки, например, при запуске
ping -s 1 www.google.com
будет пинговать Google с 29-байтовым общим пакетом (20-байтовый заголовок IP + 8-байтовый заголовок ICMP + 1-байтовые данные).Параметр tracerote позволяет изменить общий размер, например, запустив
traceroute www.google.com 80
отправит UDP-пакеты общим размером 80 байт (20-байтовый заголовок IP + 8-байтовый UDP + 52-байтовые данные).
Различные версии ping и traceroute имеют разные значения по умолчанию. Однако все они находятся в диапазоне менее 100 байтов, и точное количество байтов не имеет значения. Если ваш пинг по умолчанию равен 32, то общий размер пакета составляет 60 байт, что мало чем отличается от вашего traceroute.
Общий размер пакета может отличаться в зависимости от того, используете ли вы IPv4 или IPv6, настройки IP и т.д.
Наиболее распространенная причина увеличения размера пакетов как ping, так и traceroute - это отладка проблем MTU, кроме того, настройки по умолчанию работают просто отлично.