Nets2010 (1131259), страница 46
Текст из файла (страница 46)
Каждая АС имеет остовую область, называемую «областью 0». Все области АС соединяются с остовой, возможно через туннелирование. Поэтому можно из одной области попасть в другую через остовую область. Туннель представлен в графе дугой с весом. Любой маршрутизатор, соединенный с двумя или более областями, - часть остовой области. Как и в других областях, топология остовой области не видна извне.
Внутри области у каждого маршрутизатора одинаковая база данных состояний каналов и одинаковый алгоритм наикратчайшего пути. Задача маршрутизатора - вычислить наикратчайший путь до другого маршрутизатора этой области, включая маршрутизатор, соединенный с остовой областью. Маршрутизатор, соединенный с двумя областями, должен иметь две базы данных и выполнять два алгоритма наикратчайшего пути независимо.
Чтобы поддерживать разные типы сервисов, OSPF использует несколько графов, один с разметкой относительно задержки, другой - относительно пропускной способности, третий - относительно надежности. Хотя все три требуют соответствующих вычислений, но зато мы получаем три маршрута, оптимизированных по задержке, пропускной способности и надежности.
Во время функционирования возникают три вида маршрутов: внутри области, между областями и между АС. Внутри области вычислить маршрут просто - им будет наикратчайший до маршрутизатора получателя. Маршрутизация между областями всегда выполняется в три этапа: от источника до остовой области, от остовой до области назначения, внутри области назначения. Этот алгоритм навязывает звездообразную топологию OSPF: остовая область – центр, ось, остальные области – лучи, спицы. Пакеты маршрутизируются без изменений, как есть, за исключением случая, когда область получателя соединена с остовой областью туннелем. Рисунок 5-51 показывает эти три вида маршрутов.
Рисунок 5-51. Связи внутри области, между областями и между разными АС
OSPF различает четыре класса маршрутизаторов:
-
Внутренний, целиком внутри одной области
-
Пограничный, соединяющий несколько областей
-
Остовый, принадлежащий остовой области
-
Пограничный, соединенный с маршрутизаторами других АС
Эти классы могут пересекаться. Например, все пограничные маршрутизаторы – остовые; маршрутизатор из остовой области, но не на ее границе - внутренний. Примеры этих классов маршрутизаторов показаны на рисунке 5–51.
Когда маршрутизатор загружается, он рассылает сообщение «Hello» всем своим соседям - на линиях «точка-точка», группам маршрутизаторов в ЛВС с множественным доступом, чтобы получить информацию о своем окружении.
В OSPF маршрутизаторы обмениваются данными не со своими соседями, а со смежными маршрутизаторами. Это не одно и то же. Маршрутизатор не общается со всеми маршрутизаторами, например, внутри ЛВС, а лишь с тем, который объявлен выделенным маршрутизатором. Этот выделенный маршрутизатор смежен всем другим. У выделенного маршрутизатора есть дублер, который имеет ту же информацию, что и основной.
Периодически в ходе нормальной работы каждый маршрутизатор рассылает всем своим смежным маршрутизаторам сообщение LINK STATE UPDATE. В этом сообщении он передает информацию о состоянии своих линий и их стоимости в разных метриках для базы данных топологии соединений. Это сообщение в целях надежности идет с подтверждением. Каждое такое сообщение имеет номер, который позволяет определить, несет ли пришедшее сообщение новую информацию по сравнению с той, что есть в его базе, или старую. Маршрутизаторы рассылают эти сообщения, когда у них появляются новые линии, разрушаются старые или меняется стоимость линии.
DATABASE DESCRIPTION – сообщение, содержащее состояние всех каналов в базе данных отправителя. Сравнивая свои значения с теми, что у отправителя, получатель может определить, у кого наиболее свежая информация.
Используя сообщение LINK STATE REQUEST, маршрутизатор может в любой момент запросить информацию о любой линии у другого маршрутизатора. Наиболее свежая информация распространяется другим. Все сообщения передаются как IP-пакеты. Все типы сообщений показаны в таблице 5-52.
Таблица 5-52. Типы OSPF-сообщений
Тип сообщений | Описание |
Hello (Приветствую) | Используется, чтобы получить информацию о соседях. |
Link state update (Обновление состояния канала) | Предоставляет соседям стоимости отправителя. |
Link state ack (Подтверждение состояния канала) | Подтверждает обновление состояния канала. |
Database description (Описание базы данных) | Объявляет, какие обновления есть у отправителя. |
Link state request (Запрос о состоянии канала) | Запрашивает информацию у партнера. |
Маршрутизаторы в остовой области делают все, что было описано выше, а также обмениваются информацией с пограничными маршрутизаторами, чтобы уметь вычислять наилучший маршрут от любого маршрутизатора остовой области до любого другого маршрутизатора.
59. Понятие автономной системы. Протокол внешней маршрутизации BGP.
Интернет состоит из сетей, управляемых разными организациями. Каждая такая сеть использует внутри свои алгоритмы маршрутизации и управления и называется автономной системой. Наличие стандартов позволяет преодолеть различия во внутренней организации автономных систем и обеспечить их совместное функционирование. Алгоритмы маршрутизации, применяемые внутри АС, называются внутренними протоколами шлюзов. Алгоритмы маршрутизации, применяемые для маршрутизации между АС, называются внешними протоколами шлюзов.
BGP - внешний протокол маршрутизации шлюзов.
Для маршрутизации между АС используется BGP - протокол пограничных шлюзов. Основное отличие BGP от OSPF проистекает из различия в целях. При маршрутизации внутри АС основная цель - наикратчайший маршрут. При маршрутизации между АС надо учитывать также ряд условий, вызванных политикой конкретной АС.
Например, какая-то АС может не допускать маршрутизацию через себя ни для какой другой АС (у них нет другого кратчайшего пути - это ваши проблемы); может разрешать лишь определенным. Типичными примерами таких ограничений могут быть:
-
Трафик не должен проходить через определенные АС.
-
Маршрут, начинающийся в министерстве обороны России, никогда не должен проходить через Чечню.
-
Трафик через Украину может проходить, только если нет другого маршрута.
-
Трафик из IBM никогда не должен проходить через АС Microsoft.
Такие правила вручную вводятся в каждый BGP-маршрутизатор. С точки зрения BGP-маршрутизатора весь мир состоит из BGP-маршрутизаторов, соединенных между собой. Два BGP-маршрутизатора соединены, если у них есть общая сеть. Сети делятся на три категории по степени интереса направления трафика через сеть. Первая - тупиковые сети, они никуда не ведут. У них только одна точка соединения в BGP-графом. Они не могут использоваться для транзита. Сети с множественными соединениями могут использоваться для транзита, если допускают его. Транзитные сети предназначены для транзита трафика, возможно с некоторыми ограничениями.
Два BGP-маршрутизатора взаимодействуют через TCP-соединение. Это обеспечивает надежность передачи информации и скрывает все подробности от сетей, через которые она проходит.
BGP - это протокол на основе вектора расстояний. Однако вместо стоимости для каждого места в сети он хранит конкретный маршрут. Своим соседям он передает не вектор расстояний, а те маршруты, которые он использует. На рисунке 5-53 показан пример.
Рисунок 5-53. (а) Сеть из BGP-маршрутизаторов; (b) Информация, получаемая F
BGP-протокол легко решает проблему «счета до бесконечности». Предположим, что маршрутизатор G или линия FG отказали. Тогда F получит от своих соседей три оставшихся маршрута до D. Поскольку маршруты IFGCD и EFGCD проходят через G, то он их отбросит и воспользуется FBCD.
60. Транспортный уровень: сервис, примитивы, адресация, установление соединения, разрыв соединения, управление потоком и буферизация, мультиплексирование, восстановление разрывов.
Транспортный протокол - это центральный протокол во всей иерархии протоколов. Именно он обеспечивает надежную передачу данных в сети от одного абонента к другому. Здесь мы подробно рассмотрим организацию, сервис, протоколы и производительность на транспортном уровне.
Сервис.
Основная цель транспортного уровня - обеспечить эффективный, надежный и дешевый сервис для пользователей на прикладном уровне. Достижение этой цели - задача сервиса, предоставляемого сетевым уровнем. То, что выполняет работу транспортного уровня, называется транспортным агентом. Транспортный агент может располагаться в ядре операционной системы, в отдельном процессе пользователя, в библиотеке сетевого приложения или на карте сетевого интерфейса. В некоторых случаях оператор сети может предоставлять надежный транспортный сервис, при котором транспортный агент располагается на специальной интерфейсной машине на границе транспортной среды, к которой подключены абонентские машины. На рисунке 6-1 показано взаимное расположение сетевого, транспортного и прикладного уровней.
Рисунок 6-1. Сетевой, транспортный и прикладной уровень
Подобно сетевому уровню, транспортный уровень также может поддерживать два вида сервиса - ориентированный на соединения и без соединений. Транспортный сервис, ориентированный на соединение, имеет много общего с аналогичным сетевым сервисом. Адресация и управление потоком также схожи на обоих уровнях.
Задача транспортного уровня в том, чтобы сделать сервис транспортного уровня для прикладного более надежным, чем сетевого для транспортного. Другое важное свойство транспортного уровня - прикладная программа, опираясь на транспортный сервис, становится независимой от сети и может работать в сети с любым сетевым сервисом. И, наконец, с транспортным сервисом работает прикладная программа, а с сетевым – транспортный уровень. Поэтому интерфейс с транспортным уровнем должен быть дружественным, удобным и эффективным.
В силу приведенных доводов первые четыре уровня называют поставщиками транспортного сервиса, а все, что выше четвертого, - пользователями транспортного сервиса.
Транспортный уровень позволяет пользователю в момент установки соединения определить желаемые, допустимые и минимальные значения для различных параметров, характеризующих качество сервиса. Далее транспортный уровень сам будет решать, сможет ли он с помощью сетевого сервиса удовлетворить запросы пользователя, и до какой степени. Основные параметры качества сервиса:
-
Connection establishment delay - задержка на установку соединения, определяет время между запросом на установку соединения и подтверждением его установки.
-
Connection establishment failure probability - вероятность, что соединение не будет установлено за время, равное задержке на установку соединения.
-
Throughput - пропускная способность транспортного соединения, определяет количество байт пользователя, передаваемого за секунду.
-
Transit delay - задержка на передачу, определяет время от момента, когда сообщение ушло с машины-отправителя, до момента, когда оно получено машиной-получателем.
-
Residual error ration - доля ошибок при передаче. Этот параметр определяет отношение числа сообщений, при передаче которых были ошибки, включая потерянные сообщения, к общему числу переданных сообщений. Теоретически этот параметр должен быть равен 0, если транспортный уровень надежно передает сообщение. На практике это не так.
-
Protection - этот параметр позволяет определить уровень защиты передаваемых данных от несанкционированного доступа третьей стороной. Косвенно он определяет, на какие затраты готов пойти пользователь для защиты своих данных от перехвата при передаче на транспортном уровне.
-
Priority – приоритет, позволяет пользователю указать степень важности для него данного соединения среди остальных соединений.
-
Resilience – устойчивость, определяет вероятность разрыва транспортным уровнем соединения в силу своих внутренних проблем или перегрузки.
Параметры качества сервиса определяет пользователь в момент установления транспортного соединения, указывая для каждого из них желаемое и минимальное значения. Если требуемое качество недостижимо, то транспортный уровень сразу сообщает об этом пользователю, даже не обращаясь к получателю сообщения. При этом пользователя информируют, что попытка установить соединение прошла неудачно, и о причинах неудачи. Процедура согласования параметров качества сервиса называется согласованием возможностей.
Примитивы транспортного уровня.
Примитивы транспортного уровня позволяют пользователю получить доступ к транспортному сервису. Транспортный сервис аналогичен сервису сетевого уровня. Однако между ними существует одно различие - сетевой сервис по природе своей ненадежен. Задача транспортного сервиса как раз обеспечить надежную доставку сообщений. Два процесса, соединенные между собой, ничего не должны знать о том, как физически они соединены. Один помещает данные на вход транспортного уровня, другой получает их. Задача транспортного уровня скрыть и от получателя и от отправителя все детали передачи, исправления ошибок и т.п.
Теоретически транспортный сервис может быть как ориентированным на соединения, так и нет. Однако дейтаграммный транспортный сервис - это редкость, поэтому мы будем рассматривать транспортный сервис, ориентированный на соединения.