Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

2004 г.

4.5.1. Ping и Traceroute

Семёнов Ю.А. (ГНЦ ИТЭФ), book.itep.ru

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

Ping - это процедура, которая базируется на IP- и ICMP-протоколах пересылки дейтограмм и служит для трассировки маршрутов и проверки работоспособности каналов и узлов (в некоторых программных пакетах эта команда имеет имена trace, hopcheck, tracert или traceroute). Для решения поставленной задачи PING использует отклики протокола ICMP (смотри также статьи о протоколах IP и ICMP). В протоколе IP имеется опция записи маршрута (RR - Record Route). В отличие от традиционной команды traceroute опция RR позволяет записать как путь от инициатора до адресата, так и обратный маршрут. К сожалению разработчики протокола предусмотрели для записи маршрута только 37 байт, сюда может поместиться максимум девять IP-адресов (определяется предельным размером поля опций). Применяется PING и при отладке сетевых продуктов. Трассировка может выполняться, например, посредством команды ping -q <Internet_адрес> (пакет PCTCP). При выполнении этой команды ЭВМ сообщит вам Internet адреса всех промежуточных узлов, их имена и время распространения отклика от указанного вами узла. Следует иметь в виду, что трассировка осуществляется непосредственно с помощью IP-протокола (опция записи адресов промежуточных узлов). Ниже приведен пример использования команды Ping. Если вы просто напечатаете команду ping (пакет PCTCP), то ЭВМ выдаст на экран справочную таблицу по использованию этой команды:

Usage:
ping [-options] host
options:


-d [bytes] dump input packet (пропечатка входных пакетов).
-d# [bytes] dump output packet (пропечатка выходных пакетов).
-e cancel extended security (отмена дополнительных мер безопасности)
-i seconds IP time to live (установка времени жизни пакетов IP)
-j dest 1...dest n loose source routing (свободная маршрутизация).
-k dest 1...dest n strict source routing (принудительная маршрутизация).
-l length set length of icmp data (установить длину данных для ICMP).
-n times ping host times number of times (провести зондирование ЭВМ заданное число раз).
-o no-op option (ни каких опций для операций).
-p precedence set IP precedence (установка IP-предпочтения).
-q trace route (трассировка маршрута).
-r record route (запись маршрута).
-s level [authority] basic security (базовый уровень безопасности).
-t ping forever (режим бесконечного ping).
-v type set type of service (установка типа операции).
-w seconds time to wait for answer (установка времени ожидания ответа).
-x [{1|3 dest1..destn}] timestamp option (опция временных меток).
-z quiet mode (набор статистики отключен).

Команда трассировки маршрута ИТЭФ - сервер научно-исследовательской станции США Мак-Мурдо в Антарктиде (запись в файл route.txt):

ping -q mcmurdo-gw.mcmurdo.gov > route.txt

Содержимое файла route.txt будет иметь вид:

hop 1: 193.124.224.190 ??? имя для GW ИТЭФ пока не придумано
hop 2: 193.124.137.13 MSU-Tower.Moscow.RU.Radio-MSU.net Вперед, в космос
hop 3: 193.124.137.9 NPI-MSU.Moscow.RU.Radio-MSU.net Через спутник "Радуга"
hop 4: 193.124.137.6 DESY.Hamburg.DE.Radio-MSU.net пакеты совершили мягкую посадку в Гамбурге, ДЕЗИ
hop 5: 188.1.133.56 dante.WiN-IP.DFN.DE
hop 6: 193.172.4.12 duesseldorf2.empb.net
hop 7: 193.172.4.8 amsterdam6.empb.net
hop 8: 193.172.12.6 Amsterdam1.dante.net Пересекаем Атлантический океан
hop 9: 194.41.0.42 New-York1.dante.net вступили на землю США
hop 10: 192.103.63.5 en-0.cnss35.New-York.t3.ans.net
hop 11: 140.222.32.222 mf-0.cnss32.New-York.t3.ans.net
hop 12: 140.222.56.2 t3-1.cnss56.Washington-DC.t3.ans.net
hop 13: 140.222.145.1 t3-0.enss145.t3.ans.net
hop 14: 192.203.229.243 SURA2.NSN.NASA.GOV Снова в космос
hop 15: 128.161.166.1 GSFC8.NSN.NASA.GOV но теперь через американский
hop 16: 128.161.232.1 GSFC12.NSN.NASA.GOV спутник
hop 17: 128.161.1.1 ARC1NEW.NSN.NASA.GOV
hop 18: 192.203.230.2 ARC1.NSN.NASA.GOV
hop 19: 192.100.12.2 ARC2.NSN.NASA.GOV
hop 20: 128.161.115.2 MCMURDO.NSN.NASA.GOV Оденьте шапку, мы в Антарктиде!
Target 157.132.100.1 reached on hop 21 round-trip time 1370 ms

Фантастика, мы пересекли туда и обратно Европу, два океана и США с востока на запад, побывали в Антарктиде и все это менее чем за полторы секунды.

Ping позволяет не только проверить работоспособность канала, но измерить ряд его характеристик, включая надежность (например, версия ping для SUN):

PING -s cernvm.cern.ch 100 64 (пакеты по 100 байт посылаются 64 раза)
108 bytes from crnvma.cern.ch (128.141.2.4): icmp_seq=0. time=606. Ms
.............. (результаты пересылки пакетов с номерами 1-61 опущены)
108 bytes from crnvma.cern.ch (128.141.2.4): icmp_seq=62. time=667. Ms
108 bytes from crnvma.cern.ch (128.141.2.4): icmp_seq=63. time=628. Ms
---- PING Statistics ----
64 packets transmitted, 63 packets received, 1% packet loss (процент потерянных пакетов)

round-trip (ms) min/avg/max = 600/626/702

Для получения большей точности следует послать большее число пакетов. В последней строке приведены результаты измерения RTT, где представлены минимальное/среднее/максимальное значения.

Наибольшее число модификаций имеет BSD-версия ping, если на вашей ЭВМ нет этой удобной программы, можно воспользоваться общедоступной версией по адресу:

ftp.uu.net /unix/bsd-sources/sbin/ping (см. также приложения).

Сходную информацию позволяет получить и программа traceroute (использует непосредственно IP-пакеты):

traceroute -n cernvm.cern.ch
traceroute to crnvma.cern.ch (128.141.2.4) 30 hops max, 40 byte packets
1 193.124.224.50 3 ms 2 ms 2 ms
2 194.85.112.130 3 ms 3 ms 3 ms
3 194.67.80.5 4 ms 3 ms 3 ms
4 193.124.137.6 534 ms 534 ms 534 ms
5 188.1.56.5 545 ms 545 ms 546 ms
6 193.172.4.12 558 ms (ttl=59!) 549 ms (ttl=59!) 548 ms (ttl=59!)
7 193.172.4.30 580 ms (ttl=58!) 581 ms (ttl=58!) 581 ms (ttl=58!)
8 193.172.24.10 586 ms 585 ms 597 ms
9 192.65.185.1 593 ms 587 ms 598 ms
10 128.141.2.4 628 ms 602 ms 619 ms

При написании программ, использующих протокол ICMP, полезно воспользоваться отладочной опцией PING, которая позволяет получить на экране шестнадцатеричный образ посылаемого и получаемого пакетов:

ping -d# 300 ns.itep.ru (версия PCTCP, запрос отклика серверу имен, число байт, подлежащих выдаче, равно 300)

Dump of outgoing packet
Version = 4 IP header length = 5 Precedence = Routine
Type of Service = Normal
Total length = 284 Protocol = 1 TTL = 64
45 00 01 1C 00 02 00 00 40 01 71 29 C0 94 A6 81 C1 7C E0 23 IP-заголовок
08 00 8D BD E9 03 00 01 ... ICMP-заголовок
host responding, time = 60 ms

Выдачи ради экономии места сильно сокращены. Тексты пакетов начинаются с кодов IP-версии (=4) и длины заголовка (=5), далее следует байт TOS=0, два байта длины пакета (01 1С) и т.д. в соответствии с требованиями IP-протокола.

ping -d 300 ns.itep.ru (команда получения текста пакета-отклика на запрос)
host responding, time = 25 ms
Dump of incoming packet
Version = 4 IP header length = 5 Precedence = Routine
Type of service = Normal
Total length = 284 Protocol = 1 TTL = 254
45 00 01 1C EE 29 00 00 FE 01 C5 00 C1 7C E0 23 C0 94 A6 81
00 00 93 BD EB 03 00 01 ..............

В принципе, процедуру Ping и Traceroute можно реализовать и с привлечением протоколов UDP и TCP. Рассмотрим следующую модель реализации Traceroute <URL>:

Посылаем последовательно по адресу IP(URL) IP-пакеты со значением TTL=1, 2,... и т.д. Если до <URL> больше одного шага, соответствующий маршрутизатор, размещенный по пути следования к адресату, уничтожит посланный пакет и вернет ICMP-сообщение: Time Exceeded (тип ICMP-сообщения=11), указав при этом IP-адрес узла, где это произошло. Послав запрос типа get_name_by_address для присланного IP, можно получить имя узла, откуда пришло данное уведомление. Отсутствие сообщения Time Exceeded (например, после трех попыток) будет говорить о достижении <URL>-адресата. Еще лучше для контроля наличия отклика от узла-мишени использовать реализацию ping на основе протокола UDP или ТСР (например, из библиотеки PERL), так как в этом случае можно задать бессмысленный номер порта и адресат откликнется ICMP-сообщением - порт недоступен (с предъявлением своего IP-адреса). Это будет означать, что адресат достигнут и вы располагаете исчерпывающими данными о пути до него. В результате такой последовательности посылок будет получена исчерпывающая информация о пути до указанной цели.

Для данной методики реализации traceroute не существенно, какой протокол использовать, UDP, ICMP или TCP.


Назад: 4.5. Процедуры Интернет
Оглавление: Телекоммуникационные технологии
Вперёд: 4.5.2. Finger

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...