Литмир - Электронная Библиотека

5.6.4. Управляющие протоколы Интернета

Помимо протокола IP, используемого для передачи данных, в Интернете есть несколько дополнительных управляющих протоколов, применяемых на сетевом уровне, к которым относятся ICMP, ARP и DHCP. В данном разделе мы рассмотрим их все по очереди, описывая те версии, которые соответствуют IPv4 (так как именно они сейчас широко применяются). У ICMP и DHCP существуют аналогичные версии для IPv6; эквивалентом APR является NDP (Neighbor Discovery Protocol — протокол обнаружения соседей).

ICMP — протокол управляющих сообщений Интернета

За работой Интернета следят маршрутизаторы. Если во время обработки пакета маршрутизатором случается что-то неожиданное, о происшествии сообщается по протоколу ICMP (Internet Control Message Protocol протокол управляющих сообщений Интернета), используемому также для тестирования Интернета. Протоколом ICMP определено около дюжины типов сообщений. Каждое ICMP-сообщение вкладывается в IP-пакет. Наиболее важные из них приведены в табл. 5.8.

Таблица 5.8. Основные типы ICMP-сообщений

Компьютерные сети. 5-е издание - _307.jpg

Сообщение АДРЕСАТ НЕДОСТУПЕН (DESTINATION UNREACHABLE) используется, когда маршрутизатор не может обнаружить пункт назначения, или когда пакет с битом DF (не фрагментировать) не может быть доставлен, так как путь ему преграждает сеть с маленьким размером пакетов.

Сообщение ВРЕМЯ ИСТЕКЛО (TIME EXCEEDED) посылается, когда пакет игнорируется, так как его счетчик Время жизни уменьшился до нуля. Это событие является признаком того, что пакеты двигаются по замкнутым контурам или что установлено слишком низкое значение таймера.

Хитрый способ использования этого сообщения, предложенный Ван Джейкобсоном в 1987 году, — утилита traceroute. Она находит маршрутизаторы, расположенные в узлах пути от хоста к адресу назначения. При этом ей не требуется особый уровень поддержки. Метод состоит в отправке на адрес назначения последовательности пакетов с временем жизни 1, 2, 3 и т. д. Маршрутизаторы, на которых счетчики достигают нуля, располагаются в том порядке, в котором пакет проходит их при пересылке. Эти маршрутизаторы послушно отправляют обратно на хост сообщения ВРЕМЯ ИСТЕКЛО. По этим сообщениям хост определяет их IP-адреса и получает информацию о пути. Сообщение ВРЕМЯ ИСТЕКЛО, конечно, предназначалось не для этого. Но вполне возможно, что это самый полезный инструмент отладки сети всех времен.

Сообщение ПРОБЛЕМА ПАРАМЕТРА (PARAMETER PROBLEM) указывает на то, что обнаружено неверное значение в поле заголовка. Это является признаком наличия ошибки в программном обеспечении хоста, отправившего этот пакет, или промежуточного маршрутизатора.

Сообщение ГАШЕНИЕ ИСТОЧНИКА (SOURCE QUENCH) ранее использовалось для усмирения хостов, которые отправляли слишком много пакетов. Хост, получивший такое сообщение, должен был снизить обороты. В настоящее время подобное сообщение редко используется, так как при возникновении перегрузки подобные пакеты только подливают масла в огонь, еще больше загружая сеть. К тому же, не ясно, как на них отвечать. Теперь борьба с перегрузкой в Интернете осуществляется в основном на транспортном уровне; при этом сигналом перегрузки является утеря пакетов. Это будет подробно обсуждаться в главе 6.

Сообщение ПЕРЕАДРЕСОВАТЬ (REDIRECT) посылается хосту, отправившему пакет, когда маршрутизатор замечает, что пакет адресован неверно. Таким образом маршрутизатор предлагает хосту обновить маршрут.

Сообщения ЗАПРОС ОТКЛИКА (ECHO) и ОТКЛИК (ECHO REPLY) посылаются, чтобы определить, достижим ли и жив ли в данный момент конкретный адресат. Получив сообщение ЗАПРОС ОТКЛИКА, хост должен отправить обратно сообщение ОТКЛИК. Эти сообщения используются утилитой ping, которая проверяет, включен ли хост и подключен ли он к Интернету.

Сообщения ЗАПРОС ВРЕМЕННОГО ШТАМПА (TIMESTAMP REQUEST) и ОТКЛИК С ВРЕМЕННЫМ ШТАМПОМ (TIMESTAMP REPLY) имеют то же назначение, но при этом в ответе проставляется время получения сообщения и время отправления ответа. Это сообщение используется для измерения производительности сети.

Сообщения ОБЪЯВЛЕНИЕ МАРШРУТИЗАТОРА (ROUTER ADVERTISEMENT) и ЗАПРОС К МАРШРУТИЗАТОРУ (ROUTER SOLICITATION) позволяют хостам находить близлежащие маршрутизаторы. Хосту необходимо знать IP-адрес хотя бы одного из таких маршрутизаторов, чтобы он мог передавать пакеты за пределы локальной сети.

Кроме перечисленных сообщений определены и другие. Их полный список хранится в Интернете по адресу www.iana.org/assignments/icmp-parameters.

ARP — протокол разрешения адресов

Хотя у каждой машины в Интернете есть один или более IP-адресов, их недостаточно для отправки пакетов. Сетевые карты канального уровня, такие как Ethernet-карты, не понимают интернет-адресов. Например, каждая когда-либо выпущенная сетевая карта Ethernet имеет 48-разрядный Ethernet-адрес. Производители сетевых карт Ethernet запрашивают у IEEE блок адресов, что гарантирует уникальность Ethernet-адресов (это позволяет избежать конфликтов при наличии одинаковых сетевых карт в одной ЛВС). Сетевые карты отправляют и принимают кадры, основываясь на 48-разрядных Ethernet-адресах. О 32-разрядных IP-адресах им ничего не известно.

Таким образом, возникает вопрос: как устанавливается соответствие IP-адресов и адресов уровня передачи данных, таких как Ethernet-адреса? Чтобы понять, как это работает, рассмотрим показанный на рис. 5.52 пример, в котором изображен небольшой университет с двумя сетями /24. На рисунке мы видим две коммутируемые сети Ethernet: одна сеть (CS) на факультете кибернетики, с префиксом 192.31.65.0/24, а другая ЛВС (EE) — с префиксом 192.31.63.0/24 на электротехническом факультете. Они соединены IP-маршрутизатором. У каждой машины сетей Ethernet и у каждого интерфейса на маршрутизаторе есть уникальный Ethernet-адрес (на рисунке — от E1 до E6), и уникальный IP-адрес в сети CS или EE.

Рассмотрим, как пользователь хоста 1 посылает пакет пользователю хоста 2 в сети CS. Допустим, отправителю известно имя получателя, например eagle.cs.uni. edu. Сначала надо найти IP-адрес для хоста 2. Этот поиск осуществляется службой имен доменов DNS (Domain Name System), которую мы рассмотрим в главе 7. На данный момент мы просто предположим, что служба DNS возвращает IP-адрес для хоста 2 (192.31.65.5).

Теперь программное обеспечение верхнего уровня хоста 1 создает пакет со значением 192.31.65.5 в поле Адрес получателя и передает его IP-программе для пересылки. Программное обеспечение протокола IP может посмотреть на адрес и увидеть, что адресат находится в сети CS (то есть в его собственной сети), но ему нужно как-то определить Ethernet-адрес получателя. Одно из решений состоит в том, чтобы хранить в системе конфигурационный файл, в котором были бы перечислены соответствия всех локальных IP-адресов Ethernet-адресам. Такое решение, конечно, возможно, но в организациях с тысячами машин обновление этих файлов потребует много времени и подвержено ошибкам.

Компьютерные сети. 5-е издание - _308.jpg

Рис. 5.52. Две коммутируемые ЛВС Ethernet, соединенные маршрутизатором

Более удачное решение заключается в рассылке хостом 1 по сети Ethernet широковещательного пакета с вопросом: «Кому принадлежит IP-адрес 192.31.65.5?» Этот пакет будет получен каждой машиной сети CS Ethernet и каждая проверит его IP-адрес. Только хост 2 ответит на вопрос своим Ethernet-адресом E2. Таким образом, хост 1 узнает, что IP-адрес 192.31.65.5 принадлежит хосту с Ethernet-адресом E2. Протокол, который задает подобный вопрос и получает ответ на него, называется ARP (Address Resolution Protocol протокол разрешения адресов) и описан в RFC 826. Он работает почти на каждой машине в Интернете.

Преимущество протокола ARP над файлами конфигурации заключается в его простоте. Системный администратор должен всего лишь назначить каждой машине IP-адрес и решить вопрос с маской подсети. Все остальное сделает протокол ARP.

165
{"b":"639789","o":1}