Лекции 2010-го года (1130544), страница 68
Текст из файла (страница 68)
Вторая - как достичь узла внутри сети. Когда поступает IPпакет, маршрутизатор ищет его адрес доставки в таблице маршрутизации. Если этот адрес– адрес другой сети, то пакет передают дальше тому маршрутизатору, который отвечает засвязь с этой сетью. Если это адрес в локальной сети, то маршрутизатор направляет пакетпрямо по месту назначения.
Если адреса нет в таблице, то маршрутизатор направляетпакет специально выделенному по умолчанию маршрутизатору, который долженразобраться с этим случаем с помощью более подробной таблицы. Из этого описаниявидно, что алгоритм маршрутизации имеет дело только с сетями или локальнымимашинами, а не с парами «сеть, узел». Такая организация алгоритма позволяетсущественно сократить размер таблиц в маршрутизаторах.С появлением подсети структура адресов меняется. Теперь записи в таблице имеют форму«эта_сеть, подсеть, 0» и «эта_сеть, эта_подсеть, машина». Таким образом, маршрутизаторподсети в данной локальной сети знает, как достичь любой подсети в данной локальнойсети и как найти конкретную машину в своей подсети.
Все что ему нужно – это знатьмаску подсети. С помощью логической операции «&» маршрутизатор выделяет адресподсети с помощью маски, показанной на рисунке 5-47. По своим таблицам онопределяет, как достичь нужной подсети или (если это локальная подсеть данногомаршрутизатора) как достичь конкретной машины.5.5.4. Протоколы управления межсетевым взаимодействиемВ Интернете, кроме IP-протокола, который используется для передачи данных, естьнесколько протоколов управления, используемых на сетевом уровне, таких как ICMP,ARP, RARP, BOOTP, которые мы рассмотрим последовательно.5.5.4.1.
Internet Control Message ProtocolУправление функционированием Интернета происходит через маршрутизаторы спомощью протокола ICMP (RFC 792). Этот протокол обеспечивает доставку сообщенийлюбой машине, имеющей IP-адрес (хосту), от маршрутизаторов и других хостов в сети.Этот протокол обеспечивает обратную связь при возникновении проблем при передаче.Он выявляет и рассылает сообщения о десятках событий, наиболее важные из нихпоказаны в таблице 5-48.52Таблица 5-48.
Основные типы сообщений ICMPТип сообщенийОписаниеDestination unreachable (Назначение недостижимо)Пакет не может быть доставленTime exceeded (Время истекло)Время жизни достигло "0"Parameter problem (Проблемы с параметрами)Недопустимое поле заголовкаSource quench (Источник отключен)Подавляющий пакетRedirect (Перенаправление)Объясните маршрутизатору, где он находитсяEcho request (Запрос отклика)Спросите машину, работает ли онаEcho reply (Ответ на запрос)Да, машина работает.Timestamp request (Запрос с временной меткой)То же, что Echo request, только с временной меткойTimestamp reply (Ответ с временной меткой)То же, что Echo reply, только с временной меткойПротокол ICMP использует протокол IP и доставка его дейтаграмм не более надежна, чемлюбой IP-дейтаграммы в сети. Сообщение destination unreachable покрывает множествослучаев: от случая, когда маршрутизатор не знает, как достигнуть нужной подсети илихоста, до случая, когда дейтаграмма при доставке должна быть фрагментирована, ноустановлен флаг, который запрещает это делать.Сообщение time exceeded посылает маршрутизатор, если он обнаружил дейтаграмму систекшим времени жизни.
Хост генерирует такое сообщение, если он не успел завершитьсборку дейтаграммы до истечения времени ее жизни.Синтаксические или семантические ошибки в заголовке IP-дейтаграммы вызываютпоявление сообщения parameter problem.Сообщение source quench обеспечивает средство управления потоком. Маршрутизаторили хост-получатель высылает этот пакет хосту-отправителю, если необходимо понизитьскорость передачи.
Сообщения этого типа будут генерироваться до тех пор, пока скоростьпоступления дейтаграмм от отправителя не достигнет нужной хосту-получателювеличины. Это сообщение система может использовать для предотвращения перегрузки.Оно возникает всякий раз, когда маршрутизатор вынужден сбросить дейтаграмму из-запереполнения своего буфера.Сообщение redirect позволяет маршрутизатору отправить рекомендацию о лучшеммаршруте и впредь посылать дейтаграммы с определенным адресом через другоймаршрутизатор.Сообщения echo request и echo reply обеспечивают механизм проверки работоспособностиобъектов в сети. Получатель сообщения echo request обязан ответить сообщением echoreply, причем с теми же параметрами, что и в echo request.Сообщения timestamp request и timestamp reply обеспечивают механизм для измерения иизменения параметров временной задержки в Интернете.
Этот механизм необходим,например, для работы алгоритма маршрутизации по состоянию канала.5.5.4.2. Address Resolution Protocol – протокол определения адресаХотя каждая машина в Интернете имеет уникальный IP адрес, и даже не один, но припередаче пакета через сеть от этого мало пользы, так как канальный уровень не понимаетIP адресов. Как правило, машина подключена к ЛВС через сетевую карту, которая53понимает только ЛВС адреса канального уровня, например, Ethernet-адрес. Этот адресимеет 48 разрядов. Сетевая карта знает только такие адреса и ничего об 32-разрядных IP.Как отобразить 32-разрядный IP-адрес в адреса канального уровня, например, Ethernetадрес? Для объяснения воспользуемся рисунком 5-49.Рисунок 5-49.
Три объединенных сети класса С: две Ethernet-сети и кольцо FDDIКогда машина 1 посылает сообщение машине 2, то через DNS (Domain Name Service –службу имен домена – это приложение мы будем рассматривать в главе 7) определяетсяIP-адрес места назначения. Далее, для отображения IP-адреса в Ethernet-адрес, в подсетьпосылается запрос, у кого такой IP-адрес. Машина с указанным адресом шлет ответ.Протокол, который реализует рассылку запросов и сбор ответов - ARP-протокол.Практически каждая машина в Интернете использует этот протокол.Теперь рассмотрим случай, когда обращение идет в другую сеть.
Здесь два решения - естьопределенный маршрутизатор, который принимает все сообщения, адресованныеопределенной сети или группе адресов - proxy ARP. Этот маршрутизатор знает, как найтиадресуемую машину. Другое решение - выделенный маршрутизатор, который управляетмаршрутизацией удаленного трафика. Машина определяет, что обращение идет вудаленную сеть, и шлет сообщение на этот маршрутизатор.5.5.4.3. Reverse Address Resolution Protocol (RARP) – обратныйпротокол определения адресаИногда возникает обратная проблема - известен Ethernet-адрес, но какой IP-адрес емусоответствует? Эта проблема возникает, например, при удаленной загрузке бездисковойстанции. Как эта станция определит свой и соседние IP-адреса?Станция посылает запрос к RARP-серверу: "Мой Ethernet-адрес такой то, кто знаетсоответствующий IP-адрес?" RARP-сервер отлавливает такие запросы и шлет ответ.У этого протокола есть один существенный недостаток – пакеты с одним и тем жезапросом рассылаются всем, что увеличивает накладные расходы.
Для устранения этогонедостатка был предложен протокол BOOTP. В отличие от RARP, BOOTP используетUDP-сообщения, которые рассылаются только маршрутизаторам. Этот протокол такжеиспользуется в бездисковых станциях, у которых в памяти прошит IP-адрес выделенногомаршрутизатора.545.5.5. OSPF - внутренний протокол маршрутизации шлюзовИнтернет состоит из сетей, управляемых разными организациями. Каждая такая сетьиспользует внутри свои алгоритмы маршрутизации и управления и называетсяавтономной системой.
Наличие стандартов позволяет преодолеть различия во внутреннейорганизации автономных систем и обеспечить их совместное функционирование.Алгоритмы маршрутизации, применяемые внутри АС, называются внутреннимипротоколами шлюзов. Алгоритмы маршрутизации, применяемые для маршрутизациимежду АС, называются внешними протоколами шлюзов.Изначально в качестве внутреннего протокола шлюзов использовался протокол повектору расстояния (RIP). Этот протокол работал хорошо, пока автономная система быланебольшой. Однако по мере роста АС он начинал работать все хуже и хуже. Проблемы«счетчика до бесконечности» и медленная сходимость не получили удовлетворительногорешения. В 1979 году он был замещен протоколом маршрутизации по состоянию каналов.В 1988 году инженерный комитет Internet принял решение о разработке нового алгоритмамаршрутизации.