Точное значение протокола ICMP 1 порт xxx недоступен при пинг-обмене

1083
Harald

Tcpdump сеанса ping показывает следующие две строки:

IP gateway.comp.com > somehost.comp.com: ICMP redirect 10.8.0.10 to host othergateway.comp.com, length 68 IP gateway.comp.com > somehost.comp.com: ICMP 10.8.0.10 protocol 1 port 21475 unreachable, length 68 

Я понимаю первое сообщение. Он просто говорит somehostне беспокоить основной gatewayпакет с 10.8.0.10, а скорее направлять их через него othergateway.

Но что означает второе сообщение. Это приходит через 17 мс и, похоже, связано. Что protocol 1 port XXXв этом контексте. Что именно недоступно? У ICMP (= протокол 1) нет портов, афаик, так что это значит?

1

1 ответ на вопрос

0
RedGrittyBrick

Вероятно, это управляющее сообщение ICMP Тип 3 (пункт назначения недоступен) Код 3 (порт недоступен)

Это означает, что ни один серверный процесс не связан с этим портом TCP или UDP в месте назначения.

«Одно из правил UDP состоит в том, что, если он получает дейтаграмму UDP, а порт назначения не соответствует порту, который используется каким-либо процессом, UDP отвечает с портом ICMP, недоступным». - из иллюстрированного TCP / IP, Стивенс .

Почему UDP? Команда pingтрадиционно реализуется с использованием эхо-запросов ICMP, но на некоторых платформах некоторые инструменты могут использовать другие протоколы. Примером будетnmap -sU

Хм, не уверен насчет теории UDP. «Шлюз» окончательно получает ICMP-пакеты от «somehost». Он не знает, что кто-то использует `ping` на` somehost`. Он знает только пакеты. Почему он должен переключаться с ICMP на UDP? Но опять же: я только регистрирую ICMP. Так что, возможно, недостижимый на самом деле относится к пакету UDP, который я не регистрировал. Harald 7 лет назад 0