Межсетевой обмен с помощью TCP-IP



         

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


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

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

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




Содержание  Назад  Вперед