Номер порту 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-модуль ".
Рон Моупін

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

Ви отримали роботу?
Janac Meena

1
Так, я влаштувався на роботу.
Нішад Морей

Відповіді:


62

Стандартна команда ping не використовує TCP або UDP. Він використовує ICMP. Точніше, використовується тип ICMP типу 8 (ехо-повідомлення) та тип 0 (повідомлення ехо-відповіді). ICMP не має портів!

Детальнішу інформацію див. У RFC792 .


5
Для уточнення ICMP прямує безпосередньо по IP як IP протокол 1. У заголовку ICMP у вас є типи echo / echo відповідь тощо. Порівняйте це з TCP та UDP, які їздять по IP як протоколи 6 та 17 відповідно, і використовують власну портну систему для диференціації програм.
cmschmidt15

5

Я хотів би дати вам додаткову відповідь, особливо на цю частину питання:

... хтось каже, що ICMP використовує порт 7

Порт 7 (і TCP, і UDP) використовується для послуги "ехо".

Якщо ця послуга доступна на комп'ютері, порт UDP 7 може бути використаний замість ICMP для виконання "ping".

Однак у більшості сучасних комп'ютерів не працює служба "ехо", тому виконувати "пінг", використовуючи порт UDP 7 замість ICMP, не буде працювати.

І: Як вже вказують слова "замість ICMP", "ping" через порт 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 використовує не порт, а протокол. Ping діє, надсилаючи пакети запитів ехо-сигналу протоколу Internet Control Message (ICMP) до цільового хоста та чекаючи відповіді ехо-сигналу ICMP. Однак, з точки зору безпеки, це часто вимикається.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.