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

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

TCP-дамп сеанса 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

Это, вероятно,Управляющее сообщение ICMP Тип 3 (адресат недоступен) Код 3 (порт недоступен)

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

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

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

решение2

Что protocol 1 port XXXв этом контексте?

Протокол номер 1 — ICMP. ICMP не использует порты, но использует 16-битный идентификатор, который здесь для простоты именуется как port. (Возможно, программист не удосужился провести различие, или пользователи были бы еще больше запутаны меткой identifier.)

Поле идентификатора также используется маршрутизаторами NAT для сопоставления ответов с исходным сеансом NAT и, конечно, самим локальным стеком IP для маршрутизации эхо-ответа обратно в процесс, который инициировал запрос, — очень похоже на номер порта транспортного уровня.

Связанный контент