Номер порта PING?


50

Вчера интервьюер спросил меня, что такое номер порта для ping и какой протокол ping использует TCP / UDP.

После собеседования я выполняю поиск в Интернете и обнаруживаю разные результаты. Кто-то говорит, что ICMP использует порт 7, кто-то говорит, что он не использует номер порта, на одном сайте я нашел, что он использует IP-протокол 1 и т. Д.

Может ли кто-нибудь помочь мне с правильным объяснением?

С уважением, Нишад


2
TCP и UDP - это протоколы уровня 4, а порты - это адреса TCP или UDP, но ICMP является частью IP (уровень 3). Из RFC 792: « ICMP использует базовую поддержку IP , как если бы это был протокол более высокого уровня, однако, ICMP на самом деле является неотъемлемой частью IP и должен быть реализован в каждом модуле IP. »
Рон Maupin

1
Обсуждение уровней здесь немного вводит в заблуждение, поскольку ICMP, TCP и UDP работают напрямую по IP, используя протоколы 1, 6 и 17 соответственно. Для OP просмотрите заголовки для ICMP / TCP / UDP или запустите захват пакетов, чтобы увидеть, как они отличаются. Просто помните, что ICMP полностью отделен от TCP и UDP.
cmschmidt15

Вы получили работу?
Янак Мина

1
Да, я получил работу.
Нишад Мори

Ответы:


62

Стандартная команда ping не использует TCP или UDP. Он использует ICMP. Чтобы быть более точным, используются ICMP типа 8 (эхо-сообщение) и типа 0 (эхо-сообщение). ICMP не имеет портов!

См. RFC792 для получения дополнительной информации.


5
Для пояснения, ICMP использует IP-протокол непосредственно по IP-протоколу. 1. В заголовке ICMP есть типы echo / echo reply и т. Д. Сравните это с TCP и UDP, которые используют IP как протоколы 6 и 17 соответственно и используют собственную систему портов для дифференциации приложений.
cmschmidt15

5

Я хотел бы дать вам дополнительный ответ, особенно на эту часть вопроса:

... кто-то говорит, что ICMP использует порт 7

Порт 7 (как TCP, так и UDP) используется для службы «эхо».

Если эта служба доступна на компьютере, для выполнения «пинга» вместо ICMP можно использовать UDP-порт 7 .

Однако на большинстве современных компьютеров не запущена служба «эхо», поэтому выполнение «ping» с использованием UDP-порта 7 вместо ICMP не будет работать.

И: Как слова «вместо ICMP» уже указывают, «пинг» через UDP порт 7 это НЕ использовать ICMP , но UDP, который является совершенно другой протокол!


В качестве опровержения вашего ответа, на форуме, который я нашел на эту тему, было написано сообщение: «Люди, которые думают, что ICMP каким-то образом использует порт 7 (старый эхо-сервис, где он будет отображать каждый отправленный вами символ), должны не быть в сети и должен быть застрелен. Если вы не согласны с тем, что я сказал, посмотрите на структуру дейтаграммы IP и дейтаграммы ICMP. ICMP инкапсулируется в дейтаграмму IP, а затем дейтаграммы IP в любую конкретный носитель должен формировать кадр ».
Джесси П.

«ICMP не использует порт, поскольку в нем нет места для порта. Он инкапсулирован только с дейтаграммой IP. Параметр порта можно найти только на дейтаграммах UDP и TCP. Чтобы заблокировать эхо-сигнал ICMP, необходимо явно заблокировать тип и код "
Джесси П.


@JesseP. Я написал, что ICMP использует порт 7? Нет. Я даже написал слово «вместо» в «вместо ICMP» жирным шрифтом, чтобы указать, что порт 7 не имеет ничего общего с ICMP. Я немного отредактирую свой ответ, чтобы прояснить ситуацию.
Мартин Розенау

Это честно. Читать было немного запутанно. Сожалею.
Джесси П.

2

Как уже говорили другие, в общем случае эхо-запросы основаны на ICMP и не имеют портов. Однако существует такая вещь, как TCP Ping, где вместо обычного трехстороннего TCP-квитирования выполняются только первые 2 шага и измеряется задержка между ними. После завершения измерения отправляется RST ACK для закрытия полуоткрытого соединения. Затем процесс повторяется до тех пор, пока счетчик / продолжительность не будет достигнута или вы не завершите процесс. Используя TCP Ping (который я использую ЧАСТО для проверки открытых портов на серверах, на которых работают мои системные администраторы), вы можете указать порты назначения для проверки (чтобы убедиться, что сервер прослушивает определенный порт). Исходный порт является просто эфемерным случайным портом.

Если вы хотите увидеть пример утилиты TCP Ping (той, которую я использую в системах Windows), то вы идете: TCPing . Кроме того, NMAP поставляется с утилитой NPING, у которой есть флаг, позволяющий ему выполнять также пинг на основе TCP.

Как примечание, некоторые сетевые устройства также имеют такую ​​возможность, например Cisco ASA, использующие некоторые из более новых версий операционной системы. Команда:ping tcp <destination IP> <destination port>


1

Пинг использует не порт, а протокол. Ping работает, отправляя пакеты эхо-запроса протокола управляющих сообщений Интернета (ICMP) целевому хосту и ожидая эхо-ответа ICMP. Однако из соображений безопасности это часто отключается.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.