Интегрированные сети ISDN


Ping и Traceroute - часть 3


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 :

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

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




Начало  Назад  Вперед



Книжный магазин