Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Межсетевой протокол маршрутизация IP-дейтаграмм...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
94.72 Кб
Скачать

8.3 Прямая и косвенная доставка

Говоря нестрого, мы можем выделить две формы маршрутизации: прямую маршрутизацию и косвенную маршрутизацию. Прямая маршрутизация, передача дейтаграммы напрямую из одной машины в другую, является основой, на которой строится все остальное межсетевое взаимодействие. Две машины могут участвовать в прямой маршрутизации только в том случае, когда они обе соединены напрямую с одной физической системой передачи(например, Ethernetом). Косвенная маршрутизация осуществляется, когда назначение не находится в той же сети, что и источник, и заставляет отправителя передавать дейтаграмму шлюзу для доставки.

8.3.1 Доставка дейтаграммы по одной сети

Мы знаем, что одна машина в данной физической сети может послать физический кадр напрямую другой машине в этой же сети. Для передачи IP-дейтаграмм отправитель инкапсулирует дейтаграмму в физический кадр, отображает IP-адрес назначения в физический адрес, и использует сетевое оборудование для его доставки. Глава 5 представила два возможных механизма при разрешении адресов, включая использование протокола ARP для динамического связывания пар адресов в Ethernet-подобных сетях. Глава 7 рассмотрела инкапсуляцию дейтаграмм. Поэтому мы знаем теперь все необходимое для понимания прямой доставки. Обобщим:

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

Откуда отправитель узнает, что получатель находится в сети, к которой он присоединен ? Ответ прост. Мы знаем, что IP-адреса делятся на номер сети и номер ГВМ в сети. Чтобы определить, находится ли назначение в одной из сетей, к которым он присоединен, отправитель выделяет сетевую часть IP-адреса назначения и сравнивает ее с сетевой частью своего IP-адреса(ов). Совпадение означает, что дейтаграмму можно послать напрямую. Здесь мы видим одно из преимуществ схемы адресации Интернета, а именно:

Так как межсетевые адреса всех машин в одной сети включают общий идентификатор сети, и так как выделение этого идентификатора может быть сделано несколькими машинными командами, проверка того, что машина может быть достигнута напрямую, является крайне эффективной.

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

8.3.2 Косвенная маршрутизация

Косвенная маршрутизация более трудна, чем прямая , так как отправитель должен идентифицировать шлюз, которому можно послать дейтаграмму. Шлюз должен затем отправить дейтаграмму к сети назначения.

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

Шлюзы в интернете TCP/IP образуют взаимодействующую и связанную структуру. Дейтаграммы передаются от шлюза к шлюзу до тех пор, пока они не достигнут шлюза, который может доставить дейтаграмму напрямую.

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

8.4 IP-маршрутизация на основе таблиц.

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

Какую информацию следует держать в таблицах маршрутизации ? Если бы каждая таблица маршрутизации содержала информацию о всех возможных адресах назначения, было бы невозможно поддерживать корректное состояние таблицы. Более того, так как число возможных назначений велико, машинам не хватало бы памяти для хранения всей этой информации.

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

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

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

Рисунок 8.2 показывает конкретный пример, который помогает понять таблицы маршрутизации. Интернет в этом примере состоит из четырех сетей, соединенных тремя шлюзами. На рисунке показана таблица маршрутизации, используемая шлюзом G. Так как G присоединен напрямую к сетям 20.0.0.0 и 30.0.0.0, он может достичь любой ГВМ в этих сетях напрямую(возможно используя ARP для нахождения физического адреса). Получив дейтаграмму, предназначенную ГВМ в сети 40.0.0.0, G маршрутизирует ее в адрес 30.0.0.7, адрес шлюза H. H затем доставит дейтаграмму напрямую. G может достичь адреса 30.0.0.7, так как и G, и H присоединены к сети 30.0.0.0.

20.0.0.5 30.0.0.6 40.0.0.7

| | |

---------- V---------- V---------- V----------

| Сеть | --- | Сеть | --- | Сеть | --- | Сеть |

|10.0.0.0|-|F|-|20.0.0.0|-|G|-|30.0.0.0|-|H|-|40.0.0.0|

| | --- | | --- | | --- | |

----------^ ----------^ ----------^ ----------

| | |

10.0.0.5 20.0.0.6 30.0.0.7

(а)

Чтобы достичь Маршрутизировать

ГВМ в сети к адресу

20.0.0.0 прямая доставка

30.0.0.0 прямая доставка

10.0.0.0 20.0.0.5

40.0.0.0 30.0.0.7

(б)

Рисунок 8.2 (а) Демонстрационный интернет с 4 сетями и 3 шлюзами, и (б) таблица маршрутизации для шлюза G

Как показывает рисунок 8.2, размер таблицы маршрутизации зависит от числа сетей в интернете; он увеличивается только при добавлении новых сетей. Тем не менее, размер таблицы и ее содержимое не зависят от числа отдельных ГВМ, присоединенных к сетям. Мы можем сформулировать следующий принцип:

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

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