Адаптивный таймер повторной передачи Если происходят какие-либо изменения в поведении сети, велика вероятность того, что статический (фиксированный) таймер повторной передачи отреагирует на них неадекватно: он будет либо слишком мал, либо слишком велик. Поэтому во все реализации протокола TCP заложен механизм оценки текущего времени передачи, которая осуществляется по наблюдению за характером изменения задержки подтверждения на последние посланные сегменты. Затем таймер устанавливается в значение, которое немного превосходит оцененное время передачи.
Рассмотрим один из подходов, который учитывает среднее наблюдаемое время задержки подтверждения для некоторого количества посланных сегментов. Если это среднее время достаточно точно предсказывает будущие задержки, то полученное значение таймера повторной передачи приведет к очень хорошей производительности. Усредненное время можно определить, используя следующее выражение:
где RТT(i) — время обращения, наблюдаемое для i-го переданного сегмента;
ARTT(K) — среднее время обращения для первых К сегментов.
Это выражение можно представить в виде рекуррентной формулы:
Обратите внимание на то, что оба параметра в этом выражении имеют равный вес (в оба знаменателя входит одно и то же выражение К+1). Как правило, больший вес — или большая степень доверия — дается более новым, последним замерам, так как они наиболее точно отражают будущее поведение сети. Общий метод предсказания следующего усредненного значения времени обращения на основе предыдущей серии измерений времени приведен в документе RFC 793. Его суть сводится к обобщению предыдущей формулы, а именно:
где SRTT(K) (Smoothed Round Trip Time) — так называемое сглаженное оценочное время обращения. Давайте сравним это выражение с предыдущим. Используя константу α (0 < а < 1), не зависящую от числа последних наблюдений, получаем, что все наблюдения учитываются, но более ранние наблюдения имеют меньший вес. Эту константу называют фактором сглаживания.
Наименьшее значение константы а дает больший вес самым последним наблюдениям. Для значения α =0.5 наиболее весомыми становятся четыре или пять последних наблюдений, в то время как для значения константы α =0.875 средний вес распределяется для десяти и более последних наблюдений. Достоинством выбора небольшого значения константы а является то, что при этом отражаются быстрые изменения в наблюдаемых величинах. Недостаток заключается в том, что если происходит короткое волнообразное изменение в наблюдаемых значениях с последующим переходом к усредненному значению, использование небольшого значения константы α приведет к резким изменениям вычисляемого времени обращения.
Последняя формула используется в документе RFC 793 для оценки текущего времени обращения. Как уже упоминалось, таймер повторной передачи должен быть установлен в значение, большее чем оцененное время обращения. Для вычисления этого превышения можно использовать формулу:
где RTO (Retransmission Time Out) — контрольное время повторной передачи (его иногда называют тайм-аутом повторной передачи); Δ — константа.
Недостаток этой формулы в том, что значение Δ не пропорционально значению SRTT (то есть никак не учитывает его). Для больших значений SRTT любая константа Δ может оказаться относительно велика и вызовет ненужные задержки при повторных передачах потерянных сегментов. В этой связи документ RFC 793 определяет таймер, пропорциональный значению SRTT со следующими ограничениями:
где UBOUND и LBOUND — фиксированные верхняя и нижняя границы значения таймера; β — константа.
Ее называют фактором изменения задержки. Документ RFC 793 не рекомендует каких-то фиксированных значений, но приводит диапазон изменений параметров: α — между 0.8 и 0.9 и β — между 1.3 и 2.0.
Узкие места в сети
Управление потоком с использованием плавающего окна дает возможность получателю задавать скорость работы отправителя. Получатель в этом случае только подтверждает полученные сегменты и расширяет свое окно приема в соответствии с наличием свободного буферного пространства. А если учесть, что данные (в конечном счете) не могут быть отосланы без подтверждения, то можно говорить, что скорость передачи данных определяется скоростью поступления подтверждений на прием предыдущих посланных сегментов.
Однако при использовании протокола TCP скорость поступления подтверждений определяется так называемыми узкими местами между отправителем и получателем. Под термином «узкое место» понимается либо какое-то устройство, либо часть канала, имеющие значительно меньшие скоростные параметры, чем весь канал в целом. Этим узким местом может быть либо получатель, либо сама сеть.
Узкое место между отправителем и получателем может располагаться где угодно в сети. Узкие места могут быть логическими и физическими. На рис. 7.11 показан пример образования логических и физических узких мест. В этом примере отправитель имеет пропускную способность 10 Мбит/с. Поэтому для работы протокола TCP канал со скоростью 1.5 Мбит/с между маршрутизаторами становится узким местом. Это физическое узкое место. Так как скорость передачи невелика, то после достижения устойчивого состояния протокол TCP будет эффективно использовать доступную скорость. Однако наиболее часто узкие места являются логическими и образуются из-за очередей на маршрутизаторах, коммутаторах или получателе. Задержки в очередях, как правило, подвержены флуктуациям (см. приложение 4) и усложняют процесс формирования устойчивого потока.
Флуктуация задержек, которая имеет место в распределенных IP-сетях, затрудняет выбор политики отправки данных протоколом TCP на стороне отправителя. Если поток имеет слишком маленькую скорость, то распределенная сеть будет использоваться неэффективно. Если один или несколько отправителей использует повышенную скорость, то другие потоки TCP будут «зажаты» потоками этих отправителей. Если же множество отправителей TCP используют чрезмерно высокую скорость, то сегменты будут теряться при передачах, приводя к повторным передачам; или подтверждения будут сильно задерживаться, что также приводит к ненужным повторным передачам. Более того, подобные повторные передачи могут иметь эффект положительный обратной связи: чем больше сегментов посылается повторно, тем больше растет перегрузка, что, в свою очередь, приводит к дальнейшему повышению задержек и к увеличению числа отброшенных сегментов. Все это вместе приводит к увеличению числа повторных передач, что в еще большей степени усугубляет перегрузку.
Рассмотрим случай, когда узкое место находится где-то в сети. На рис. 7.12 показан низкоскоростной канал между отправителем и получателем. Ширина этого канала пропорциональна скорости передачи данных. Отправитель и получатель подключены к высокоскоростным сетям и поэтому каждый из них может работать с высокой скоростью. Канал из-за своей низкой скорости изображен на рис. 7.12 тонким. Он как раз и создает узкое место. На рис. 7.12 каждый посланный сегмент с данными изображается прямоугольником, чья площадь пропорциональна количеству байт информации в этом сегменте. Поэтому, когда сегмент проходит по узкому каналу, он как бы вытягивается в длину и, соответственно, увеличивается время его прохождения по каналу. Время прохождения сегмента через определенную точку медленного канала обозначим Рb: это разница между временами пересечения этой точки передней и задней границами сегмента. Предположим, что на медленном канале сегменты идут вплотную друг к другу, то есть задняя граница первого сегмента примыкает к передней границе второго сегмента. Поэтому Pb определяет и время прохождения через точку в канале передних границ обоих сегментов. При поступлении сегментов в высокоскоростной канал это время (между передними границами) сохраняется даже с учетом повышения скорости передачи данных, так как время между поступлениями не меняется. А так как сегмент на высокоскоростном канале как бы сжимается по длине и увеличивается в ширину, то теперь это время состоит из времени прохождения самого сегмента и времени на паузу до передней границы следующего сегмента, то есть Рr=Рb. Если получатель подтверждает сегменты в момент поступления, то время между отсылками подтверждающих сегментов (АСК-сегментов) Аr на выходе от получателя равно Рr. И, наконец, мы получаем, что Ab, будет равно Ar, а Аs равно Ab,.
При переходе системы в устойчивое состояние после начальной попытки работать с большой скоростью скорость передачи сегментов сравняется со скоростью поступления подтверждений. Очевидно, что скорость отправки сегментов будет равна скорости самого медленного канала. Можно сказать, что протокол TCP автоматически определяет узкое место в сети и регулирует свой поток. Этот процесс называется самосинхронизацией (self-clocking). Самосинхронизация работает хорошо, если узким местом является получатель.
Протокол TCP в сетях ATM
Процесс создания соединения между абонентами протоколом TCP по своей природе похож на процесс формирования виртуальных соединений в технологии ATM. Если использовать протокол TCP в сети ATM без специальной доработки, то вопрос эффективности его работы достаточно проблематичен. Это связано с большими накладными расходами при упаковке сегмента TCP в ячейки ATM и при потере ячеек любого сегмента. Была разработана версия протокола TCP Boston, адаптированная к сети ATM. Эта версия протокола TCP предназначена для гарантированной доставки информации из конца в конец виртуального соединения. При его разработке основное внимание уделялось методам эффективной адаптации длины сегмента к длине ячейки и к эффективному использованию полосы пропускания. Для решения этих основных проблем в основу протокола TCP Boston заложен алгоритм адаптивного расслоения информации AIDA (Adaptive Information Dispersal Algorithm). Данный алгоритм способен проводить динамическое распределение полосы пропускания за счет введения некоторой избыточности. При этом элементы избыточности применяются, так сказать, по мере необходимости: если потерь ячеек не происходит, то в передаваемые сегменты (напомним, что в TCP для передачи данных используются сегменты) избыточные элементы не вводятся, если же произошла потеря информации, то дополнительно посылается ровно столько избыточных элементов, сколько их требуется для восстановления сегмента, в котором потеряны данные, на принимающей стороне. При этом повторная посылка всего сегмента исключается. К недостаткам версии TCP Boston можно отнести необходимость доработки уровня адаптации ATM (AAL) и обязательной установки и на принимающем, и на передающем оборудовании этой версии протокола TCP.
Протокол TCP находится в постоянном развитии. Одно из последних направлений его развития отражено в документе RFC 1323. Эта модернизация протокола адаптирует его к очень высоким скоростям передачи (до нескольких Терабит/с). Далее в книге нами будут рассмотрены некоторые методы повышения эффективности работы протокола TCP.
Маршрутицазия протокола IP
Большинство сетей, работающих в государственном или частном секторе в нашей стране, давно превратились в серьезный инструмент. За сравнительно быстрое время они выросли из небольших локальных сетей в большие распределенные сети с огромным числом пользователей. В таких сетях ключевой характеристикой является надежность, так как задачи, решаемые с их помощью, зачастую напрямую влияют на успешность работы всей организации.
Существует несколько методов повышения надежности сети. Например, разделение всей сети на подсети и введение маршрутизации способно обеспечить требуемую надежность и достаточно простую схему поиска нужного абонента. Другой метод использует виртуальные локальные сети, которые позволяют повысить надежность за счет объединения пользователей в широковещательные домены. Для расширения таких доменов (сегментов или подсетей) с включением в них разнообразных сетевых устройств обычно применяются коммутаторы и протоколы остовых деревьев (spanning tree). И хотя такие схемы по заявлениям производителей позволяют практически неограниченно расширять подсети, при этом получается сеть, которой намного труднее управлять и в которой сложнее устранять неисправности.
В реальной жизни именно маршрутизаторы являются основными узлами сложных сетей, например Internet. В подавляющем большинстве случаев именно они, а не широко рекламируемые коммутаторы ATM, Ethernet или FDDI, являются базовыми устройствами распределенных корпоративных сетей. Это особенно справедливо в российских условиях. В данной связи разговор о маршрутизации чрезвычайно актуален.
Как известно, протокол IP работает на сетевом уровне. Именно на этом уровне реализуется межсетевое взаимодействие, в частности, маршрутизация дейтаграмм в Internet. Но главное, что именно на сетевом уровне принимается решение о маршрутизации.
Маршрутизатор соединяет несколько различных физических сетей. Для каждого поступающего пакета маршрутизатор принимает решение о том, куда его переслать. Пакет «летает» от маршрутизатора к маршрутизатору, пока не достигнет сети, в которой находится станция-адресат. В роли маршрутизатора может выступать специальный компьютер. В большинстве реализаций стека TCP/IP рабочая станция с несколькими сетевыми интерфейсами также может выполнять функции маршрутизатора, однако для этого она должна быть специальным образом сконфигурирована.
Программное обеспечение протокола IP выполняет функции маршрутизации, выбирая путь для передачи информации в сложной схеме физических сетей. На маршрутизаторах и на конечных станциях для определения маршрута поддерживаются специальные таблицы маршрутизации. Выбор маршрута осуществляется на основе адреса сети назначения, который определяется по адресу получателя. Протокол IP определяет маршрут отдельно для каждой дейтаграммы, не гарантируя надежной доставки в нужном порядке. Он непосредственно отображает данные на нижележащий физический уровень. Тем самым достигается высокая эффективность доставки дейтаграмм.
В отличие от многих других технологий передачи данных, технология ATM может использоваться в сетях практически любого масштаба — от небольших локальных сетей до глобальных, состоящих из сотен и тысяч узлов. Передача данных осуществляется с установкой логических коммутируемых или постоянных соединений между конечными станциями.
Протокол маршрутизации в сетях ATM (PNNI) значительно отличается от протоколов маршрутизации в сетях IP. В сетях ATM используется маршрутизация от источника (source routing): путь передачи сообщения начинает вычисляться в момент отправки. Данный подход позволяет значительно снизить накладные расходы на обмен сообщениями. Чтобы любой узел сети мог определить путь пересылки сообщения к точке назначения, он должен обладать полной информацией о состоянии сети. Именно на этом принципе основаны все протоколы маршрутизации, опирающиеся на информацию о состоянии каналов сети, к которым относится и протокол маршрутизации PNNI.
В стандарте PNNI сеть ATM рассматривается как совокупность соединенных между собой коммутаторов (узлов сети); конечные станции в топологическую структуру сети не входят. При маршрутизации сообщений учитываются первые 19 байт АТМ-адреса. Двадцатый байт, именуемый селектором, не используется.
IP-маршрутизаторы
Распределенную сеть можно рассматривать как набор сетевых устройств и сетей, связанных между собой маршрутизаторами. Стек протоколов TCP/IP разработан для взаимодействия удаленных систем в сложных, распределенных сетях. Отдельные сети с коммутацией пакетов связываются маршрутизаторами.
Два устройства, подключенные к одной сети, могут посылать пакеты друг другу. Кроме того, сеть получает пакеты из удаленной сети и доставляет их определенному получателю в локальной сети или передает дальше, другим сетям. Если два устройства, расположенные в разных сетях, хотят переслать друг другу информацию, отправитель посылает пакеты определенному маршрутизатору. Тот передает пакет через систему маршрутизаторов и сетей до тех пор, пока пакет не достигнет маршрутизатора, который подключен напрямую к сети получателя. Этот конечный маршрутизатор затем передаст пакет получателю по известному физическому адресу. Маршрутизаторы передают пакеты, основываясь на номере (адресе) сети получателя, а не на его физическом адресе. Поэтому информация, необходимая маршрутизатору, зависит от числа сетей, составляющих общую распределенную сеть, но не от числа устройств.
Выделяют два типа маршрутизации: прямую и косвенную. При прямой маршрутизации отправитель в определенной IP-сети может напрямую передавать кадры любому получателю в той же сети. При этом не требуется функциональность IP-маршрутизации.
Для передачи дейтаграммы с использованием прямой маршрутизации, отправитель инкапсулирует эту дейтаграмму в кадр канального уровня, определяет с помощью протокола ARP физический адрес получателя по известному IP-адресу и, используя сетевое аппаратное обеспечение, доставляет дейтаграмму.
Косвенная маршрутизация происходит в том случае, если отправитель и получатель находятся в разных IP-сетях. Косвенная маршрутизация требует, чтобы отправитель передавал дейтаграммы маршрутизатору для доставки их через распределенную сеть. Косвенная маршрутизация — это процесс более сложный, чем прямая маршрутизация, ввиду следующих двух причин:
q Отправитель должен определить маршрутизатор, которому необходимо адресовать дейтаграммы для доставки;
q Маршрутизатор должен уметь доставлять дейтаграммы к целевой сети, в которой располагается получатель.
Поясним на простом примере отличия прямой и косвенной маршрутизации. Предположим, что какой-либо маршрутизатор связывает две сети и, следовательно, он имеет два IP-адреса и два физических адреса для каждого из своих портов, присоединенных к этим сетям. Когда отправитель в любой из сетей направляет свой пакет маршрутизатору, то это будет прямой маршрутизацией. Если маршрутизатор отправляет пакет получателю в любой из сетей — это также прямая маршрутизация. Однако, если рассматривать взаимную работу отправителя и получателя через маршрутизатор, то их взаимодействие осуществляется с помощью косвенной маршрутизации. Маршрутизация выполняется маршрутизатором на уровне протокола IP. Этот процесс полностью прозрачен для протоколов TCP, UDP и сетевых приложений.
Перед отправкой пакета отправитель проверяет сетевой префикс IP-адреса получателя, сравнивая его с префиксом своей сети. Совпадение означает, что дейтаграмма может быть послана напрямую. Если номера сетей не совпадают, отправитель должен послать дейтаграмму маршрутизатору.
Обычно параметр «маршрутизатор по умолчанию» (default router) настраивается на каждой рабочей станции сетевым администратором. Маршрутизатор по умолчанию отвечает за доставку дейтаграмм всем устройствам, которые не подключены к сети отправителя.
Маршрутизатор принимает решение о передаче каждой дейтаграммы на основании своей таблицы маршрутизации. В качестве индекса таблицы используется номер сети, полученный из поля «Адрес получателя» в заголовке IP-дейтаграммы. Если получатель располагается в сети, подключенной к одному из портов маршрутизатора, последний может доставить дейтаграмму напрямую, не посылая ее другим маршрутизаторам. В противном случае маршрутизатор должен отослать дейтаграмму другому маршрутизатору, который находится ближе к получателю.
Существует два подхода к выбору маршрута:
q одношаговый подход;
q маршрутизация от источника.
Согласно методу одношаговой маршрутизации каждый маршрутизатор и конечный узел принимает участие в выборе только одного шага передачи дейтаграммы. В каждой строке таблицы маршрутизации указывается не весь маршрут (в виде последовательности IP-адресов маршрутизаторов, через которые должна пройти дейтаграмма), а только один IP-адрес следующего маршрутизатора (маршрутизатора на том пути, по которому нужно передать дейтаграмму). Вместе с дейтаграммой этому маршрутизатору передается и ответственность за выбор следующего шага. Такой подход распределяет задачу выбора маршрута и снимает ограничение на максимальное количество маршрутизаторов в пути. Кроме того, за счет использования маршрутизатора по умолчанию (который обычно занимает в таблице маршрутизации последнюю строку) существенно сокращается объем таблицы. Все дейтаграммы, номера сетей которых отсутствуют в таблице маршрутизации, передаются маршрутизатору по умолчанию. Подразумевается, что маршрутизатор по умолчанию передает дейтаграмму в магистральную сеть, а маршрутизаторы, подключенные к магистральной сети, имеют полную информации о ее топологии.
Существуют различные алгоритмы построения таблиц для одношаговой маршрутизации. Их делят на три класса:
q Алгоритмы фиксированной маршрутизации. Они применяются в сетях с простой топологией и основаны на составлении таблиц маршрутизации «вручную» администратором сети.
q Алгоритмы простой маршрутизации. Они разделяются на три подкласса:
· случайная маршрутизация (дейтаграммы передаются в любом случайном направлении, кроме исходного);
· лавинная маршрутизация (дейтаграммы передаются во всех направлениях, кроме исходного);
· адаптивная маршрутизация (таблица маршрутизации составляется на основании данных, содержащихся в проходящих через маршрутизатор дейтаграммах).
q Алгоритмы адаптивной маршрутизации. Основные алгоритмы, применяемые в современных сетях. Маршрутизаторы периодически обмениваются между собой информацией о сетевой топологии.
При маршрутизации от источника выбор маршрута производится конечным узлом или первым маршрутизатором на пути следования дейтаграммы. Все остальные маршрутизаторы только отрабатывают выбранный маршрут. Этот метод в сетях 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).
В зависимости от структуры распределенной сети некоторые маршрутизаторы могут одновременно поддерживать несколько протоколов маршрутизации. В табл. 8.1 приведен пример простой таблицы маршрутизации. В этой таблице содержатся записи, типичные для таких протоколов маршрутизации, как RIP IP, которые используют в качестве метрики маршрута количество переходов (hop count). В некоторых технических источниках встречается обозначение транзитный узел.
Таблица 8.1. Запись в таблице маршрутизации
Номер сети получателя 128.3.0.0
| Следующий
маршрутизатор в пути
| Количество
переходов
| Протокол
маршрутизации
| Таймер
| 128.5.3.2
|
| RIP
|
| 128.5.4.7
|
| RIP
|
| 128.5.3.9
| б
| RIP
|
|
Каждая запись в таблице маршрутизации включает следующую информацию:
q Следующий маршрутизатор в пути — IP-адрес удаленного маршрутизатора, которому необходимо послать дейтаграммы для доставки их по назначению;
q Количество переходов — число переходов между текущим маршрутизатором и получателем пакета. Количество переходов — это число маршрутизаторов, которые должен пересечь пакет до прихода к получателю;
q Протокол маршрутизации — протокол маршрутизации, который отвечает за запись;
q Таймер — время, прошедшее с момента последнего обновления записи. Таймер сбрасывается при каждом обновлении.
Как правило, в таблицах маршрутизации содержится только один маршрут для каждой сети. Но некоторые реализации протоколов маршрутизации, например OSPF, поддерживают несколько маршрутов.
На рис. 8.1 показана небольшая распределенная сеть, состоящая из четырех локальных сетей, связанных тремя маршрутизаторами. В табл. 8.2 показано содержимое таблиц маршрутизации связующих маршрутизаторов. Таблицы маршрутизации содержат одну запись для каждого маршрута.
Таблииа 8.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
|
|
Основываясь на рис. 8.1, рассмотрим процесс передачи информации от станции А к станции Б через три промежуточных маршрутизатора и четыре сети. Распределенную сеть можно рассматривать как одну большую виртуальную сеть. Путь, по которому будет передаваться дейтаграмма, не определяется ее отправителем. Каждый маршрутизатор отвечает за доставку дейтаграммы только на один шаг, то есть полагается на следующий маршрутизатор. Эти промежуточные маршрутизаторы пересылают ее в следующую сеть. Только когда дейтаграмма достигнет получателя, локальный драйвер IP извлечет передаваемое сообщение из дейтаграммы и передаст его протоколам верхнего уровня.
Предположим, что станции А в сети с адресом 128.1.0.0 необходимо передать информацию станции Б в сети с адресом 128.4.0.0. При передаче дейтаграмм от маршрутизатора к маршрутизатору нужно обратить внимание, что IP-заголовок дейтаграммы, сформированный станцией А, остается неизменным, а изменяются только физические адреса кадра канального уровня.
Так как станции А и Б располагаются в различных сетях, то станции А приходится выполнять косвенную маршрутизацию. Для этого она должна послать информацию на ближайший известный ей маршрутизатор или на маршрутизатор по умолчанию. После инициализации станция А знает только адрес маршрутизатора по умолчанию — 128.1.0.2. Поэтому станция А будет использовать маршрутизатор Ml для передачи информации любому устройству, расположенному в удаленной сети. Если в ARP-таблице станции А нет записи о маршрутизаторе по умолчанию, то она сформирует ARP-запрос и будет ждать, когда маршрутизатор Ml ответит на него. После того как она выяснит физический адрес маршрутизатора (%080002001231, порт 1 маршрутизатора Ml), станция А передаст ему кадр канального уровня.
После получения кадра маршрутизатор 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. Кроме уменьшения размера таблиц маршрутизации, использование маршрута по умолчанию позволяет значительно уменьшить размеры сообщений, которыми обмениваются маршрутизаторы. Недостатком маршрута по умолчанию является возможность образования петель маршрутизации.
На рис. 8.2 показан алгоритм обработки IP-дейтаграмм маршрутизатором.
Следует отметить, что таблица маршрутизации существует не только у маршрутизаторов с несколькими портами, но и у рабочих станций, подключаемых к сети через один сетевой адаптер. На рис. 8.3 показан пример таблицы маршрутизации на компьютере, работающем под управлением операционной системы Microsoft Windows NT. Отличие состоит в том, что все дейтаграммы должны передаваться через один единственный сетевой адаптер, вне зависимости от их адресата. Таблицу маршрутизации можно посмотреть по командеroute print.
Автономные системы
Сегодня Internet значительно отличается от той сети, которая была создана в 1980 году. Internet стала мировой, общедоступной информационной сетью, которая удваивается в размерах каждые девять месяцев. Однако столь бурный рост Internet неизбежно привел к выявлению большого количества проблем, связанных с маршрутизацией. При этом:
q Производительность протоколов маршрутизации значительно снизилась;
q Размер сообщений, которыми обмениваются маршрутизаторы для поддержания своих таблиц маршрутизации растет, что требует все больших ресурсов маршрутизаторов и все большей пропускной способности сети;
q Большое число маршрутизаторов, работающих с протоколами маршрутизации, делают поддержку механизмов обнаружения и изоляции сбоев практически невозможной.
Для того чтобы в какой-то степени снизить влияние этих факторов, сеть Internet разделили на отдельные автономные системы (Autonomous System). Автономная система (АС) представляет собою группу сетей и маршрутизаторов, управляемую уполномоченным. АС позволяет независимо управлять различными частями Internet и разрешает маршрутизаторам внутри различных АС использовать разные протоколы маршрутизации. Каждая сеть внутри АС должна быть доступна из Internet.
Маршрутизаторы внутри одной АС взаимодействуют, используя динамические протоколы маршрутизации. Протоколы, управляющие маршрутной информацией внутри АС, относятся к классу так называемых протоколов IGP (Interior Gateway Protocol, внутренний шлюзовой протокол). Главной задачей протоколов класса IGP является поддержание необходимой производительности. Эти протоколы должны немедленно подстраиваться под изменения в сетевойтопологии и находить маршрут с наименьшей стоимостью. Отдельные протоколы класса IGP это: RIP, NLSP, OSPF, IGRP, EIGRP и IS-IS.
Взаимодействие между маршрутизаторами, принадлежащими к различным АС, требует дополнительного протокола, который называется EGP (Exterior Gateway Protocol, внешний шлюзовой протокол). Так как различные АС управляются совершенно независимо, в протоколе предприняты меры, предотвращающие влияние сбоев в других АС. Необходимо учитывать, что для связи с маршрутизаторами внутри АС корневой маршрутизатор (см. ниже), кроме поддержки EGP, должен также поддерживать протоколы класса IGP, так как всю информацию о своей АС протокол EGP получает через IGP.
Подсети
Как известно, IP-адрес состоит из двух иерархических уровней. Необходимость во введении третьего уровня иерархии — уровня подсетей — была продиктована возникновением дефицита номеров сетей и резким ростом таблиц маршрутизации маршрутизаторов в Internet. После введения уровня подсети номер устройства разделяется на две части — номер подсети и номер устройства в этой подсети (рис. 8.4).
Увеличение количества уровней снимает проблему роста таблиц маршрутизации благодаря тому, что информация о топологии корпоративных сетей становится ненужной магистральным маршрутизаторам Internet. Маршруты из сети Internet до любой конкретной подсети, расположенной в сети с данным IP-адресом, одинаковы и не зависят от того, в какой подсети расположен получатель. Это стало возможным благодаря тому, что все подсети сети с данным номером используют один и тот же сетевой префикс, хотя их номера (номера подсетей) разные. Маршрутизаторам в частной сети требуется различать отдельные подсети, но для маршрутизаторов Internet все подсети относятся к единственной записи в таблице маршрутизации. Это позволяет администратору частной сети вносить любые изменения в логическую структуру своей сети, не влияя на размер таблиц маршрутизации маршрутизаторов Internet.
Кроме того, легко решается проблема выделения номеров при росте организации. Организация получает номер сети, а затем администратор произвольно присваивает номера подсетей для каждой внутренней сети. Это позволяет организации расширять свою сеть без необходимости получения еще одного сетевого номера.
|