МЕТОДЫ МАРШРУТИЗАЦИИ ИНФОРМАЦИОННЫХ ПОТОКОВ
6.1 Маршрутизаторы
Довольно часто в компьютерной литературе дается следующее обобщенное определение маршрутизатора: маршрутизатор — это устройство сетевого уровня эталонной модели OSI, использующее одну или более метрик для определения оптимального пути передачи сетевого трафика на основании информации сетевого уровня. Из этого определения вытекает, что маршрутизатор, прежде всего, необходим для определения дальнейшего пути данных, посланных в большую и сложную сеть. Пользователь такой сети отправляет свои данные в сеть и указывает адрес своего абонента. И все. Данные проходят по сети и в точках с разветвлением маршрутов поступают на маршрутизаторы, которые как раз и устанавливаются в таких точках. Маршрутизатор выбирает дальнейший наилучший путь. То, какой путь лучше, определяется количественными характеристиками, которые называются метриками. Лучший путь — это путь с наименьшей метрикой. В метрике может учитываться несколько показателей, например, длина пути, время прохождения и т. д.
Маршрутизаторы реализуются по-разному. Маршрутизаторы делят на устройства верхнего, среднего и нижнего классов.
Высокопроизводительные маршрутизаторы верхнего класса служат для объединения сетей предприятия. Они поддерживают множество протоколов и интерфейсов, причем не только стандартных, но, подчас, и весьма экзотических. Устройства данного типа могут иметь до 50 портов локальных или глобальных сетей.
С помощью маршрутизаторов среднего, промежуточного, класса формируются менее крупные сетевые объединения масштаба предприятия. Стандартная конфигурация включает два-три порта локальных сетей и от четырех до восьми портов глобальной сети. Такие маршрутизаторы поддерживают наиболее распространенные протоколы маршрутизации и транспортные протоколы.
Маршрутизаторы нижнего класса предназначаются для локальных сетей подразделений; они связывают небольшие офисы с сетью предприятия. Типичная конфигурация: один порт локальной сети (Ethernet или Token Ring) и два порта глобальной сети, рассчитанные на низкоскоростные выделенные линии или коммутируемые соединения. Тем не менее, подобные маршрутизаторы пользуются большим спросом у администраторов, которым необходимо расширить имеющиеся межсетевые объединения.
Маршрутизаторы для базовых сетей и удаленных офисов имеют разную архитектуру, поскольку к ним предъявляются разные функциональные и операционные требования. Маршрутизаторы базовых сетей обязательно должны быть расширяемыми. Маршрутизаторы локальных сетей подразделения, для которых, как правило, заранее устанавливается фиксированная конфигурация портов, содержат только один процессор, управляющий работой трех или четырех интерфейсов. В них используются примерно те же протоколы, что и в маршрутизаторах базовых сетей, однако программное обеспечение больше направлено на облегчение инсталляции и эксплуатации, поскольку в большинстве удаленных офисов отсутствуют достаточно квалифицированные специалисты по сетевому обслуживанию.
Маршрутизатор базовой сети состоит из следующих основных компонентов:
- сетевых адаптеров, зависящих от протоколов и служащих интерфейсами с локальными и глобальными сетями;
- управляющего процессора, определяющего маршрут и обновляющего информацию о топологии; основной магистрали.
После поступления пакета на интерфейсный модуль он анализирует адрес назначения и принимает команды управляющего процессора для определения выходного порта. Под пакетом подразумевается некоторый объем информации, который без разделения на более мелкие части, передается по информационной сети от источника к получателю. Затем пакет по основной магистрали маршрутизатора передается в интерфейсный модуль, служащий для связи с адресуемым сегментом локальной сети или портом глобальной сети.
В роли маршрутизатора может выступать рабочая станция или сервер, имеющие несколько сетевых интерфейсов и снабженные специальным программным обеспечением. Маршрутизаторы верхнего класса — это, как правило, специализированные устройства, объединяющие в отдельном корпусе множество маршрутизирующих модулей.
По определению, основное назначение маршрутизаторов — это маршрутизация трафика сети. Процесс маршрутизации можно разделить на два иерархически связанных уровня:
- Уровень маршрутизации. На этом уровне происходит работа с таблицей маршрутизации. Таблица маршрутизации служит для определения адреса (сетевого уровня) следующего маршрутизатора или непосредственно получателя по имеющемуся адресу (сетевого уровня) получателя. После определения адреса передачи выбирается определенный выходной физический порт маршрутизатора. Этот процесс называется определением маршрута перемещения пакета. Настройка таблицы маршрутизации ведется протоколами маршрутизации. На этом же уровне определяется перечень необходимых предоставляемых сервисов;
- Уровень передачи пакетов. Перед тем как передать пакет, необходимо: проверить контрольную сумму заголовка пакета, определить адрес (канального уровня) получателя пакета и произвести непосредственно отправку пакета с учетом очередности, фрагментации, фильтрации и т. д. Эти действия выполняются на основании команд, поступающих с уровня маршрутизации.
Обобщенная функциональная схема маршрутизации представлена на рисунке 6.1.
Определение маршрута передачи данных происходит программно. Соответствующие программные средства носят названия протоколов маршрутизации, Логика их работы основана на алгоритмах маршрутизации. Алгоритмы маршрутизации вычисляют стоимость доставки и выбирают путь с меньшей стоимостью. Простейшие алгоритмы маршрутизации определяют маршрут на основании наименьшего числа промежуточных (транзитных) узлов на пути к адресату. Более сложные алгоритмы в понятие “стоимость” закладывают несколько показателей, например, задержку при передаче пакетов, пропускную способность каналов связи или денежную стоимость связи. Основным результатом работы алгоритма маршрутизации является создание и поддержка таблицы маршрутизации, в которую записывается вся маршрутная информация. Содержание таблицы маршрутизации зависит от используемого протокола маршрутизации. В общем случае таблица маршрутизации содержит следующую информацию:
- действительные адреса устройств в сети;
- служебную информацию протокола маршрутизации;
- адреса ближайших маршрутизаторов.
Рисунок 6.1. Обобщенная функциональная схема маршрутизации
Основными требованиями, предъявляемыми к алгоритму маршрутизации, являются:
· оптимальность выбора маршрута;
· простота реализации;
· устойчивость;
· быстрая сходимость;
· гибкость реализации.
Оптимальность выбора маршрута является основным параметром алгоритма, что не требует пояснений. Алгоритмы маршрутизации должны быть просты в реализации и использовать как можно меньше ресурсов. Алгоритмы должны быть устойчивыми к отказам оборудования на первоначально выбранном маршруте, высоким нагрузкам и ошибкам в построении сети.
Сходимость — это процесс согласования между маршрутизаторами информации о топологии сети. Если определенное событие в сети приводит к тому, что некоторые маршруты становятся недоступны или возникают новые маршруты, маршрутизаторы рассылают сообщения об этом друг другу по всей сети. После получения этих сообщений маршрутизаторы производят переназначение оптимальных маршрутов, что в свою очередь может породить новый поток сообщений. Этот процесс должен завершиться, причем достаточно быстро, иначе в сетевой топологии могут появиться петли, или сеть вообще может перестать функционировать. Алгоритмы маршрутизации должны быстро и правильно учитывать изменения в состоянии сети (например, отказ узла или сегмента сети).
Алгоритмы маршрутизации могут быть:
· статическими или динамическими;
· одномаршрутными или многомаршрутными;
· одноуровневыми или иерархическими;
· внутридоменными или междоменными;
· одноадресными или групповыми.
Для статических (неадаптивных) алгоритмов маршруты выбираются заранее и заносятся вручную в таблицу маршрутизации, где хранится информация о том, на какой порт отправить пакет с соответствующим адресом. Протоколы, разработанные на базе статических алгоритмов, называют немаршрутизируемыми протоколами. Примерами немаршрутизируемых протоколов могут служить LAT (Local Area Transport, транспортный протокол для локальных областей) фирмы DEC, протокол подключения терминала и NetBIOS. Обычно с этими протоколами работают мосты, так как они не различают протоколы сетевого уровня.
При использовании динамических алгоритмов таблица маршрутизации автоматически обновляется при изменении топологии сети или графика в ней. Динамические алгоритмы различаются по способу получения информации о состоянии сети, времени изменения маршрутов и используемым показателям оценки маршрута.
Одномаршрутные алгоритмы определяют только один маршрут. Он не всегда оказывается оптимальным. Многомаршрутные алгоритмы предлагают несколько маршрутов к одному и тому же получателю. Такие алгоритмы позволяют передавать информацию получателю по нескольким каналам одновременно, что означает повышение пропускной способности и надежности сети.
Алгоритмы маршрутизации могут работать в сетях с одноуровневой или иерархической архитектурой. В одноуровневой сети все ее фрагменты имеют одинаковый приоритет, что, как правило, обусловлено схожестью их функционального назначения. Иерархическая сеть содержит подсети (фрагменты сети). Маршрутизаторы нижнего уровня служат для связи фрагментов сети. Маршрутизаторы верхнего уровня образуют особую часть сети, называемую магистралью (опорная часть). Маршрутизаторы магистральной сети передают пакеты между сетями нижнего уровня.
Иерархическая структура в больших и сложных сетях позволяет значительно упростить процесс управления сетью, облегчает изоляцию сегментов сети и т. д. Например, логическая изоляция сегментов сети допускает установку брандмауэров.
Некоторые алгоритмы маршрутизации действуют только в пределах своих доменов (внутридоменная маршрутизация), другие — как в пределах своих доменов, так и в смежных с ними (междоменная маршрутизация). В данном случае домен означает область маршрутизации, в которой работает один или' несколько протоколов маршрутизации. В разных доменах работают разные протоколы. Если необходима связь доменов, используется междоменная маршрутизация.
Одноадресные алгоритмы маршрутизации предназначены для передачи конкретной информации (по одному или нескольким маршрутам) только одному получателю. Многоадресные (или групповые) алгоритмы способны передавать информацию многим получателям одновременно.
Когда маршрутизатор получает пакет, он считывает адрес назначения и определяет, по какому маршруту отправить пакет. Обычно маршрутизаторы хранят данные о нескольких возможных маршрутах. Выбор маршрута зависит от нескольких факторов, в том числе:
· применяемой системы измерения длины маршрута (его метрики);
· маршрутизируемого протокола высокого уровня;
· топологии сети.
На уровне маршрутизации существуют три основные группы протоколов маршрутизации (деление на группы определяется типом реализуемого алгоритма определения оптимального маршрута):
· протоколы вектора расстояния;
· протоколы состояния канала;
· протоколы политики маршрутизации.
Протоколы вектора расстояния — самые простые и самые распространенные. Протоколы данной группы включают RIP IP, RIP IPX, AppleTalk RTMP и Cisco IGRP. Свое название этот тип протокола получил от способа обмена информацией. Маршрутизатор с определенной периодичностью извлекает адреса получателей информации и метрику из своей таблицы маршрутизации и помещает эти данные в рассылаемые соседям сообщения об обновлении. Соседние маршрутизаторы сверяют полученные данные со своими собственными таблицами маршрутизации и вносят необходимые изменения. После этого они сами рассылают сообщения об обновлении. Таким образом, каждый маршрутизатор получает информацию о маршрутах во всей сети. При очевидной простоте алгоритма говорить о полной его надежности нельзя. Он может работать эффективно только в небольших сетях. Это связано с тем, что в крупных сетях поток сообщений между маршрутизаторами резко возрастает. При этом большинство из них являются избыточными (так как изменения сетевой топологии происходят довольно редко). Как следствие — действительно необходимая информация подчас долго гуляет по всей сети, и маршрутизаторы обновляют свои таблицы с большой задержкой. Так, более несуществующий маршрут может довольно долго оставаться в таблицах маршрутизации. Трафик, направленный по такому маршруту, не достигнет своего адресата.
Протоколы состояния канала были впервые предложены в 1970 году Эдсгером Дейкстрой. Эти протоколы значительно сложнее, чем протоколы вектора расстояния. Вместо рассылки соседям содержимого своих таблиц маршрутизации, каждый маршрутизатор осуществляет широковещательную рассылку списка маршрутизаторов, с которыми он имеет непосредственную связь, и списка напрямую подключенных к нему локальных сетей. Эта информация является частью информации о состоянии канала. Она рассылается в специальных сообщениях. Кроме того, маршрутизатор рассылает сообщения о состоянии канала только в случае его изменения или по истечении заданного интервала времени. Протоколы состояния канала трудны в реализации и нуждаются в значительном объеме памяти для хранения информации о состоянии каналов. Примерами этих протоколов служат OSPF, IS-IS, Novell NLSP и Cisco EIGRP.
По Дейкстре, топология сети представляется в виде неориентированного графа. Каждому ребру приписывается некоторое значение. В процессе работы алгоритма вычисляется сумма показателей для ребер, сходящихся в каждом узле графа. Эта оценка называется меткой узла. При определении пути подсчитывается сумма меток на возможном пути и выбирается путь с наименьшей суммарной меткой.
К третьей группе протоколов относятся протоколы политики (правил) маршрутизации. Эти протоколы наиболее эффективно решают задачу доставки получателю информации. Эта категория протоколов используется при маршрутизации в Internet и позволяет операторам получать информацию о маршрутизации от соседних операторов на основании специальных критериев. То есть в процессе обмена вырабатывается список разрешенных маршрутов (путей). Алгоритмы политики маршрутизации опираются на алгоритмы вектора расстояния, но информация о маршрутах базируется на списке операторов сети Internet. Примерами протоколов данной категории могут служить BGP и EGP.
Все вышесказанное относилось к уровню маршрутизации. Уровень передачи пакетов (см. выше) реализуется на алгоритмах коммутации и, как правило, одинаков для большинства протоколов маршрутизации. Промежуточный маршрутизатор, имея адрес следующего маршрутизатора, посылает ему пакет, адресованный специально на физический адрес (МАС-уровня) этого маршрутизатора, но с адресом (сетевого уровня) получателя (МАС-адрес маршрутизатора определяется с помощью специальных протоколов, например ARP, см. ниже). По адресу получателя маршрутизатор определяет, знает ли он, как передать пакет следующему маршрутизатору в пути. Если знает, то пакет отсылается следующему маршрутизатору путем замены физического адреса получателя на физический адрес следующего маршрутизатора. Если маршрутизатор этого не знает - пакет игнорируется. На следующем маршрутизаторе все повторяется. По мере прохождения пакета через сеть, его физический адрес меняется, но адрес сетевого уровня остается неизменным.
Основная задача уровня передачи пакетов — это коммутация пакетов от разных пользователей. Общая схема передачи пакетов такова: выбирается один из возможных транзитных узлов (эта информация поступает с уровня маршрутизации, на котором она вычисляется по адресу получателя), формируется выходной заголовок канального уровня и осуществляется посылка пакета. Кроме того, на этом этапе может производиться фрагментация пакетов, проверка контрольной суммы и т. д.
Маршрутизаторы (точнее — уровень маршрутизации) работают на сетевом Уровне эталонной модели OSI (рис. 2). Уровень продвижения пакетов функционирует на канальном уровне.
Работа на сетевом уровне позволяет производить интеллектуальную обработку пакетов. Поскольку маршрутизаторы в основном работают с протоколом IP, они должны поддерживать связь без создания логического соединения между абонентами. При этом каждый пакет обрабатывается и отправляется получателю независимо.
Производители при создании маршрутизаторов используют три основных типа архитектуры:
- однопроцессорная;
- усиленная однопроцессорная;
- симметричная многопроцессорная.
Рисунок 6.2. Представление маршрутизаторов в соответствии с моделью OSI.
При однопроцессорной архитектуре на центральный процессор маршрутизатора возлагается вся нагрузка по обработке трафика: фильтрация и передача пакетов, модификация заголовков пакетов, обновление таблиц маршрутизации, выделение служебных пакетов, работа с протоколом SNMP, формирование управляющих пакетов и т. д. Это приводит к тому, что маршрутизатор может стать узким местом в сети при увеличении нагрузки. Даже применение мощных RISC-процессоров не решает проблему.
Для преодоления недостатков такой архитектуры применяют усиленную однопроцессорную архитектуру. В функциональной схеме маршрутизатора выделяют модули, ответственные за выполнение тех или иных специальных задач. Каждый такой модуль маршрутизатора оснащается своим (периферийным) процессором. При этом происходит частичная разгрузка центрального процессора. Центральный процессор отвечает только за те задачи, которые нельзя поручить периферийному. В целом, и эта архитектура не способна решить все вопросы, связанные с производительностью.
Симметричная многопроцессорная архитектура лишена перечисленных недостатков, так как происходит равномерное распределение нагрузки на все модули. Но теперь каждый модуль содержит свой процессор, который выполняет все задачи маршрутизации и имеет свою копию таблицы маршрутизации. Преимущества такой архитектуры признаны всеми производителями маршрутизаторов. Данная архитектура позволяет достичь теоретически неограниченной производительности маршрутизаторов.
В заключение можно сказать, что они обладают несомненными достоинствами. Маршрутизаторы не вносят никаких ограничений в топологию сети. Петли, возникающие в сетях с коммутаторами, не представляют проблемы для маршрутизаторов.
Тем не менее, маршрутизаторы по сравнению с коммутаторами и мостами требуют гораздо больших усилий по администрированию. Администраторам сетей необходимо задать целое множество конфигурационных параметров для маршрутизаторов. При этом параметры каждого маршрутизатора должны быть согласованы с параметрами других маршрутизаторов в сети.
Сегодня четко обозначилась тенденция к вытеснению сложных высокопроизводительных маршрутизаторов и увеличению роли маршрутизаторов начального класса, а ведущие фирмы-производители пришли к выводу, что одним из основных требований покупателей к маршрутизатору является простота его использования.
6.2 Одношаговый подход к маршрутизации.
Существует два подхода к выбору маршрута:
· одношаговый подход;
· маршрутизация от источника.
Согласно методу одношаговой маршрутизации каждый маршрутизатор и конечный узел принимает участие в выборе только одного шага передачи дейтаграммы. В каждой строке таблицы маршрутизации указывается не весь маршрут (в виде последовательности IP-адресов маршрутизаторов, через которые должна пройти дейтаграмма), а только один IP-адрес следующего маршрутизатора (маршрутизатора на том пути, по которому нужно передать дейтаграмму). Вместе с дейтаграммой этому маршрутизатору передается и ответственность за выбор следующего шага. Такой подход распределяет задачу выбора маршрута и снимает ограничение на максимальное количество маршрутизаторов в пути. Кроме того, за счет использования маршрутизатора по умолчанию (который обычно занимает в таблице маршрутизации последнюю строку) существенно сокращается объем таблицы. Все дейтаграммы, номера сетей которых отсутствуют в таблице маршрутизации, передаются маршрутизатору по умолчанию. Подразумевается, что маршрутизатор по умолчанию передает дейтаграмму в магистральную сеть, а маршрутизаторы, подключенные к магистральной сети, имеют полную информации о ее топологии.
6.3 Пакет
Пакетом называется некоторый объем информации, который без разделения на более мелкие части, передается по информационной сети от источника к получателю. Таким образом, пакетами принято называть сообщения сетевого уровня.
При коммутации пакетов все передаваемые пользователем сети сообщения разбиваются в исходном узле на сравнительно небольшие части, называемые пакетами. Напомним, что сообщением называется логически завершенная порция данных - запрос на передачу файла, ответ на этот запрос, содержащий весь файл, и т. п. Сообщения могут иметь произвольную длину, от нескольких байт до многих мегабайт. Напротив, пакеты обычно тоже могут иметь переменную длину, но в узких пределах, например от 46 до 1500 байт.
Каждый пакет снабжается заголовком, в котором указывается адресная информация, необходимая для доставки пакета узлу назначения, а также номер пакета, который будет использоваться узлом назначения для сборки сообщения (рис. 3).
Пакеты транспортируются в сети как независимые информационные блоки. Коммутаторы сети принимают пакеты от конечных узлов и на основании адресной информации передают их друг другу, а в конечном итоге — узлу назначения.
Рисунок 6.3. Разбиение сообщения на пакеты
6.4 Фиксированная маршрутизация. Простая маршрутизация. Адаптивная маршрутизация.
Существуют различные алгоритмы построения таблиц для одношаговой маршрутизации. Их делят на три класса:
- Алгоритмы фиксированной маршрутизации. Они применяются в сетях с простой топологией и основаны на составлении таблиц маршрутизации “вручную” администратором сети.
- Алгоритмы простой маршрутизации. Они разделяются на три подкласса:
· случайная маршрутизация (дейтаграммы передаются в любом случайном направлении, кроме исходного);
· лавинная маршрутизация (дейтаграммы передаются во всех направлениях, кроме исходного);
· адаптивная маршрутизация (таблица маршрутизации составляется на основании данных, содержащихся в проходящих через маршрутизатор дейтаграммах).
- Алгоритмы адаптивной маршрутизации. Основные алгоритмы, применяемые в современных сетях. Маршрутизаторы периодически обмениваются между собой информацией о сетевой топологии.
При маршрутизации от источника выбор маршрута производится конечным узлом или первым маршрутизатором на пути следования дейтаграммы. Все остальные маршрутизаторы только отрабатывают выбранный маршрут. Этот метод в сетях IP применяется только в целях отладки.
Управление таблицей маршрутизации на маршрутизаторах в большой распределенной сети является сложной задачей. Таблицы маршрутизации для отображения текущей сетевой топологии должны быть динамическими. Маршрутизатор обменивается с другими маршрутизаторами информацией о маршрутах. К протоколам маршрутизации, обменивающимися информацией о маршрутах в сетях IP, относятся: Routing Information Protocol (RIP), Open Shortest Path First protocol (OSPF), Integrated Intermediate System to Intermediate System (IS-IS), Exterior Gateway Protocol (EGP) и Border Gateway Protocol (BGP).
В зависимости от структуры распределенной сети некоторые маршрутизаторы могут одновременно поддерживать несколько протоколов маршрутизации. В табл. 1 приведен пример простой таблицы маршрутизации. В этой таблице содержатся записи, типичные для таких протоколов маршрутизации, как RIP IP, которые используют в качестве метрики маршрута количество переходов (hop count). В некоторых технических источниках встречается обозначение транзитный узел.
Таблица 6.1.
Запись в таблице маршрутизации
Номер сети получателя 128.3.0.0 | |||
Следующий маршрутизатор в пути | Количество переходов | Протокол маршрутизации | Таймер |
128.5.3.2 | RIP | ||
128.5.4.7 | RIP | ||
128.5.3.9 | RIP |
Каждая запись в таблице маршрутизации включает следующую информацию:
· Следующий маршрутизатор в пути — IP-адрес удаленного маршрутизатора, которому необходимо послать дейтаграммы для доставки их по назначению;
· Количество переходов— число переходов между текущим маршрутизатором и получателем пакета. Количество переходов — это число маршрутизаторов, которые должен пересечь пакет до прихода к получателю;
· Протокол маршрутизации — протокол маршрутизации, который отвечает за запись;
· Таймер — время, прошедшее с момента последнего обновления записи. Таймер сбрасывается при каждом обновлении.
Как правило, в таблицах маршрутизации содержится только один маршрут для каждой сети. Но некоторые реализации протоколов маршрутизации, например OSPF поддерживают несколько маршрутов.
На рис. 6.4 небольшая распределенная сеть, состоящая из четырех связанных тремя маршрутизаторами.
В табл. 6.2 показано содержимое таблиц маршрутизации связующих маршрутизаторов. Таблицы маршрутизации содержат одну запись для каждого маршрута.
Рисунок 6.4. Пример распределенной сети
Таблица 6.2.
Таблицы маршрутизации
Маршрутизатор Ml | ||
Номер сети | Следующий маршрутизатор в пути | Количество переходов |
128.1.0.0 | Подключена напрямую. Порт 1 | |
128.2.0.0 | Подключена напрямую. Порт 2 | |
128.3.0.0 | 128.2.0.3 | |
128.4.0.0 | 128.2.0.3 | |
Маршрутизатор М2 | ||
Номер сети | Следующий маршрутизатор в пути | Количество переходов |
128.1.0.0 | 128.2.0.2 | |
128.2.0.0 | Подключена напрямую. Порт 1 | |
128.3.0.0 | Подключена напрямую. Порт 2 | |
128.4.0.0 | 128.3.0.3 | |
Маршрутизатор МЗ | ||
Номер сети | Следующий маршрутизатор в пути | Количество переходов |
128.1.0.0 | 128.3.0.2 | |
128.2.0.0 | 128.3.0.3 | |
128.3.0.0 | Подключена напрямую. Порт 1 | |
128.4.0.0 | Подключена напрямую. Порт 2 |
Основываясь на рис. 4, рассмотрим процесс передачи информации от станции А к станции Б через три промежуточных маршрутизатора и четыре сети. Распределенную сеть можно рассматривать как одну большую виртуальную сеть. Путь, по которому будет передаваться дейтаграмма, не определяется ее отправителем. Каждый маршрутизатор отвечает за доставку дейтаграммы только на один шаг, то есть полагается на следующий маршрутизатор. Эти промежуточные маршрутизаторы пересылают ее в следующую сеть. Только когда дейтаграмма достигнет получателя, локальный драйвер IP извлечет передаваемое сообщение из дейтограммы и передаст его протоколам верхнего уровня.
Предположим, что станция А в сети с адресом 128.1.0.0 необходимо передать информацию станции Б в сети с адресом 128.4.0.0. При передачи дейтаграмм от маршрутизатора к маршрутизатору нужно обратить внимание, что IP заголовок дейтаграммы, сформированный станцией А, остается неизменным, а изменяются только физические адреса кадра канального уровня.
Так как станции А и Б располагаются в различных сетях, то станции А приходится выполнять косвенную маршрутизацию. Для этого она должна послать информацию на ближайший известный ей маршрутизатор или на маршрутизатор по умолчанию. После инициализации станция А знает только адрес маршрутизатора по умолчанию – 128.1.0.2. Поэтому станция А будет использовать маршрутизатор М1 для передачи информации любому устройству, расположенному в удаленной сети. Если в ARP-таблице станции А нет записи о маршрутизаторе по умолчанию, то она сформирует ARP-запрос и будет ждать, маршрутизатор М1 ответит на него. После того как она выяснит физический адрес маршрутизатора (%050002001231, порт 1 маршрутизатора М1), станция А передаст ему кадр канального уровня.
После получения кадра маршрутизатор Ml удалит его заголовок канального уровня и прочтет номер сети в IP-дейтаграмме — 128.4.0.0. Затем он отыщет соответствующую запись в своей таблице маршрутизации. Маршрутизатор Ml знает, что нужная сеть находится на расстоянии двух переходов от него, и что он должен передать эту дейтаграмму на порт 1 маршрутизатора М2 с IP-адресом 128.2.0.3. Если маршрутизатор Ml не имеет в своей ARP-таблице физического адреса порта 1 маршрутизатора М2, он сформирует ARP-запрос и будет ждать, когда маршрутизатор М2 ответит на него. После этого маршрутизатор Ml передаст кадр с физическим адресом %080002001233 (порт 1 маршрутизатора М2).
После получения кадра маршрутизатор М2 удалит его заголовок канального уровня и прочтет номер сети в IP-дейтаграмме — 128.4.0.0. Затем он отыщет соответствующую запись в своей таблице маршрутизации. Маршрутизатор М2 знает, что нужная сеть находится на расстоянии одного перехода от него, и он должен передать эту дейтаграмму на порт 1 маршрутизатора МЗ с IP-адресом 128.3.0.3. Если маршрутизатор М2 не имеет в своей ARP-таблице физического адреса порта 1 маршрутизатора МЗ, он сформирует ARP-запрос и будет ждать, когда маршрутизатор МЗ ответит на него. После этого маршрутизатор М2 передаст кадр с физическим адресом %080002001235 (порт 1 маршрутизатора МЗ).
После получения кадра маршрутизатор МЗ удалит заголовок канального Уровня и прочтет номер сети в IP-дейтаграмме — 128.4.0.0. Затем он отыщет соответствующую запись в своей таблице маршрутизации. Таким образом он узнает, что нужная сеть подключена напрямую к его порту 2, — так что он не Должен передавать эту дейтаграмму другому маршрутизатору. Он может доставить ее получателю напрямую. Если маршрутизатор МЗ не имеет в своей ARP-таблице физического адреса станции Б, он сформирует ARP-запрос и будет ждать, когда станция ответит на него. После этого маршрутизатор МЗ передаст кадр по физическому адресу %080002002222 станции Б.
Как видно, маршрутизаторы должны проверять свои таблицы маршрутизации для определения того, куда доставить каждую дейтаграмму. Если маршрут не найден, то маршрутизатор должен удалить дейтаграмму. Однако существует специальный IP-адрес 0.0.0.0, который собственно и является маршрутом по умолчанию. Если путь в требуемую сеть не найден, а в таблице маршрутизации есть запись для маршрута по умолчанию, маршрутизатор не будет удалять дейтаграмму, а передаст ее по этому маршруту. Введение маршрута по умолчанию позволяет уменьшить размер таблиц маршрутизации. В результате процесс маршрутизации упрощается, так как таблица маршрутизации содержит несколько записей для локальных сетей и маршрут по умолчанию для всех остальных. Маршрут по умолчанию незаменим в таких больших сетях, как Internet. Кроме уменьшения размера таблиц маршрутизации, использование маршрута по умолчанию позволяет значительно уменьшить размеры сообщений, которыми обмениваются маршрутизаторы. Недостатком маршрута по умолчанию является возможность образования петель маршрутизации.
Следует отметить, что таблица маршрутизации существует не только у маршрутизаторов с несколькими портами, но и у рабочих станций, подключаемых к сети через один сетевой адаптер. Таблицу маршрутизации можно посмотреть по командеroute print.
6.5 Прямая и косвенная маршрутизация
Распределенную сеть можно рассматривать как набор сетевых устройств и сетей, связанных между собой маршрутизаторами. Стек протоколов TCP/IP разработан для взаимодействия удаленных систем в сложных, распределенных сетях. Отдельные сети с коммутацией пакетов связываются маршрутизаторами.
Два устройства, подключенные к одной сети, могут посылать пакеты друг другу. Кроме того, сеть получает пакеты из удаленной сети и доставляет их определенному получателю в локальной сети или передает дальше, другим сетям. Если два устройства, расположенные в разных сетях, хотят переслать друг другу информацию, отправитель посылает пакеты определенному маршрутизатору. Тот передает пакет через систему маршрутизаторов и сетей до тех пор, пока пакет не достигнет маршрутизатора, который подключен напрямую к сети получателя. Этот конечный маршрутизатор затем передаст пакет получателю по известному физическому адресу. Маршрутизаторы передают пакеты, основываясь на номере (адресе) сети получателя, а не на его физическом адресе. Поэтому информация, необходимая маршрутизатору, зависит от числа сетей, составляющих общую распределенную сеть, но не от числа устройств.
Выделяют два типа маршрутизации: прямую и косвенную. При прямой маршрутизации отправитель в определенной IP-сети может напрямую передавать кадры любому получателю в той же сети. При этом не требуется функциональность IP-маршрутизации.
Для передачи дейтаграммы с использованием прямой маршрутизации, отправитель инкапсулирует эту дейтаграмму в кадр канального уровня, определяет с помощью протокола ARP физический адрес получателя по известному IP-адресу и, используя сетевое аппаратное обеспечение, доставляет дейтаграмму.
Косвенная маршрутизация происходит в том случае, если отправитель и получатель находятся в разных IP-сетях. Косвенная маршрутизация требует, чтобы отправитель передавал дейтаграммы маршрутизатору для доставки их через распределенную сеть.
Косвенная маршрутизация — это процесс более сложный, чем прямая маршрутизация, ввиду следующих двух причин:
· Отправитель должен определить маршрутизатор, которому необходимо адресовать дейтаграммы для доставки;
· Маршрутизатор должен уметь доставлять дейтаграммы к целевой сети, в которой располагается получатель.
Поясним на простом примере отличия прямой и косвенной маршрутизации. Предположим, что какой-либо маршрутизатор связывает две сети и, следовательно, он имеет два IP-адреса и два физических адреса для каждого из своих портов, присоединенных к этим сетям. Когда отправитель в любой из сетей направляет свой пакет маршрутизатору, то это будет прямой маршрутизацией. Если маршрутизатор отправляет пакет получателю в любой из сетей — это также прямая маршрутизация. Однако если рассматривать взаимную работу отправителя и получателя через маршрутизатор, то их взаимодействие осуществляется с помощью косвенной маршрутизации. Маршрутизация выполняется маршрутизатором на уровне протокола IP. Этот процесс полностью прозрачен для протоколов TCP, UDP и сетевых приложений.
Перед отправкой пакета отправитель проверяет сетевой префикс IP-адреса получателя, сравнивая его с префиксом своей сети. Совпадение означает, что Дейтаграмма может быть послана напрямую. Если номера сетей не совпадают, отправитель должен послать дейтаграмму маршрутизатору.
Обычно параметр “маршрутизатор по умолчанию” (default router) настраивался на каждой рабочей станции сетевым администратором. Маршрутизатор по умолчанию отвечает за доставку дейтаграмм всем устройствам, которые не подключены к сети отправителя.
Маршрутизатор принимает решение о передаче каждой дейтаграммы на основании своей таблицы маршрутизации. В качестве индекса таблицы используется номер сети, полученный из поля “Адрес получателя” в заголовке IP-дейтаграммы. Если получатель располагается в сети, подключенной к одному из портов маршрутизатора, последний может доставить дейтаграмму напрямую, не посылая ее другим маршрутизаторам. В противном случае маршрутизатор должен отослать дейтаграмму другому маршрутизатору, который находится ближе к получателю.
Вопросы для самоконтроля:
1. Опишите процесс коммутации пакетов.
2. В чем различие между статической и динамической маршрутизацией?
3. Перечислите основные протоколы маршрутизации.
4. Чем отличается прямая и косвенная маршрутизация?
5. Какие имеются алгоритмы построения таблиц для одношаговой маршрутизации?
6. Дайте определение понятию «маршрутизатор».
7. Назовите уровни процесса маршрутизации.
8. Дайте определение понятию «сходимость».
9. Перечислите виды алгоритмов маршрутизации.
10. В каких случаях используется междоменная маршрутизация?
11. Дайте определение понятию «метрика».
12. Какую информацию включает в себя запись в таблице маршрутизации?
13. Что такое протокол маршрутизации?
14. Могут ли два устройства, подключенных к одной сети, посылать пакеты друг другу?
15. Что используется в качестве индекса таблицы?
16. Что такое метка узла?
17. Назовите основные типы архитектуры маршрутизаторов.
18. В чем заключается метод одношаговой маршрутизации?
19. Что такое пакет данных?
Дата добавления: 2015-08-11; просмотров: 3945;