Архитектура маршрутизатора
До сих пор в этой главе мы рассматривали модели обслуживания сетевого уровня, алгоритмы маршрутизации и реализующие их протоколы. Однако эти вопросы представляют собой лишь часть (хотя и важную) того, что происходит на сетевом уровне. Мы еще не изучали коммутирующую функцию маршрутизатора — процесс передачи дейтаграмм с входных линий маршрутизатора на его выходные линии.
Ограничившись при знакомстве с сетевым уровнем только вопросами управления и обслуживания, мы уподобляемся нерадивым акционерам, которые при изучении компании считают достаточным встретиться с ее управленческим персоналом (он, хотя и руководит компанией, как правило, выполняет очень мало фактической работы!) и посетить ее рекламный отдел («только наш продукт предоставит вам эту замечательную услугу!»). Чтобы полнее представлять себе, чем в действительности занимается компания, необходимо говорить с непосредственными исполнителями. На сетевом уровне фактическая работа (то есть то, ради чего существует сетевой уровень) заключается в продвижении дейтаграмм, а ее исполнителями являются маршрутизаторы. Ключевой составляющей продвижения дейтаграмм является их передача с входной линии маршрутизатора на его выходную линию. Обсуждению этого процесса и посвящен данный раздел. Наше обсуждение будет вынужденно кратким, так как для подробного изучения устройства маршрутизатора потребовался бы отдельный курс. Соответственно, мы постараемся предоставить необходимые ссылки на материал, в котором этот вопрос обсуждается более подробно.
Условная схема маршрутизатора показана на рис. 4.33. Маршрутизатор состоит из четырех компонентов.
□ Входные порты. Входной порт выполняет несколько функций. Он выполняет функции физического уровня (самый левый прямоугольник входного порта и самый правый прямоугольник выходного порта на рис. 4.33), завершая входную физическую линию маршрутизатора. Он также осуществляет функции канального уровня (средние прямоугольники входного и выходного портов), необходимые для взаимодействия с функциями канального уровня на другой стороне линии связи. Еще он выполняет функции поиска и продвижения данных (самый правый прямоугольник входного порта и самый левый прямоугольник выходного порта), так что пакет, переправленный в коммутационный блок маршрутизатора, на выходе из него появляется из того порта, из которого следует. Управляющие пакеты (например, пакеты, содержащие информацию протокола RIP, OSPF или BGP) продвигаются из входного порта в маршрутный процессор. На практике несколько портов часто объединяют на одной канальной карте маршрутизатора.
□ Коммутационный блок. Коммутационный блок соединяет входные порты маршрутизатора с его выходными портами. Коммутационный блок целиком располагается внутри маршрутизатора — сеть внутри сетевого маршрутизатора!
□ Выходные порты. Выходной порт хранит пакеты, переправленные ему через коммутационный блок, а затем передает пакеты по выходной линии. Таким образом, выходной порт осуществляет функции физического и канального уровней, обратные функциям входного порта. В случае двунаправленной линии связи (то есть когда линия передает данные в оба направления) выходной порт линии связи, как правило, составляет пару с входным портом этой линии, располагаясь на той же самой карте канала.
□ Маршрутный процессор. Маршрутный процессор выполняет функции протоколов маршрутизации (например, тех, которые мы изучали в разделе «Маршрутизация в Интернете»), обрабатывает информацию о маршрутах, а также выполняет функции управления сетью (см. главу 8) в маршрутизаторе. Поскольку эта тема будет рассматриваться в главе 8, мы не станем обсуждать ее здесь. В следующих подразделах мы более подробно рассмотрим входные и выходные порты, а также блок коммутации.