ping
ping — це службова комп'ютерна програма, призначена для перевірки з'єднань в мережах на основі TCP/IP.
Вона відправляє запити Echo-Request протоколу ICMP зазначеному вузлу мережі й фіксує відповіді (ICMP Echo-Reply). Час між відправленням запиту й одержанням відповіді (RTT, від англ. Round Trip Time) дозволяє визначати двосторонні затримки (RTT) у маршруті й частоту втрати пакетів, тобто побічно визначати завантаженість каналів передачі даних і проміжних пристроїв.
Повна відсутність ICMP-відповідей може також означати, що віддалений вузол (або якийсь із проміжних маршрутизаторів) блокує ICMP Echo-Reply або ігнорує ICMP Echo-Request.
Програма ping є одним з основних діагностичних засобів у мережах TCP/IP і входить у поставку всіх сучасних мережевих операційних систем. Функціональність ping також реалізована в деяких вбудованих ОС маршрутизаторів, доступ до результатів виконання ping для таких пристроїв за протоколом SNMP визначається RFC 2925 (Definitions of Managed Objects for Remote Ping, Traceroute, and Lookup Operations).
Зміст |
Практичне застосування[ред.]
- Можна взнати IP-адресу по доменному імені.
- Можна перевірити, чи є зв‘язок з сервером.
- Також, команда ping, дозволяє перевірити якість каналу, подивившись, скільки пакетів не дійшло або час відклику.
ΔΕΚ== Інші сфеΛĆри застосування == Термін пінг зазвичай використовується для опису передачі будь-якого повідомлення або сигналу з метою виявлення і тестування мережевих послуг або функцій. Наприклад, пінг може бути надіслано за допомогою User Datagram Protocol (UDP) до пристрою, розташованого за транслятор мережевих адрес (NAT), щоб порт обов'язковими для NAT по тайм-ауту та видалення відображення. Інші приклади короткі або порожні миттєві повідомлення, електронну пошту, голосову пошту, або пропущених викликів, повідомлення, щоб вказати, доступність. У різних мережевих багатокористувацьких ігор, ping відеоігри виконує аналогічні функції, як ping програми для Інтернет-трафіку. Ігровий сервер вимірює час, необхідний для гри пакет для досягнення клієнта і відповідь буде отримана. Цей час прийому-передачі, як правило, називають, як ping гравця.
Параметри[ред.]
Windows[ред.]
-t Відправка пакетів на вказаний вузол до команди переривання.
-a Встановлення адрес по іменах вузлів.
-n Число запитів, що відсилаються.
-l Розмір буферу відсилання.
-f Встановлення прапору, забороняючого фрагментацію пакета.
-i Встановлення строку життя пакету <"Time To Live">.
-v Встановлення типу служби <"Type Of Service">.
-r Запис маршруту для вказаного числа переходів.
-s Штамп часу для вказаного числа переходів.
-j Вільний вибір маршруту по списку вузлів.
-k Жорсткий вибір маршруту по списку вузлів.
-w Таймаут кожної відповіді в мілісекундах.
-4 Примусове використання протоколу IPv4.
-6 Примусове використання протоколу IPv6.
Приклад[ред.]
Windows[ред.]
С:\>ping wikipedia.org
Обмен пакетами с wikipedia.org [208.80.152.201] с 32 байтами данных:
Ответ от 208.80.152.201: число байт=32 время=189мс TTL=48
Ответ от 208.80.152.201: число байт=32 время=184мс TTL=48
Ответ от 208.80.152.201: число байт=32 время=180мс TTL=48
Ответ от 208.80.152.201: число байт=32 время=184мс TTL=48
Статистика Ping для 208.80.152.201:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 180мсек, Максимальное = 189 мсек, Среднее = 184 мсек
Linux[ред.]
# ping -c 5 www.example.com PING www.example.com (192.0.43.10) 56(84) bytes of data. 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=1 ttl=250 time=80.5 ms 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=2 ttl=250 time=80.4 ms 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=3 ttl=250 time=80.3 ms 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=4 ttl=250 time=80.3 ms 64 bytes from 43-10.any.icann.org (192.0.43.10): icmp_seq=5 ttl=250 time=80.4 ms --- www.example.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4006ms rtt min/avg/max/mdev = 80.393/80.444/80.521/0.187 ms
Етимологія[ред.]
Назва програми походить від звуку імпульсу що реєструє сонар при його відбитті від об'єкта.
Історія[ред.]
Програма була написана Майком Мууссом (англ. Mike Muuss), вченим Дослідницької Лабораторії Балістики (англ. Ballistics Research Lab) США в грудні 1983 року, як утиліта діагностики проблем у IP мережах. Він назвав її в честь звуку сонара, оскільки методологія утиліти схожа на ехолокацію.
Корисність утиліти ping в наданні допомоги діагностики проблем підключення до Інтернету була порушена, починаючи з 2003 року, коли інтернет-провайдери почали фільтрації ICMP повідомлення Тип 8 (ICMP Echo Request) на кордонах мережі. Частково це було обумовлено на ширше використання ping для розвідки цілей, наприклад, інтернет-хробаків, таких як Welchia , щоб знайти нові комп'ютери, щоб заразити. Не тільки наявність ping відповіді витоку інформації зловмисникові, він додав до загального навантаження на мережу, створюючи проблеми для маршрутизаторів у мережі Інтернет. Однак пройде відкриття або ping сканування або ping-розгортки і раніше є частиною мережного сканування інструментів, таких як Nmap, так як він може дати основні дані про існування на віддаленій машині. RFC 1122 передбачає, що будь-який господар повинен приймати луна-запиту і видавати луна-відповіді у відповідь. Це було охарактеризовано як загроза безпеки .
Історія написання описана Майклом Муссом (переклад)
Так, це правда! Я є автором утиліти пінг для UNIX. Утиліта пінг складається з близько тисячі рядків коду,які були написані мною за один вечір, про який практично всі здається знають. :-)
Я назвав її на честь звуку, який робить гідролокатор, будучи натхненним принципом ехолокації. У коледжі я модельював багато гідроакустичних і радіолокаційних систем, так що і в "кіберпросторі" аналогія здавалася дуже перспективною. Ця програма писалась у подібному до сонара стилі але для визначення проблем що виникли з доменом: пінг використовує IP / ICMP і ECHO_REQUEST ECHO_REPLY пакети, щоб досліджувати "відстань" до цільової машини.
Мій перший стимул для написання PING для BSD UNIX 4.2а був спонтанним і прийшов у липні 1983 року підчас дискусії з д-р Дейвом Міллсом з яким ми відвідували зустріч DARPA в Норвегії, під час якої він описав деякі роботи, які він зробив на своєму "Fuzzball" LSI -11 системи для вимірювання шляху з використанням узгодженої за часом затримки пакетів ICMP Echo.
У грудні 1983 р. я зіткнувся з дивною поведінкою мережі в IP BRL. Посилаючись на коментарі доктора Міллса, мені досить швидко вдалося паписати програму PING, яка періодично опитувала на відкриття ICMP в стилі SOCK_RAW AF_INET Berkeley-style socket(). Код був складений дуже добре, але це не спрацювало, тому що не було ніякої підтримки ядра мережевого протоколу ICMP! Обурений цим, я написав до підтримки і все працювало добре аж до світанку. Не здивований цим Чак Кеннеді (так звани0й "Керміт") виявив та виправив помилки мережевого обладнання, перш ніж я зміг запустити мою першу версю "Ping" пакета. Але пізніше я ще неодноразово використовував її зтих пір. :-) Якби я знав тоді, що це буде моїм найвідоміший досягненням в житті, я, можливо, попрацювавби над нею ще один день або два, і додав ще кілька варіантів.
Люди в Берклі охоче підтримали мою ідею змін в ядрі і код PING джерела, і вини стали стандартною частиною Berkeley UNIX. Так як дана ОС була безкоштовною, то моя утиліта була внесена у багато системи з тих пір, у тому числі Microsoft Windows 95 і Windows NT. Ви можете побачити відмінності у повідомленнях, які вона повідомляє, виглядають вони таким чином: PING vapor.arl.army.mil (128.63.240.80): 56 data bytes
64 bytes from 128.63.240.80: icmp_seq=0 time=16 ms
64 bytes from 128.63.240.80: icmp_seq=1 time=9 ms
64 bytes from 128.63.240.80: icmp_seq=2 time=9 ms
64 bytes from 128.63.240.80: icmp_seq=3 time=8 ms
64 bytes from 128.63.240.80: icmp_seq=4 time=8 ms
^C
----vapor.arl.army.mil PING Statistics----
5 packets transmitted, 5 packets received, 0% packet loss
round-trip (ms) min/avg/max = 8/10/16
У 1993 році, через десять років після того, як я написав PING, USENIX асоціація подарувала мені гарний грамоту, у якій висловлювалась спільна подяка від USENIX Association 1993 Lifetime Achievement Award та була представлена Науково-дослідна обчислювальна Systems Group, Каліфорнійського університету в Берклі 1979-1993. Мою роботу було названо глибоким інтелектуальним досягненням і найвищий рівень обслуговування для нашої організація. На прохання директора CSRG були названі учасники та організації які брали участь у CSRG і я був серед них. Wow!
Хочете побачити вихідний код? (40k)
З моєї точки зору слово PING не є скороченням від Packet InterNet Grouper, а було взяте по аналогії з принципом гідролокатора. Тим не менш, я чув, що Дейв Міллс пропонував таке розширення імені, тому, можливо, ми обидва маємо рацію. І я подумав, що уряд слабкий до розширення скорочень! :-)
Філом Дікстра додана підтримка ICMP запису маршруту для пінг, але на той час було лише кілька маршрутизаторів обробивши їх, що робило дане доповнення практично марним. Обмеження на кількість переходів, які можуть бути записані в заголовку IP виключається з цього виміру дуже довгими.
Я був шалено збентеженим, коли Van Jacobson з LBL використовував моє ядро підтримки ICMP писата при розробці TRACEROUTE, розуміючи, що він може отримати ICMP Time-To-Live шляхом перевищення розміру повідомлень при діагностики шляхом модуляції IP часу життя (TTL) області. Шкода, що я думав про це! :-) Звичайно, реальна Traceroute використовує UDP датаграми, тому що маршрутизатори не повинні генерувати повідомлення про помилки ICMP для ICMP повідомлень.
Кращу історію пінга, яку я коли-небудь чув, мені розказали на USENIX конференції, на якій адміністратора мережі за допомогою Ethernet частково пов'язав пінг програму з його програмою вокодером, по суті листа:
ping goodhost | sed -e 's/.*/ping/' | vocoder
Він підєднав дротовий вихід вокодера у своєму кабінеі до аудіосистеми і збільшив гучність так сильно, наскільки це було можливо. Комп'ютер знаходився там кричали "пінг, пінг, пінг ..." разів на секунду, і він бродив по будівлі ворушити Ethernet роз'єми, поки звук не зник. І це,так він знайшов Тимчасова несправність.
Див. також[ред.]
Посилання[ред.]
- Історія програми ping(англ.) від автора Майка Муусса
|
||||||||||||||||||||||||||||||||
