<<
>>

Формат сообщения об ошибке и утилита traceroute

На рис. 19.21 показан формат ICMP-сообщения об ошибке, в данном случае это сообщение о недостижимости узла назначения. Остальные ICMP-сообщения об ошибках имеют такой же формат и отличаются друг от друга только значениями полей типа и кода.

Рис. 19.21. Формат ICMP-сообщения об ошибке — недостижимости узла назначения

Когда маршрутизатор не может передать или доставить IP-пакет, он отсылает узлу, отправившему этот пакет, сообщение о недостижимости узла назначения. В поле типа помещается значение 3, а в поле кода — значение из диапазона 0-15, уточняющее причину, по которой пакет не был доставлен. Следующие за полем контрольной суммы 4 байт заголовка не используются и заполняются нулями.

Помимо причины ошибки, указанной в заголовке, в поле данных ICMP-cooбщe- ния всегда помещается заголовок IP и первые 8 байт данных того IP-пакета, который вызвал ошибку.

Эта информация позволяет узлу-отправителю точнее установить причину ошибки, так как все протоколы стека TCP/IP, использующие* для передачи своих сообщений IP-пакеты, содержат наиболее важную для анализа информацию в первых 8 байт своих сообщений. В частности, ими вполне могут оказаться первые 8 байт заголовка TCP или ƯDP, в которых содержится информация, идентифицирующая приложение, пославшее потерянный пакет. Следовательно, при разработке приложения можно предусмотреть встроенные средства реакции на сообщения о недоставленных пакетах.

Узел (или сеть) назначения может быть недостижим по причине временной неработоспособности аппаратуры из-за того, что отправитель указал неверный адрес назначения или маршрутизатор не имеет данных о пути к сети назначения.

Недостижимость протокола и порта означает отсутствие реализации какого-либо протокола прикладного уровня в узле назначения или же отсутствие открытого порта протокола UDP или TCP в узле назначения.

Как было показано на примере утилиты ping, ICMP-сообщения эффективно используются для мониторинга сети. В частности, сообщения об ошибке истечения тайм-аута лежат в основе работы другой популярной утилиты traceroute для Unix, имеющей в Windows 2000 название tracert. Эта утилита позволяет проследить маршрут до удаленного хоста, определить RTT, IP-aдpec и доменное имя для каждого промежуточного маршрутизатора (если это имя зарегистрировано в обратной зоне службы DNS). Такая информация полезна для локализации маршрутизатора, на котором обрывается путь пакета к удаленному хосту.

Утилита traceroute осуществляет трассировку маршрута путем посылки обычных IP-пакетов с адресом назначения, являющимся конечной точкой изучаемого маршрута. Суть метода трассировки состоит в том, что значение TTL первого отправляемого пакета установлено равным 1. Когда протокол IP первого маршрутизатора принимает этот пакет, то он в соответствии со своим алгоритмом уменьшает значение TTL на 1 и получает 0. Маршрутизатор отбрасывает пакет с нулевым временем жизни и возвращает узлу-источнику ICMP-сообщение об ошибке истечения тайм-аута вместе с заголовком IP и первыми 8 байтами потерянного пакета.

Получив ICMP-сообщение о причине недоставки пакета, утилита traceroute запоминает адрес первого маршрутизатора (который извлекает из заголовка IP-пакета, несущего ICMP-сообщение) и вычисляет для него RTT. Затем traceroute посылает следующий IP-пакет, но теперь со значением TTL, равным 2. Этот пакет благополучно проходит первый маршрутизатор, но «умирает» на втором, о чем немедленно отправляется аналогичное ICMP-сообщение об ошибке истечения тайм-аута. Утилита traceroute запоминает адрес и время для второго маршрутизатора и т. д. Такие действия выполняются с каждым маршрутизатором вдоль маршрута вплоть до узла назначения.

Мы рассмотрели работу утилиты traceroute весьма схематично, но и этого достаточно, чтобы оценить изящество идеи, лежащей в основе ее работы.

Ниже приведена копия экранной формы, выведенной утилитой tracert (Windows) при трассировке хоста ds.internic.net [198.49.45.29]:

1 311 ms 290 ms 261 ms 144.206.192.100

2 281 ms 300 ms 271 ms 194.85.73.5

3 2023 ms 290 ms 311 ms moscow-m9-2-S5.relcom eu.net [193.124.254.37]

4 290 ms 261 ms 280 ms MSK-M9-13 Relcom.EU.net [193.125.15.13]

5 270 ms 281 ms 290 ms MSK.RAIL-l-ATM0-155Mb.Relcom.EU.net [193 124.254.82]

6 300 ms 311 ms 290 ms SPB-RASC0M-l-E3-l-34Mb.Relcom.EU.net [193.124.254.78]

7 311 ms 300 ms 300 ms Hssill-0.GW1.STK2.ALTER.NET [146.188.33.125]

8 311 ms 330 ms 291 ms 421.ATM6-0-0.CR2.STK2.Alter.Net [146.188.5.73]

9 360 ms 331 ms 330 ms 219 Hssi4-0.CR2.LND1.Alter.Net [146.188.2.213]

10 351 ms 330 ms 331 ms 412.Atm5-0.BRl.LNDl.Alter.net [146.188.3.205]

11 420 ms 461 ms 420 ms 167.ATM8-0-0.CR1.ATL1.Alter.Net [137.39.69.182312 461 ms 441 ms 440 ms 311.ATM12-0-0.BR1.ATL1.Alter.Net [137.39.21 73]l3 451 ms 410 ms 431 ms atlantal-brl.bbnplanet.net [4.0.2.141]14 420 ms 411 ms 410 ms viennal-br2.bbnplanet.net [4.0.3.154]15 411 ms 430 ms 2514 ms viennal- nbr3.bbnplanet.net [4.0.3.150]16 430 ms 421 ms 441 ms viennal- nbr2.bbnplanet.net [4.0.5.45]I7 431 ms 451 ms 420 ms cambridgel- brl.bbnplanet.net [4.0.5.42]I8 450 ms 461 ms 441 mc cambridgel- crl4.bbnplanet.net [4.0.3.94]I9 451 мс 461 мс 460 мс attbcstoll.bbnplanet.net [2O6.34.99.38]2O 501 мс 460 мс 481 мс shutdown.ds.internic.net [198.49.45.29]

Последовательность строк соответствует последовательности маршрутизаторов, образующих маршрут к заданному узлу. Первое число в строке — число хопов до соответствующего маршрутизатора. Утилита traceroute тестирует каждый маршрутизатор трижды, поэтому следующие три числа в строке — это значения RTT, вычисленные путем посылки трех пакетов, время жизни которых истекло на этом маршрутизаторе. Если ответ от какого-либо маршрутизатора не приходит за заданное время, то вместо времени на экране печатается звездочка (*).

Далее идут IP-aдpec и доменное имя (если оно имеется) маршрутизатора. Видно, что почти все интерфейсы маршрутизаторов поставщиков услуг Интернета зарегистрированы в службе DNS, а первые два, относящиеся к локальным маршрутизаторам, — нет.

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

<< | >>
Источник: В. Г. Олифер, Н. А. Олифер. 54 Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов. 3-е изд. 2006

Еще по теме Формат сообщения об ошибке и утилита traceroute:

  1. Жанры и форматы
  2. ЗАБЫТЫЕ ФОРМАТЫ
  3. 2.1. Обстоятельные сообщения
  4. Правило приоритетностицели сообщения.
  5. 2.3. ОШИБКИ ПРИ РЕТРОСПЕКЦИИ
  6. Работа над ошибками
  7. ОШИБКА ОПЕРАТОРА
  8. 2.1. ОБСТОЯТЕЛЬНЫЕ СООБЩЕНИЯ
  9. Правило приоритетности цели сообщения.
  10. ИДЕЯ 7 ОШИБКИ
  11. 8.11. Психологический анализ сообщений граждан
  12. 8.2.1. Неискренние сообщения
  13. 3.2. Ошибки в стремлении к полноте
  14. Вычисление ошибки выборки.
  15. 2.3. Ошибки при ретроспекции