Протоколы TCP-IP

       

Маршрутизация для IP-адресов


Важно понимать, что IP-маршрутизация не изменяет исходную дейтаграмму. В частности, поля отправителя и получателя дейтаграммы остаются неизменными; они всегда указывают IP-адрес первоначального отправителя и IP-адрес конечного получателя. Когда IP исполняет алгоритм маршрутизации, он вычисляет новый адрес, IP-адрес очередной машины, на которую надо послать дейтаграмму. Этот новый адрес по всей видимости будет адресом шлюза. Тем не менее, если дейтаграмма может быть доставлена напрямую, этот новый адрес будет совпадать с адресом конечного назначения.

IP-адрес, вычисленный алгоритмом IP-маршрутизации, известен как адрес следующей попытки(hop), так как он определяет, куда послать дейтаграмму в следующий раз(хотя это место может и не быть местом конечного назначения). Где же IP сохраняет адрес следующей попытки ? Не в дейтаграмме; там для него нет места. По сути дела IP не сохраняет адрес следующей попытки вообще. После выполнения алгоритма маршрутизации IP передает дейтаграмму и адрес следующей попытки программному обеспечению сетевого интерфейса той сети, по которой должна быть передана дейтаграмма. Программное обеспечение сетевого интерфейса связывает адрес следующей попытки с физическим адресом, формирует кадр, используя этот физический адрес, помещает дейтаграмму в поле данных кадра и посылает результат. После использования адреса следующей попытки для нахождения физического адреса программное обеспечение сетевого интерфейса удаляет адрес следующей попытки.

Может показаться странным, что таблицы маршрутизации хранят IP-адрес следующей попытки для каждой сети назначения, в то время как эти адреса должны транслироваться в соответствующие физические адреса перед посылкой дейтаграммы. Если мы представим ГВМ, посылающий последовательность дейтаграмм одному и тому же назначению, такое использование IP-адресов будет явно неэффективным. IP послушно выделяет адрес назначения в каждой дейтаграмме и использует таблицу маршрутизации для определения адреса следующей попытки. Затем он передает дейтаграмму и адрес следующей попытки сетевому интерфейсу, который находит физический адрес. Если бы таблица маршрутизации использовала физические адрес, определение соответствия между IP-адресом следующей попытки и физическим адресом могло бы выполняться лишь один раз. Почему же программное обеспечение IP избегает пользоваться физическими адресами при хранении и вычислении маршрутов ? Как показывает рисунок 8.4, существуют две важные причины.


ПРОВЕРКА ИЛИ МАРШРУТИЗИРУЕМАЯ ОБНОВЛЕНИЕ МАРШРУТОВ | ДЕЙТАГРАММА V ---------------- ---------------- | таблица | / алгоритм \ | маршрутизации|--------->| маршрутизации | | | \ в IP / ---------------- \---------------/ | используются IP-адреса | ------------------------------------------------------------- используются физические адреса | отправляемая дейтаграмма и V адрес следующей попытки

Рисунок 8.4 Программное обеспечение IP и таблица маршрутизации, которую оно использует, находятся выше границы адресов. Использование только IP-адресов делает маршруты удобными для проверки и изменения и скрывает детали физических адресов на самом нижнем из возможных уровней.

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

Рисунок 8.4 показывает границу адресов, важную концептуальную границу между низкоуровневым программным обеспечением, понимающим физические адреса, и межсетевым программным обеспечением, использующим только высокоуровневые адреса. Выше этой границы все программное обеспечение для взаимодействия может быть написано с использованием только межсетевых адресов; знание физических адресов предоставляется нескольким небольшим низкоуровневым процедурам. Мы увидим, что выделение этой границы также помогает сделать реализацию остальных протоколов TCP/IP легкой для понимания, проверки и модификации.


Содержание раздела