Скачиваний:
42
Добавлен:
02.05.2014
Размер:
18.49 Кб
Скачать

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

Дерево доставки - это, по существу, не что иное, как некоторое количество путей, выбираемых таким образом, чтобы пакеты с групповыми адресами доставлялись только тем хостам, которые хотят их получать. Алгоритмов формирования деревьев доставки существует достаточно много. Среди них можно отметить Flooding, Spanning Tree, Reverse Path Broadcasting, Truncated Reverse Path Broadcasting, Reverse Path Multicasting, Core-Based Tree. Некоторые из этих алгоритмов реализованы в наиболее распространенных протоколах многоадресной маршрутизации, таких как DVMRP, MOSPF, PIM.

Метод доставки группового трафика, заложенный в алгоритме веерной рассылки (Flooding), является самым простым. Он задействуется в тот момент, когда маршрутизатор получает пакет, адресованный одной из групп. Маршрутизатор определяет, получал ли он этот пакет ранее. Если нет, то он передается на все интерфейсы, за исключением принявшего пакет. Такая схема гарантирует, что пакет пройдет через все маршрутизаторы в распределенной сети. Если маршрутизатор уже обрабатывал этот пакет, то он удаляет его из обращения.

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

Более эффективным решением служит механизм алгоритма остового дерева (Spanning Tree). Результатом работы этого алгоритма является древообразная структура, в которой между двумя любыми маршрутизаторами в распределенной сети есть только один активный путь. На Рисунке 9 показан результат работы алгоритма с корнем остового дерева в точке R.

 

Рисунок 6 Результат работы алгоритма Spanning Tree.

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

Еще более действенным решением, чем формирование одного остового дерева для всей распределенной сети, будет создание остового дерева для каждого отправителя в группе, т. е. формирование деревьев доставки от источника (Source-Rooted Trees, SRT). Корень такого дерева находится в подсети, где располагаются хосты-отправители пакетов с групповыми адресами. Эти деревья создаются для каждой активной пары (отправитель, группа-получатель).

Основным алгоритмом для построения дерева доставки от источника является алгоритм вещания по обратному пути Reverse Path Broadcasting (RPB). Для каждой пары (отправитель, группа-получатель) при получении пакета по каналу связи, оцененному маршрутизатором как самый короткий путь назад к отправителю, маршрутизатор передает пакет на все свои интерфейсы, за исключением принявшего. Интерфейс, через который маршрутизатор ожидает получить пакет с групповым адресом от конкретного отправителя, обозначается как родительский. Интерфейсы, через которые пакеты передаются дальше, - как порожденные (Рисунок 7). Пакет, поступивший на порожденные интерфейсы, удаляется из обращения.

 

Риунок 7 Интерфейсы маршрутизатора при работе алгоритма RPB.

Рисунок 8 иллюстрирует работу алгоритма RPB. Маршрутизатор А получает пакет с групповым адресом от хоста-отправителя и передает его в каналы связи 1 и 2, т. е. через свои порожденные интерфейсы. Маршрутизатор Б получает этот пакет из канала 1 на свой интерфейс, который является родительским для этой пары (отправитель, группа-получатель), и передает его дальше через каналы 4 и 5. В случае передачи пакета через канал связи 3 он будет удален из обращения маршрутизатором В, так как пакет будет доставлен ему не на родительский интерфейс для этой пары.

 

Рисунок 8 Пример работы алгоритма RPB

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

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

Для разрешения этой проблемы был разработан алгоритм Truncated Reverse Path Broadcasting (TRPB). Алгоритм использует информацию, собранную с помощью протокола IGMP. При этом маршрутизаторы определяют наличие членов группы в каждой подключенной подсети и не передают пакеты в те подсети, в которых членов группы нет. Таким образом, ненужные ветви дерева доставки обрезаются.

Рисунок 9 иллюстрирует работу алгоритма TRPB. В этом случае маршрутизатор получает пакеты, адресованные группе Г1, на свой родительский интерфейс. Маршрутизатор будет передавать пакеты на порожденный интерфейс 1, так как в подключенной к нему подсети есть члены данной группы, а в порожденный интерфейс 3 пакеты передаваться не будут ввиду отсутствия там членов данной группы. На порожденный интерфейс 2 пакеты будут передаваться в том случае, если следующий маршрутизатор полагает, что данный канал связи является частью его родительского интерфейса для данной пары (отправитель, группа-получатель Г1).

 

Рисунок 9 Пример работы алгоритма TRPB.

Хотя этот алгоритм устраняет некоторые ограничения алгоритма RPB, часть проблем все же остается. В частности, устраняя ненужный трафик в подсети, он не принимает во внимание членство в группах при формировании дерева доставки. Этот недостаток алгоритмов RPB и TRPB устраняет алгоритм Reverse Path Multicasting (RPM) путем создания дерева доставки, охватывающего только те части распределенной сети, в состав которых входят члены группы-получателя.

Если маршрутизатор получает пакеты с групповыми адресами для пары (отправитель, группа-получатель), то первый пакет передается в соответствии с алгоритмом TRPB. При этом гарантируется, что все маршрутизаторы в распределенной сети его получат. Если члены группы-получателя присутствуют в подключенных к маршрутизаторам подсетях, то пакет будет доставлен на основании информации, полученной от протокола IGMP. Если же в подсетях нет членов группы-получателя, то маршрутизаторы передают специальные усекающие (prune) сообщения на свои родительские интерфейсы, информируя тем самым вышестоящие маршрутизаторы о том, что они не должны передавать групповой трафик для определенной пары (отправитель, группа-получатель) на свои порожденные интерфейсы, принявшие эти сообщения (Рисунок 10).

 

Рисунок 10 Пример работы алгоритма RPM.

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

В начало

Соседние файлы в папке mainframe