Формат сообщения об ошибке и утилита traceroute
Рис. 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, а первые два, относящиеся к локальным маршрутизаторам, — нет.
Еще раз подчеркнем, что время, указанное в каждой строке, это не время прохождения пакетов между двумя соседними маршрутизаторами, а время, за которое пакет проделывает путь от источника до соответствующего маршрутизатора и обратно. Так как ситуация в Интернете с загрузкой маршрутизаторов постоянно меняется, то время достижимости маршрутизаторов не всегда нарастает монотонно, а может изменяться достаточно произвольным образом.
Еще по теме Формат сообщения об ошибке и утилита traceroute:
- Жанры и форматы
- ЗАБЫТЫЕ ФОРМАТЫ
- 2.1. Обстоятельные сообщения
- Правило приоритетностицели сообщения.
- 2.3. ОШИБКИ ПРИ РЕТРОСПЕКЦИИ
- Работа над ошибками
- ОШИБКА ОПЕРАТОРА
- 2.1. ОБСТОЯТЕЛЬНЫЕ СООБЩЕНИЯ
- Правило приоритетности цели сообщения.
- ИДЕЯ 7 ОШИБКИ
- 8.11. Психологический анализ сообщений граждан
- 8.2.1. Неискренние сообщения
- 3.2. Ошибки в стремлении к полноте
- Вычисление ошибки выборки.
- 2.3. Ошибки при ретроспекции