Міністерство освіти і науки України Харківський національний університет радіоелектроніки Факультет Комп’ютерної інженерії та управління (повна назва) Кафедра Електронних обчислювальних машин (повна назва) МАГІСТЕРСЬКА АТЕСТАЦІЙНА РОБОТА ПОЯСНЮВАЛЬНА ЗАПИСКА ГЮІК.50ХXXX.033 ПЗ (позначення документа) Динамічне балансування навантаження каналів зв’язку в корпоративних комп’ютерних мережах (тема проекту) Студент гр. КСМм-08-2 (шифр групи) Філіпенко Ю.О. (підпис) Керівник проекту (прізвище, ініціали) к.т.н. Завізиступ Ю.Ю. (підпис) (посада, прізвище, ініціали) Допускається до захисту Зав. кафедрою ЕОМ Руденко О.Г. (підпис) 2009 р. (прізвище, ініціали) 2 СОДЕРЖАНИЕ ВВЕДЕНИЕ............................................................................................................. 5 1 ОБЗОР СУЩЕСТВУЮЩИХ МЕТОДОВ ПОВЫШЕНИЯ ПРОПУСКНОЙ СПОСОБНОСТИ СЕТЕЙ И ПОСТАНОВКА ЗАДАЧИ 7 1.1 Требования, предъявляемые к современным сетям .............................. 7 1.2 Принцип маршрутизации ....................................................................... 13 1.3 Классификация протоколов маршрутизации ....................................... 19 1.4 Метрики и стоимость маршрутизации ................................................. 21 1.4.1 Длина маршрута ............................................................................... 22 1.4.2 Надежность ....................................................................................... 22 1.4.3 Задержка............................................................................................ 23 1.4.4 Ширина полосы пропускания ......................................................... 23 1.4.5 Нагрузка ............................................................................................ 24 1.4.6 Стоимость ......................................................................................... 24 1.5 Управление перераспределением потоков в сетях .............................. 25 1.6 Парадокс Браесса .................................................................................... 31 1.7 Выводы ..................................................................................................... 36 1.8 Постановка задачи .................................................................................. 37 2 АНАЛИЗ ФАКТОРОВ, ВЛИЯЮЩИХ НА ПРОПУСКНУЮ СПОСОБНОСТЬ КАНАЛОВ СВЯЗИ ............................................................ 39 2.1 Влияние протокола TCP ......................................................................... 39 2.2 Влияние IP-протокола ............................................................................ 40 2.3 Влияние различных видов трафика....................................................... 48 2.3.1 Широковещательный трафик сети ................................................. 48 2.3.2 Основной трафик сети ..................................................................... 49 2.4 Влияние коммуникационных устройств .............................................. 50 2.5 Выводы ..................................................................................................... 51 3 РАЗРАБОТКА МОДЕЛИ БАЛАНСИРОВКИ НАГРУЗКИ .................... 53 3.1 Проблема настройки метрик .................................................................. 53 3 3.2 Формализация проблемы балансировки нагрузки .............................. 54 3.3 Модель оптимальной маршрутизации .................................................. 57 3.4 Выводы ..................................................................................................... 63 4 ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ ............................................................. 64 4.1 Общая информация о пакете OpNet ...................................................... 64 4.2 Интерфейс программы OpNet ................................................................ 67 4.3 Проведение моделирования и его результаты ..................................... 71 4.4 Выводы ..................................................................................................... 74 ВЫВОДЫ .............................................................................................................. 75 ПЕРЕЧЕНЬ ССЫЛОК ....................................................................................... 76 ПРИЛОЖЕНИЕ А ............................................................................................... 78 4 ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ, СИМВОЛОВ, ЕДИНИЦ, СОКРАЩЕНИЙ И ТЕРМИНОВ ARP Address Resolution Protocol ARPANET Advanced Research Projects Agency Network ATM Asynchronous Transfer Mode AS Autonomous System BGP Border Gateway Protocol CLNP Connectionless Network Protocol EGP Exterior Gateway Protocols FDDI Fiber Distributed Data Interface FSM Finite-State Machine ICMP Internet Control Message Protocol IEEE Institute of Electrical and Electronics Engineers IEEE SA IEEE Standard Association ICI Interface Control Information IGP Interior Gateway Protocol IP Internet Protocol IP-адрес Internet Protocol Address IS-IS Intermediate System to Intermediate System Protocol МАС-адрес Media Access Control Address MPLS Multiprotocol Switching Label OSPF Open Shortest Pass First PSTN Public Switched Telephone Network RIP Routing Information Protocol QoS Quality of Service TCP Transmission Control Protocol TDM Time Division Multiplexing WFQ Weighted Fair Queuing СПД Сети передачи данных 5 ВВЕДЕНИЕ В настоящее время широкое развитие получают технологии и системы цифровой обработки информации. Услуги IP-телефонии и видеосвязи, удаленный доступ к информации в быту и деловой жизни, сбор данных, задачи удаленного управления и мониторинга в промышленности, охранные системы - все это становится неотъемлемой частью современной жизни. Составной частью таких систем являются каналы связи, причем проводные линии связи остаются основой построения вычислительных сетей и телекоммуникаций со времени изобретения телефона [1]. Усложнение информационных технологий выдвигает новые требования к производительности сетей. Сети продолжают развиваться в ответ на технологические новшества, расширяя свои функциональные возможности и повышая производительность. В идеале конструктивные характеристики и функциональные возможности сетей должны соответствовать требованиям к производительности и организации. Основная задача, для решения которой строится любая сеть - быстрая передача информации между компьютерами. Поэтому критерии, связанные с пропускной способностью сети или части сети, хорошо отражают качество выполнения сетью ее основной функции. Высокопроизводительная сеть, способная предоставлять материалы быстро и без сбоев, становится важнейшей предпосылкой успешной деятельности предприятий и повышения их конкурентоспособности. Существует несколько способов повышения быстродействия сети: можно увеличить полосу пропускания, установить высокопроизводительное сетевое оборудование, оптимизировать и модернизировать программные и аппаратные компоненты маршрутизатора, а также взять на вооружение технологию балансировки загрузки. 6 Балансировка загрузки — это инструментальное средство, предназначенное для переадресации трафика на наименее загруженный или наиболее подходящий маршрутизатор из группы доступных. Проблема балансировки загрузки может возникнуть по той причине, что структура межузлового взаимодействия неоднородна, т.к. линии связи, соединяющие маршрутизаторы, могут иметь различные характеристики пропускной способности. Программное обеспечение, реализующее динамическую балансировку, определяет: загрузку маршрутизаторов, пропускную способность линий связи, частоту обменов сообщениями между маршрутизаторами и др. Основные функции устройств балансировки нагрузки заключаются в обеспечении постоянной доступности ресурсов сети и минимизации времени ответа, также возможен мониторинг состояния маршрутизаторов, определение ошибок и перенаправление в случае необходимости запросов на работающие маршрутизаторы. Обычно практичное и полное решение задачи балансировки загрузки состоит из трех шагов: оценка загрузки маршрутизаторов, инициация балансировки загрузки, принятие решений о балансировке. Балансировка загрузки, как правило, включает в себя распределение трафика на несколько исходящих связей. В таких системах маршрутизатор получает входящие пакеты из каналов с высокой скоростью и направляет их на один из исходящих каналов с низкой скоростью. Хорошая балансировка загрузки должна иметь возможность разделить трафик на несколько исходящих связей равномерно или с какой-либо заранее определенной пропорцией [2]. 7 1 ОБЗОР СУЩЕСТВУЮЩИХ МЕТОДОВ ПОВЫШЕНИЯ ПРОПУСКНОЙ СПОСОБНОСТИ СЕТЕЙ И ПОСТАНОВКА ЗАДАЧИ 1.1 Требования, предъявляемые к современным сетям Соответствие стандартам — это только одно из многих требований, предъявляемых к современным сетям. Самое общее требование, которое можно высказать в отношении работы сети — это выполнение сетью того набора услуг, для оказания которых она предназначена. Все остальные требования — производительность, надежность, совместимость, управляемость, защищенность, расширяемость и масштабируемость — связаны с качеством выполнения этой основной задачи. И хотя все перечисленные выше требования весьма важны, часто понятие "качество обслуживания" (Quality of Service, QoS) компьютерной сети трактуется более узко: в него включаются только две самые важные характеристики сети — производительность и надежность. - Производительность. Потенциально высокая производительность — это одно из основных преимуществ распределенных систем, к которым относятся компьютерные сети. Это свойство обеспечивается принципиальной, но, к сожалению, не всегда практически реализуемой возможностью распределения работ между несколькими компьютерами сети. Основные характеристики производительности сети: время реакции, скорость передачи трафика, пропускная способность, задержка передачи и вариация задержки передачи. Знание сетевых составляющих времени реакции позволяет оценить производительность отдельных элементов сети, выявить узкие места и при необходимости выполнить модернизацию сети для повышения ее общей производительности. 8 - Пропускная способность — максимально возможная скорость обработки трафика, определенная стандартом технологии, на которой построена сеть. Пропускная способность отражает максимально возможный объем данных, передаваемый сетью или ее частью в единицу времени. Пропускная способность уже не является пользовательской характеристикой, так как она говорит о скорости выполнения внутренних операций сети — передачи пакетов данных между узлами сети через различные коммуникационные устройства. Зато она непосредственно характеризует качество выполнения основной функции сети — транспортировки сообщений — и поэтому чаще используется при анализе производительности сети, чем время реакции или скорость. В отличие от времени реакции или скорости передачи трафика пропускная способность не зависит от загруженности сети и имеет постоянное значение, определяемое используемыми в сети технологиями. - Надежность и безопасность. Для сравнительно простых технических устройств используются такие показатели надежности, как: среднее время наработки на отказ, вероятность отказа, интенсивность отказов. Однако эти показатели пригодны для оценки надежности простых элементов и устройств, которые могут находиться только в двух состояниях — работоспособном или неработоспособном. Сложные системы, состоящие из многих элементов, кроме состояний работоспособности и неработоспособности, могут иметь и другие промежуточные состояния, которые эти характеристики не учитывают. Для оценки надежности сложных систем применяется другой набор характеристик: готовность или коэффициент готовности, сохранность данных, согласованность или непротиворечивость данных, вероятность доставки данных, безопасность, отказоустойчивость. Так как сеть работает на основе механизма передачи пакетов между конечными узлами, одной из характеристик надежности является 9 вероятность доставки пакета узлу назначения без искажений. Наряду с этой характеристикой могут использоваться и другие показатели: вероятность потери пакета по любой из причин — из-за переполнения буфера маршрутизатора, несовпадения контрольной суммы, отсутствия работоспособного пути к узлу назначения и т. д., вероятность искажения отдельного бита передаваемых данных, соотношение количества потерянных и доставленных пакетов. Другим аспектом общей надежности является безопасность, то есть способность системы защитить данные от несанкционированного доступа. В сетях сообщения передаются по линиям связи, часто проходящим через общедоступные помещения, в которых могут быть установлены средства прослушивания линий. Еще одной характеристикой надежности является отказоустойчивость. В сетях под отказоустойчивостью понимается способность системы скрыть от пользователя отказ отдельных ее элементов. - Расширяемость и масштабируемость. Расширяемость означает возможность сравнительно легкого добавления отдельных элементов сети - пользователей, компьютеров, приложений, служб, наращивания длины сегментов сети и замены существующей аппаратуры более мощной. При этом принципиально важно, что легкость расширения системы иногда может обеспечиваться в весьма ограниченных пределах. Масштабируемость означает, что сеть позволяет наращивать количество узлов и протяженность связей в очень широких пределах, при этом производительность масштабируемости сети сети не приходится ухудшается. применять Для обеспечения дополнительное коммуникационное оборудование и специальным образом структурировать сеть. 10 - Прозрачность. Прозрачность сети достигается в том случае, когда сеть представляется пользователям не как множество отдельных компьютеров, связанных между собой сложной системой кабелей, а как единая традиционная вычислительная машина с системой разделения времени. Прозрачность — свойство сети скрывать от пользователя детали своего внутреннего устройства, что упрощает работу в сети. Сеть должна скрывать все особенности операционных систем и различия в типах компьютеров. - Поддержка разных видов трафика. Компьютерные сети изначально предназначались для совместного доступа к ресурсам компьютеров: файлам, принтерам и т. п. Трафик, создаваемый этими традиционными службами компьютерных сетей, имеет свои особенности и существенно отличается от трафика сообщений в телефонных сетях или, например, в сетях кабельного телевидения. Однако в 90-е годы в компьютерные сети проник трафик мультимедийных данных, представляющих в Компьютерные сети цифровой стали форме речь использоваться и видеоизображение. для организации видеоконференций, обучения на основе видеофильмов и т. п. Естественно, что для динамической передачи мультимедийного трафика требуются иные алгоритмы и протоколы, и, соответственно, другое оборудование. Главной особенностью трафика, образующегося при динамической передаче голоса или изображения, является наличие жестких требований к синхронности передаваемых сообщений. Для качественного воспроизведения непрерывных процессов, которыми являются звуковые колебания или изменения интенсивности света в видеоизображении, необходимо получение измеренных и закодированных амплитуд сигналов с той же частотой, с которой они были измерены на передающей стороне. При запаздывании сообщений будут наблюдаться искажения. 11 В то же время трафик компьютерных данных характеризуется крайне неравномерной интенсивностью поступления сообщений в сеть при отсутствии жестких требований к синхронности доставки этих сообщений. Например, доступ пользователя, работающего с текстом на удаленном диске, порождает случайный поток сообщений между удаленным и локальным компьютерами, зависящий от действий пользователя. Причем задержки при доставке в некоторых, достаточно широких с компьютерной точки зрения, пределах мало влияют на качество обслуживания пользователя сети. Все алгоритмы компьютерной связи, соответствующие протоколы и коммуникационное оборудование были рассчитаны именно на такой "пульсирующий" характер трафика, поэтому необходимость передавать мультимедийный трафик требует внесения принципиальных изменений, как в протоколы, так и в оборудование. Сегодня практически все новые протоколы в той или иной степени предоставляют поддержку мультимедийного трафика. Особую сложность представляет совмещение в одной сети традиционного компьютерного и мультимедийного трафика. Передача исключительно мультимедийного трафика компьютерной сетью хотя и связана с определенными сложностями, но доставляет меньше хлопот. А вот сосуществование двух типов трафика с противоположными требованиями к качеству обслуживания является намного более сложной задачей. - Управляемость. В идеале средства управления сетями представляют собой систему, осуществляющую наблюдение, контроль и управление каждым элементом сети — от простейших до самых сложных устройств, при этом такая система рассматривает сеть как единое целое, а не как разрозненный набор отдельных устройств. Управляемость сети подразумевает возможность централизованно контролировать состояние основных элементов сети, выявлять и решать 12 проблемы, возникающие при работе сети, выполнять анализ производительности и планировать развитие сети. Необходимость в системе управления особенно ярко проявляется в больших сетях: корпоративных или глобальных. Без системы управления в таких сетях требуется присутствие квалифицированных специалистов по эксплуатации в каждом здании каждого города, где установлено оборудование сети, что в итоге приводит к необходимости содержания огромного штата обслуживающего персонала. - Совместимость. Совместимость или интегрируемость означает, что сеть может включать в себя разнообразное программное и аппаратное обеспечение, то есть в ней могут сосуществовать различные операционные системы, поддерживающие разные стеки коммуникационных протоколов, и работать аппаратные средства и приложения от разных производителей. Сеть, состоящая из разнотипных элементов, называется неоднородной или гетерогенной, а если гетерогенная сеть работает без проблем, то она является интегрированной. Основной путь построения интегрированных сетей — использование модулей, выполненных в соответствии с открытыми стандартами и спецификациями. - Качество обслуживания. Качество обслуживания определяет количественные оценки вероятности того, что сеть будет передавать определенный поток данных между двумя узлами в соответствии с потребностями приложения или пользователя. Например, при передаче голосового трафика через сеть под качеством обслуживания чаще всего понимают гарантии того, что голосовые пакеты будут доставляться сетью с задержкой не более N мс, при этом вариация задержки не превысит M мс, и эти характеристики станут выдерживаться сетью с вероятностью 0,95 на определенном временном интервале. То есть приложению, которое передает голосовой трафик, важно, чтобы сеть 13 гарантировала соблюдение именно этого приведенного выше набора характеристик качества обслуживания. Файловому сервису нужны гарантии средней полосы пропускания и расширения ее на небольших интервалах времени до некоторого максимального уровня для быстрой передачи пульсаций. По понятным причинам разрабатываемые и уже существующие механизмы QoS ограничиваются решением более простой задачи — гарантированием неких усредненных требований, заданных для основных типов приложений. Чаще всего параметры, фигурирующие в разнообразных определениях качества обслуживания, регламентируют следующие показатели работы сети: - пропускная способность; - задержки передачи пакетов; - уровень потерь и искажений пакетов. Механизмы поддержки качества обслуживания сами по себе не создают пропускной способности. Сеть не может дать больше того, что имеет. Так что фактическая пропускная способность каналов связи и транзитного коммуникационного оборудования — это ресурсы сети, являющиеся отправной точкой для работы механизмов QoS. Механизмы QoS только управляют распределением имеющейся пропускной способности в соответствии с требованиями приложений и настройками сети. Самый очевидный способ перераспределения пропускной способности сети состоит в управлении очередями пакетов [3]. 1.2 Принцип маршрутизации Маршрутизацией называется действие по перенаправлению пакета из одной логической сети или подсети в другую. А маршрутизатор — это устройство, выполняющее такое действие. 14 Основные средства маршрутизации функционируют следующим образом. Хост применяет операцию "И" к IP-адресу отправителя, чаще всего таковым является его собственный IP-адрес, и маске сети, соответствующей этому адресу, а также к IP-адресу получателя и той же маске сети. Если полученные при этом результаты совпадают, это означает, что оба IP-адреса находятся в одной и той же сети, поэтому для определения МАС-адреса устройства получателя можно применить широковещательную рассылку запроса ARP. А если полученные результаты не совпадают, это означает, что получатель находится в другой сети, и для передачи пакета на хост получателя необходимо обратиться к маршрутизатору. Придя к заключению, что требуется маршрутизатор, хост отправителя проверяет наличие в своей конфигурации IP -адреса шлюза, применяемого по умолчанию. Затем он определяет МАС-адрес шлюза, применяемого по умолчанию (маршрутизатора), с помощью широковещательной рассылки запроса ARP. Получив МАС-адрес маршрутизатора, хост формирует пакет, используя IP адрес конечного хоста получателя, но в качестве МАС-адреса указывает МАС-адрес маршрутизатора. После получения пакета маршрутизатор проверяет пакет и обнаруживает, что пакет предназначен ему, после чего проверяет в пакете IP -адрес получателя. Затем маршрутизатор просматривает таблицу, называемую таблицей маршрутизации, в которой перечислены все удаленные сети, известные ему в настоящее время, и пытается найти в этой таблице маршрут к сети получателя. Если маршрут к удаленной сети найден, маршрутизатор вводит МАС-адрес устройства, находящегося в конце следующего транзитного перехода, либо следующего маршрутизатора, через который проходит данный маршрут, либо самого удаленного хоста, в пакет и перенаправляет его. А если не удается найти маршрут к удаленной сети, даже самый неудобный, такой как стандартный маршрут, маршрутизатор возвращает отправителю сообщение ICMP о том, что получатель недостижим. 15 К этим действиям и сводится вся маршрутизация. К сожалению, на самом деле все происходит гораздо сложнее, поскольку в маршрутизации очень важную роль играют нюансы ее организации. На первый взгляд, кажется, что маршрутизатор выполняет очень простые задачи. Но в действительности он должен иметь информацию обо всех сетях, к которым он непосредственно подключен, чтобы иметь возможность перенаправить в них пакеты, передаваемые хостами. Кроме того, маршрутизатор должен правильно перенаправлять в эти сети пакеты, поступающие от хостов. Наконец, он должен ограничивать или устранять широковещательную рассылку. Именно последняя функция и определяет необходимость применения первой и второй из перечисленных выше функций. Рассмотрим, как эти действия выполняются на практике. Чтобы передать информацию на любой хост, необходимо знать МАС-адрес или другой адрес уровня 2 этого хоста. Такая проблема в плоской сети (плоской обычно принято называть сеть, не сегментированную с помощью маршрутизатора) решается с помощью протокола ARP. Но плоские сети имеют серьезные недостатки, связанные с масштабируемостью, поскольку после передачи широковещательного сообщения его получают и обрабатывают все хосты. По этой причине для сегментации плоских сетей с разбиением на иерархические сети, состоящие из множества широковещательных доменов, применяются маршрутизаторы. Широковещательным доменом называется участок сети, которым ограничивается широковещательная рассылка. Маршрутизаторы сегментируют сети на широковещательные домены, что позволяет исключить перегрузку всех устройств в сети, связанную с обработкой широковещательных пакетов. Поэтому логическая операция "И" применяется для того, чтобы хост мог определить, достаточно ли ему просто выполнить широковещательную рассылку, чтобы достичь другого хоста, или вместо этого он должен 16 отправить пакет маршрутизатору. Но следует помнить, что для доставки пакета все равно необходим МАС-адрес. А если хост не может выполнять широковещательную рассылку для получения MAC-адреса удаленного хоста, то он не выполняет такую операцию, а использует для передачи пакета МАСадрес маршрутизатора. Если хост определяет, что получатель передаваемого им сообщения находится в другой сети, он просто передает соответствующий пакет маршрутизатору, имеющему больше возможностей по достижению удаленной сети. Как правило, таким маршрутизатором является шлюз данного хоста, применяемый по умолчанию, либо один из маршрутизаторов, перечисленных в таблице маршрутизации хоста. Применяемым по умолчанию шлюзом является устройство, работающее по протоколу IP , на которое хост передает пакет, если не имеет информации о том, кому еще можно передать этот пакет. При передаче пакета на применяемый по умолчанию шлюз хост в качестве МАС-адреса получателя использует адрес этого шлюза, а не МАС-адрес удаленного хоста, но в пакете все равно указывает IP-адрес удаленного хоста. Затем маршрутизатор определяет, в каком направлении необходимо передать этот пакет, и вставляет в него новый МАС-адрес следующего транзитного перехода, если в этом есть необходимость. Такой процесс показан на рисунке 1.1. В этом примере хост А пытается отправить пакет хосту В. На пути между этими двумя хостами находятся два маршрутизатора (1 и 2). Хост А определяет, что В является удаленным хостом, поэтому вставляет в пакет МАС-адрес маршрутизатора 1 и передает этот пакет. После получения пакета маршрутизатор 1 определяет, что для достижения хоста В этот пакет должен пройти через маршрутизатор 2. Поэтому он вставляет в пакет МАС-адрес маршрутизатора 2 и передает этот пакет. Маршрутизатор 2 имеет информацию о том, что к хосту В можно обратиться непосредственно через его интерфейс, но еще не знает МАС-адрес хоста В, поэтому выполняет рассылку запросов ARP для его получения. 17 Рисунок 1.1 - Пример маршрутизации пакета После получения МАС-адреса хоста В маршрутизатор 2 вставляет его в пакет и передает этот пакет непосредственно хосту В. При возникновении необходимости отправить ответ с хоста В на хост А описанный выше процесс выполняется в обратном порядке. Теперь рассмотрим еще один пример. На рисунке 2.2 показано, как два хоста (X и Y) пытаются вступить во взаимодействие. Хост X имеет IP-адрес 172.16.1.1 с маской подсети 255.255.0.0. А хост Y имеет IP -адрес 172.16.5.202 с маской подсети 255.255.255.0. 18 Рисунок 1.2 - Пример безуспешной попытки взаимодействия После выполнения операции "И" создается впечатление, что хост X должен попытаться передать пакет на маршрутизатор, поскольку его адрес сети равен 172.168.0.0, а адрес сети хоста Y равен 172.16.5.0. Но фактически справедливо обратное утверждение. Хост X не имеет возможности определить, что хост Y использует иную маску подсети, чем он. Поэтому после выполнения хостом X операции "И" с применением одинаковых масок подсети полученные результаты совпадают, и он предпринимает попытку непосредственно передать пакет. И операция передачи пакета хостом X фактически будет выполнена успешно, поскольку оба хоста действительно находятся в одной и той же логической сети. Но при попытке хоста Y ответить на запрос будет получен отрицательный результат, поскольку этот хост сам выполняет операцию "И". Полученные им результаты покажут, что оба хоста находятся в разных сетях. Поэтому хост Y попытается передать пакет маршрутизатору, но этот пакет так и не будет доставлен. Если хосты находятся в одной и той же логической сети, в них должны совпадать не только части IP-адресов с обозначением сети, но и маски 19 подсети. Если эти компоненты адреса не совпадают, операция "И" выполняется неправильно и связь нарушается [4]. 1.3 Классификация протоколов маршрутизации Признаки классификации алгоритмов и протоколов маршрутизации в большинстве случаев совпадают друг с другом. Наиболее важными признаками являются: - степень динамичности, отражающая наличие или отсутствие гибкости и сходимости; - количество одновременно поддерживаемых маршрутов к одному пункту назначения; - способ организации маршрутов; - область влияния; - способ получения маршрутной информации. Маршрутизация включает в себя два различных процесса - вычисление маршрутов и отправление пакета. Технологии маршрутизации должны обеспечить решение следующих задач на уровне IP в соответствии с определенными протоколами маршрутизации: - мониторинг состояния сети и изменения связей; - вычисление маршрутов доставки пакетов через сеть; - отправление пакетов от исходного узла к адресату. Все протоколы маршрутизации могут быть классифицированы в соответствии с их региональным положением и методами, по которым происходит маршрутизация: - протоколы внутренней маршрутизации (также называемые interior gateway protocols IGP), используемые в пределах отдельных AS; - протоколы внешней маршрутизации (exterior routing protocols EGP), обеспечивающие взаимодействие между отдельными AS. 20 Маршрутизаторы, которые расположены на границе между двумя автономными системами, должны поддерживать оба типа протоколов. С одной стороны, они должны представлять их собственную автономную систему для ее достижимости из других AS. С другой стороны, они должны информировать маршрутизаторы своей AS об адресах и префиксах внешних сетей. В таблице 1.1 представлены наиболее распространенные в настоящее время протоколы маршрутизации IP сетей. Таблица 1.1 – Классификация протоколов маршрутизации Внутренние Дистанционно- Состояния Гибридные векторные канала RIP OSPF IGRP IS-IS EIGRP Внешние EGP BGP Внутренний протокол маршрутизации IGP (Interior Gateway Protocol) определяет маршруты внутри автономной системы. Наиболее популярный IGP - RIP (Routing Information Protocol, RFC-1058), разработан Фордом, Фулкерсоном и Белманом (фирма XEROX). Существует более новый протокол OSPF (Open Shortest Pass First, RFC-1131, -1245, -1247, -1253). Наиболее старые системы (IGP) используют протокол HELLO. Протокол HELLO поддерживался фирмой DEC, в качестве метрики он использует время, а не число шагов до цели. Для взаимодействия маршрутизаторов используются внешние протоколы (EGP - Exterior Gateway Protocols). Одной из разновидностей EGP является протокол BGP (Border Gateway Protocol, RFC-1268 [BGP-3], RFC-1467 [BGP-4]). Протокол IGRP (Interior Gateway Routing Protocol) разработан компанией CISCO для больших сетей со сложной топологией и сегментами, которые обладают различной полосой пропускания и задержкой. Это 21 внутренний протокол маршрутизации имеет некоторые черты сходства с OSPF. IGRP использует несколько типов метрики, по одной на каждый вид QOS. Метрика характеризуется 32-разрядным числом. В однородных средах этот вид метрики вырождается в число шагов до цели. Маршрут с минимальным значением метрики является предпочтительным. Актуализация маршрутной информации для этого протокола производится каждые 90 секунд. Если какой-либо маршрут не подтверждает своей работоспособности в течение 270 сек, он считается недоступным. После семи циклов (630 сек) актуализации такой маршрут удаляется из маршрутных таблиц. IGRP аналогично OSPF производит расчет метрики для каждого вида сервиса (TOS) отдельно [5]. Протокол IDPR (InterDomain Policy Routing Protocol, RFC-1477, -1479) представляет собой разновидность BGP-протокола. Протокол IS-IS (Intermediate System to Intermediate System Protocol, RFC-1195, -1142) является еще одним внутренним протоколом, который используется для маршрутизации CLNP (Connectionless Network Protocol, RFC-1575, -1561, 1526). IS-IS имеет много общего с OSPF. 1.4 Метрики и стоимость маршрутизации Метрики — это переменные параметры, показатели сети, на основании которых принимается решение о выборе маршрута. Для некоторых протоколов маршрутизации эти метрики являются статическими величинами и не могут изменяться. При использовании других протоколов маршрутизации эти значения могут задаваться административно. В алгоритмах маршрутизации используется много различных показателей. Сложные алгоритмы маршрутизации при выборе маршрута могут базироваться на множестве показателей, комбинируя их таким образом, что в результате получается один отдельный (гибридный) 22 показатель. В большинстве случаев к метрикам относятся следующие показатели: - длина маршрута; - надежность; - задержка; - ширина полосы пропускания; - нагрузка; - стоимость связи. 1.4.1 Длина маршрута Длина маршрута маршрутизации. является Некоторые наиболее протоколы общим маршрутизации показателем позволяют администраторам сети назначать произвольные цены на каждый канал сети. В этом случае длиной тракта является сумма расходов, связанных с каждым каналом, который был траверсирован. Другие протоколы маршрутизации определяют "количество пересылок", т.е. числа сетей, через которые проходит датаграмма до пункта назначения. Каждый раз, когда маршрутизатор направляет датаграмму в очередной сегмент, считается одной пересылкой. Протоколы маршрутизации, которые отслеживают число пересылок как первостепенный показатель (метрика длины маршрута), решают, что наилучший или предпочтительный маршрут в пункт назначения, если в него существует множество маршрутов — это маршрут, содержащий наименьшее число пересылок, или, другими словами, наименьшее число промежуточных сетей. 1.4.2 Надежность Надежность, в контексте алгоритмов маршрутизации, относится к надежности каждого канала сети, обычно описываемой в терминах соотношения бит/ошибка. Некоторые каналы сети могут отказывать чаще, 23 чем другие. Отказы одних каналов сети могут быть устранены легче или быстрее, чем отказы других каналов. При назначении оценок надежности могут быть приняты в расчет любые факторы надежности. Этот показатель может быть сконфигурирован как фиксированное значение администратором сети, однако, как правило, он определяется динамически в пределах заданного отрезка времени, например 5 с. Маршрутизаторы отслеживают присоединенные каналы и сообщают о возникающих проблемах, таких как неисправность линий связи, ошибки интерфейсов, потери датаграмм и т.д. Каналы с наибольшим числом проблем рассматриваются как менее надежные по сравнению с другими и поэтому маршруты по ним считаются нежелательными. Чем выше надежность, тем лучше маршрут. Поскольку условия сети постоянно изменяются, надежность каналов также не является постоянным показателем. Значения надежности обычно измеряются в пределах от 1 до 255, где 255 — показатель наивысшей надежности и 1 — показатель самой низкой надежности. 1.4.3 Задержка Под задержкой маршрутизации обычно понимают отрезок времени, необходимый для передвижения пакета от источника до пункта назначения через объединенную сеть. Время задержки измеряется в десятках микросекунд (мкс). Задержка зависит от многих факторов, включая полосу пропускания промежуточных каналов сети, очереди в порт каждого роутера на пути передвижения пакета, перегруженность сети на всех промежуточных каналах сети и физическое расстояние, на которое необходимо переместить пакет. Т.к. здесь имеет место конгломерация нескольких важных переменных, задержка является наиболее общим и полезным показателем. 1.4.4 Ширина полосы пропускания Полоса пропускания относится к имеющейся мощности трафика какого-либо канала. Протоколы, использующие эту метрику, принимают 24 решение на основании пропускной способности линии связи. Пропускная способность измеряется в битах, переданных в секунду. Каналы, которые поддерживают более высокую скорость передачи данных порядка гигабитов в секунду, являются более предпочтительными по сравнению с более медленными каналами. Хотя полоса пропускания является оценкой максимально достижимой пропускной способности канала, маршруты, проходящие через каналы с большей полосой пропускания, не обязательно будут лучше маршрутов, проходящих через менее быстродействующие каналы. 1.4.5 Нагрузка Нагрузка сети является переменным значением и обычно измеряется с помощью 5-секундного окна, инициирующего нагрузку по потоку сообщений специфического канала связи. Нагрузка измеряется объемом трафика в данном канале за этот промежуток времени в процентах от общего объема трафика канала. Значение 255 эквивалентно 100%-ному использованию полосы пропускания, т.е. 100%-ной нагрузке. Чем выше значение, тем больше нагрузка по потоку сообщений, т.е. тем больше используется увеличения полоса трафика пропускания показатель определенного нагрузки канала. увеличивается. По мере Значения, приближающиеся к 255, свидетельствуют о перегрузке, более низкие значения показывают умеренный трафик. Чем ниже значение показателя нагрузки, тем меньше перегрузка маршрута и тем он предпочтительнее [6]. 1.4.6 Стоимость Администраторы сети могут влиять на принятие решений маршрутизаторами о наилучших маршрутах путем установки произвольных значений метрик каналов на протяжении всего пути датаграмм. Эти 25 произвольные значения обычно представляют собой целые числа с низкими значениями метрик, означающими лучшие маршруты. 1.5 Управление перераспределением потоков в сетях Сети передачи данных (СПД), использующие протокол Internet Protocol (IP), широко распространены по всему миру. В последнее время в сетях передачи данных, использующих протокол IP, внедряются услуги, характерные для традиционных сетей с коммутацией каналов, такие как телефония и новые услуги, такие как видеотелефония, телевидение по запросу, виртуальные частные сети. При этом пользователи требуют от сетей передачи данных на основе протокола IP, такого же качества предоставляемых услуг и надежности сети, к которому они привыкли в традиционных сетях TDM (Time–Division Multiplexing, Мультиплексирование с разделением времени) и PSTN (Public Switched Telephone Network, Публичная коммутируемая телефонная сеть). При этом остро стоит вопрос об эффективности использовании ресурсов СПД, надежности и быстрого восстановления работы сети после сбоя. Не смотря на резкое увеличение скоростей на магистральных каналах связи, пропускная способность локальных сетей растет еще быстрее. В октябре 2006 года подразделением IEEE SA (IEEE Standard Association) организации IEEE(Institute of Electrical and Electronics Engineers) принят стандарт Ethernet с пропускной способностью 10 Гигабит/сек (10GBase-T) по медной паре на расстоянии 100 и более метров. Раньше для таких величин пропускной способности использовали дорогое оптоволокно. Внедрение медной пары вместо оптоволокна резко удешевит внедрение и сопровождение локальных сетей с такими скоростями передачи данных, что сделает внедрение локальных сетей с такой пропускной способностью массовой, и повлечет за собой широкое внедрение широкополосных сервисов и резкое возрастание объемов данных передаваемых через глобальные сети между локальными 26 сетями. Причина неэффективного использования ресурсов глобальных или магистральных сетей передачи данных заключается в существующих алгоритмах протоколов маршрутизации. Из-за недостатков традиционных протоколов маршрутизации потоки данных направляются только по маршруту с минимальной метрикой, игнорируя другие маршруты. Разумеется, если маршруты для передачи данных будут выбираться с учетом доступных ресурсов сети, это положительно скажется на качестве обслуживания и позволит при неизменных ресурсах сети повысить качество обслуживания или увеличить количество услуг, для которых необходимо гарантированное качество сервиса. Один из способов решения вышеприведенных проблем заключается во внедрении в СПД, использующих протокол IP, методов перераспределения потоков данных, которые давно используются в таких сетях как ATM. Задача методов перераспределения заключается в достижении наиболее эффективного использования ресурсов СПД при обеспечении требуемого качества предоставляемых сервисов, быстрого восстановления после сбоев. Как правило, работа методов перераспределения требует использования протоколов маршрутизации с учетом ограничений (Constraint-Based Routing Protocol), иначе называемых протоколы маршрутизации с учетом уровня качества (QoS-Based Routing Protocol). В глобальных СПД базовые средства перераспределения потоков данных в настоящее время реализованы в рамках технологии MPLS–TE (Multiprotocol Switching Label Traffic Engineering). При использовании технологии MPLS–TE маршрутизаторы сами могут самостоятельно рассчитывать пути, но без учета всей информации о состоянии СПД, особенно о загруженности предпочтительным является каналов связи. использование В внешней этих условиях управляющей программы, обеспечивающей сбор статистики об интенсивности входных потоков и принятие на основе этой информации необходимых управляющих 27 решений по перераспределению потоков данных с учетом пропускных способностей каналов связи. Основная классификация основана на том, чувствительны ли выбираемые маршруты к изменению входных параметров трафика и параметров линий. В статических алгоритмах выбор пути основан на старой информации о состоянии сети, а в динамических алгоритмах этот выбор основан на текущей информации. Статические алгоритмы, как правило, базируются на моделях потокового типа, (которые в свою очередь, в основном используют математический аппарат нелинейного программирования и градиентные методы поиска оптимальных решений), а динамические – на методах кратчайшего пути. Основное отличие между этими подходами состоит в том, что первый позволяет вычислять маршруты сразу для нескольких соединений одновременно, а второй – только для одного соединения. Исходя из этого, алгоритмы потокового типа потенциально являются более точными по сравнению с алгоритмами кратчайшего пути. Однако, меняя стоимости линий в процессе использования алгоритма кратчайшего пути исходя из состояния сети, в первую очередь – загруженности линий, можно существенно улучшить качество работы алгоритма. Более того, доказано, что в предельном случае эти два типа алгоритмов характеризуются одинаковой эффективностью. В практическом плане основной вопрос в реализации алгоритмов маршрутизации заключается в том, будут ли маршруты вычисляться по требованию (On-Demand) или же они будут заранее вычисляемые (PreComputed). При использовании подхода “по требованию” вычисление маршрута производится в момент запроса на установление соединения, что приводит к неизбежной задержке установки соединения на время вычисления маршрута. Напротив, при использовании подхода “заранее вычисляемые маршруты”, время установки соединения будет меньше, но погрешность при этом в исходных данных может привести к некорректному определению маршрута. Отметим, что стратегия “заранее вычисляемые” 28 принадлежит к классу квазистатических алгоритмов, так как маршрут для текущей заявки учитывает только старую информацию. В свою очередь, алгоритмы “по требованию” в ряде случаев также вынуждены использовать частично устаревшую информацию о состоянии сети. Алгоритмы “заранее вычисляемые” могут быть разделены на реализующие непосредственно выбор маршрута в источнике (Source Routing), выбирающие маршрут до начала установки соединения, и поэтапную маршрутизацию (Hop-by-Hop), выбирающие маршрут непосредственно в процессе установки. При поступлении пакета на маршрутизатор, производится поиск в таблице маршрутизации на основе адреса назначения, и пакет отправляется в канал связи. Для каждого адреса назначения протокол маршрутизации выбирает единственный маршрут, не учитывая текущую ситуацию с использованием ресурсов сети передачи данных. Все пакеты направляются маршрутизатором по кратчайшему пути, т.е. по маршруту с минимальной метрикой, даже при наличии других маршрутов с метрикой большей, чем метрика наилучшего маршрута. В итоге, каналы, которые не являются частью кратчайших маршрутов, оказываются недогруженными при работающих с большой нагрузкой каналов, входящих в кратчайшие маршруты. Складывается парадоксальная ситуация, когда при наличии не используемых ресурсов сети, сеть требует модернизации, так как не справляется нагрузкой. Встроенные возможности протоколов маршрутизации по распределению потоков данных очень скудны и не эффективны. Рассмотрим задачу равномерной загрузки каналов связи. Пусть исходная СПД состоит из n узлов коммутации и m линий связи таким образом, что топология сети описывается ориентированным мультиграфом PS=(V,E) без петель, где V – множество узлов коммутации, а E – множество линий связи (|V|=n, |E|=m). Граф PS согласно назовем первичной сетью. Также зададим ориентированный граф WS=(V,R), |R|=p, где множество дуг R 29 определяется потоками данных, поступающими в сеть и выходящими из нее. Потоки данных состоят из пакетов, имеющих одинаковый приоритет и образующих пуассоновский поток со средним значением γi (пакетов/сек) для дуги ri. Граф WS назовем вторичной сетью. Кроме того будем предполагать: - все линии связи абсолютно надежны и помехоустойчивы; - узлы коммутации имеют бесконечную память; - длины всех пакетов независимы и распределены по показательному закону со средним значением 1/μ (байт); - каждая линия связи ei состоит из единственного дуплексного канала с пропускной способностью, равной di (байт/сек). Для случая фиксированной или однопутевой маршрутизации определим множество xij ( i 1, m , j 1, p ) двоичных переменных (xij є {0,1}), значения которых определяются следующим образом: xij =1, если поток γi проходит по линии связи ei и xij =0 – в противном случае. Предположим так же, что для переменных xij выполняются известные условия сохранения потока в сети. Сформулируем промежуточную задачу фиксированной маршрутизации следующим образом: необходимо распределить входные потоки данных по сети существующих каналов связи таким образом, чтобы обеспечить выполнение следующих требований по допустимой верхней величине загрузки каналов связи: f i d i , (1.1) p где для всех i 1, m, d i d i , f i j xij . j 1 Так как служебные данные будут передаваться по каналу связи вне туннельных маршрутов, верхняя граница доступной для туннельных 30 маршрутов пропускной способности по i-му каналу связи задается переменной d i . Переменная определяет полную пропускную способность канала связи. di. Формальным результатом решения поставленной задачи фиксированной маршрутизации является множество переменных xij. Зная эти переменные, можно легко определить величины потоков fi в линиях связи первичной сети. Пусть xijk (соответственно f ik ) – множество решений промежуточной задачи, где k означает номер решения. Среди всех решений выберем такое, которое обеспечивает минимальное значение величины f неравномерности загрузки каналов связи: f max f ik min f ik min i i k (1.2) Если задача (1.2) имеет несколько решений, то среди них выбираем решение, для которого величина max fi минимальна. Другой вариант выбора лучшего решения из множества решений промежуточной задачи основан на вычислении среднеквадратичного отклонения: 1 D ( fi f )2 , ni (1.3) 1 где n – количество каналов связи, f f – средняя загрузка каналов ni i СПД) и выборе решения промежуточной задачи, для которого D минимально. Аналогично (1.2) в случае нескольких решений, выбираем то решение, для которого величина D минимальна. 31 Сформулированную задачу далее будем называть задачей о равномерной загрузке каналов связи магистральной СПД. Итак, для фиксированной маршрутизации имеем xij є {0,1}, что позволяет решать сформулированную задачу как переборную на языке теории графов. Пусть H – отображение, которое ставит в соответствие каждой дуге ri є R вторичной сети WS=(V,R) множество Di простых путей первичной сети PS=(V,E) таким образом, что начальные и конечные вершины дуги ri и простых путей из Di совпадают. Такие простые пути в графе PS согласно терминологии MPLS–TE будем далее называть туннельными маршрутами. Очевидно, отображение H обеспечивает выполнение условий сохранения потока в сети для переменных xij. Если отображение H построено, то решение задачи равномерной загрузки каналов связи СПД может быть получено методом направленного перебора вариантов маршрутизации потоков данных. Задача в такой постановке рассматривается и решается как дискретная задача удовлетворения ограничений (Constraint Satisfaction Problem – CSP), которая на формальном уровне CSP представляется виде тройки (Y, D, C), где: Y= {y1, y2 ,…, yp} – конечное множество переменных; D = {D1, D2, …,Dp} – множество доменов. Каждый домен Di - это конечное множество, содержащее возможные значения i-той переменной; C = {C1, C2, …, Cm} – конечное множество ограничений [7]. 1.6 Парадокс Браесса Занимаясь подстройкой метрик, следует учесть парадокс Браесса. Честь открытия данного парадокса принадлежит немецкому математику Дитриху Браессу. Суть его сводится к тому, что добавление дополнительных возможностей к сети (компьютерной, транспортной и т. п.) при независимом или «эгоистическом» распределении нагрузки на ее 32 элементы может в некоторых случаях уменьшать эффективность ее работы, поскольку равновесие такой измененной сети необязательно оптимальное. Рассмотрим две точки Start и End на рисунке 1.3, между которыми есть два пути, проходящие через точки А и В. Пропускная способность трассы Start-А равна 100 машин\мин и равна пропускной способности трассы В-End. Время, затрачиваемое машинами на прохождение этих трасс, равно n\p, где n — количество машин, проходящих по трассе, а p — пропускная способность трассы. Пропускная способность трасс А-End и Start-В не зависит от количества машин (очень мощные трассы), и среднее время прохождения машин по ним равно 45 мин. Рисунок 1.3 – Начальная трасса Предположим, что 4000 машин стремятся попасть из точки Start в точку End. Каждая из них выбирает для себя наиболее оптимальный путь. В силу симметричности ситуации половина машин (2000) выберет путь Start-АEnd, а другая половина — путь Start-В-End. Время, затрачиваемое ими на прохождение того и другого пути, равно 65 мин (2000\100 + 45 или 45 + 2000\100). А теперь представим, что государство решило сократить это время и открыло между точками А и В дополнительную мощную одностороннюю трассу, время прохождения которой составляет всего 5 мин на рисунке 1.4. Поскольку старые трассы никто не закрывает, то у водителей, теоретически, появляется дополнительный выбор. Но вот парадокс: в этой ситуации все водители выбирают путь Start-А-В-End, поскольку в своей начальной части (Start-А) он составляет всего 40 мин даже в самом худшем варианте (когда 33 все 4000 машин устремляются по нему), тогда как путь Start-В — 45 мин. Дальше выбора опять практически нет, поскольку на путь А-В затрачивается 5 мин, а на путь В-End — опять же в самом худшем варианте — 40 мин. Разумеется, все надеются на лучший вариант, поскольку на путь А-End также затрачивается 45 мин, и есть надежда, что какие-то машины выберут его, когда хотя бы одна машина выбирает продолжение А-End. В результате все выбирают путь А-В-End, и общее время прохождения пути Start-А-В-End составляет 85 мин (4000\100 + 5 + 4000\100). То есть общее время прохождения пути между точками А и В увеличивается на 20 мин, хотя, казалось бы, новая трасса была открыта именно для уменьшения этого времени. Рисунок 1.4 – Усовершенствование трассы Но самое парадоксальное в данной ситуации заключается в том, что сократить это время можно только одним способом — закрыв вновь открытую трассу А-В и вернувшись к старой структуре транспортной сети. К примеру, если разделить машины на два потока и направить половину из них по пути Start-А-В-End, а другую половину — по пути Start-В-End, то ситуация улучшается ненамного, поскольку на прохождение первого затрачивается 65 мин, а на прохождение второго — 85 мин. В среднем получается (65 + 85)\2 = 75 мин. Казалось бы, на первый путь должно затрачиваться всего 45 мин (2000\100 + 5 + 2000\100), а на второй — 65 мин (45 + 2000\100), но здесь не учитывается то, что трасса В-End в этом случае является общей для обоих потоков машин, почему на первый путь и затрачивается 65 мин (2000\100 + 5 + 4000\100), а на второй — 85 мин (45 + 34 4000\100). То же самое получается, если все машины следуют сначала по трассе Start-А, а в точке А разделяются на два равных потока, один из которых следует по пути А-End, а другой — по пути А-В-End. Таким образом, решение данного парадокса — это удаление дополнительного элемента сети и возвращение к ее прежней структуре. Такое решение называется тривиальным. Более сложная задача: анализ существующих сетей на наличие парадокса Браесса и удаление парадоксального элемента сети. Такая задача пока что не решена, поскольку не известен алгоритм, который позволял бы однозначно устанавливать указанный элемент. Или, что равносильно, устанавливать оптимальную конфигурацию сети. Другое решение состоит в централизованном управлении потоками в сетях. Такое управление даже малой частью потока может дать значительный эффект. Проблема в том, что затраты на централизацию могут свести к нулю этот эффект и даже сделать сеть нерентабельной. Это подсказывает еще одно решение парадокса Браесса — удешевление самих элементов сети. Или, в более общем случае — оптимизация этих элементов. Еще одно решение — это введение «платы» за прохождение элементов сети, что автоматически регулирует интенсивность проходящих через них потоков. Рассмотрим систему передачи данных с параллельными каналами, для которой изучается возможность проявления парадокса Браесса — ухудшения характеристик системы при ее физическом наращивании. Допустим, есть система n пользователей и m параллельных каналов. Каждый пользователь собирается отправить свой трафик объемом wi по одному из каналов с заданной пропускной способностью cl. При отправке трафика объемом w по каналу с пропускной способностью c задержка на канале определяется как w/c. Каждый пользователь действует в своих собственных интересах и стремится занять тот канал, на котором задержка его трафика будет 35 наименьшей. Чистой стратегией для пользователя i является выбор канала l, по которому он собирается отправить свой трафик. Смешанной стратегией для него является вероятностное распределение pi ( pi1 ,..., pim ) , где p il — вероятность, с которой пользователь i выбирает l. В случае чистых стратегий для пользователя i задержка трафика на используемом им канале li определяется как i k :lk li k . cli (1.4) Профиль чистых стратегий (l1, . . . , ln) называется равновесием по Нэшу, если каждый пользователь выбрал канал с минимальной задержкой: т. е. для каждого i i min i k i:l j k k . cj j 1, 2 ,..., m (1.5) Для смешанных стратегий ожидаемая задержка трафика пользователя i на канале l равна i k 1,k i p kl k n li Минимальная ожидаемая cl задержка . пользователя (1.6) i равна i min l 1,... m li . Профиль P называется равновесием по Нэшу, если для каждого пользователя i для любого из используемых им каналов справедливо: li i , если p il 0 , и li i , если p il 0 . Смешанное равновесие 36 P — полностью смешанное, если каждый пользователь выбирает каждый канал с положительной вероятностью. Затраты системы зависят от распределения трафика по каналам и в данной модели определяются в линейном, квадратичном виде, а также как задержка трафика на максимально загруженном канале. Для случая чистых стратегий найдены примеры, в которых равновесие в чистых стратегиях ухудшается при добавлении в систему нового канала [8]. 1.7 Выводы Сегодня все чаще и чаще возникают повышенные требование к пропускной способности каналов. Это происходит по разным причинам, например, повышение производительности клиентских компьютеров, увеличение числа пользователей в сети, появление приложений, работающих с мультимедийной информацией, которая хранится в файлах очень больших размеров, увеличение числа сервисов, работающих в реальном масштабе времени. Следовательно, имеется потребность в экономичном решении, предоставляющем нужную пропускную способность во всех перечисленных случаях. Для повышения пропускной способности сети можно применить несколько способов: сегментация сети с помощью маршрутизаторов или повышение пропускной способности самого протокола. Сегментация сети с помощью маршрутизаторов может повысить пропускную способность сегментов сети за счет их разгрузки от трафика других сегментов только в том случае, когда межсегментный трафик составляет незначительную маршрутизаторы не долю обладают от внутрисегментного, высокой внутренней поскольку пропускной способностью. Данный подход не является оптимальным и экономически выгодным. 37 Из-за недостатков традиционных протоколов маршрутизации потоки данных направляются только по маршруту с минимальной метрикой, игнорируя другие маршруты. Разумеется, если маршруты для передачи данных будут выбираться с учетом доступных ресурсов сети, это положительно скажется на качестве обслуживания и позволит при неизменных ресурсах сети повысить качество обслуживания или увеличить количество услуг, для которых необходимо гарантированное качество сервиса. 1.8 Постановка задачи Целью данного исследования является изучение проблемы повышения пропускной способности каналов связи в IP сетях. Эта проблема комплексная, так как зависит и от программных, и от аппаратных характеристик, оказывая значительное влияние на производительность сетей. Она напрямую связанна с экспоненциальным ростом сетей и объемом передаваемой информации. Борьба с перегрузками делится на две большие категории. Первая категория не требует интеграции дополнительных аппаратных средств и в основном заключается в принуждении источников трафика уменьшать скорости передачи данных. Вторая категория имеет профилактический характер, она требует использования дополнительного сетевого оборудования для увеличения пропускной способности. Для эффективного решения проблемы повышения пропускной способности необходимо комбинировать методы обоих категорий. Целью настоящей магистерской аттестационной работы является разработка и исследование модели многопутевой маршрутизации, которая позволяет не только использовать маршруты с одинаковой стоимостью, но также и маршруты с разными стоимостями. Для реализации данной цели, следует решить следующие задачи: 38 - Дать обзор существующих методов повышения пропускной способности каналов связи. - Дать обзор существующих методов управления трафиком. - Разработать модель многопутевой маршрутизации. - Провести моделирование разработанной модели маршрутизации. - Проанализировать результаты моделирования. - По результатам проведенного исследования дать общие рекомендации по использованию модели многопутевой маршрутизации. 39 2 АНАЛИЗ ФАКТОРОВ, ВЛИЯЮЩИХ НА ПРОПУСКНУЮ СПОСОБНОСТЬ КАНАЛОВ СВЯЗИ 2.1 Влияние протокола TCP TCP — это транспортный механизм, предоставляющий поток данных, с предварительной установкой соединения, за счёт этого дающий уверенность в достоверности получаемых данных, осуществляет повторный запрос данных в случае потери данных и устраняет дублирование при получении двух копий одного пакета. Он гарантирует, что приложение получит данные точно в такой же последовательности, в какой они были отправлены, и без потерь. Нижеприведенная диаграмма иллюстрирует место протокола TCP в иерархии протоколов. Рисунок 2.1 - Взаимосвязь протоколов Протокол TCP применяется в тех случаях, когда требуется гарантированная доставка сообщений. Он использует контрольные суммы пакетов для проверки их целостности и освобождает прикладные процессы от необходимости таймаутов и повторных передач для обеспечения надежности. Для отслеживания подтверждения доставки в TCP реализуется алгоритм "скользящего" окна. TCP регулирует скорости передач с помощью изменения размера плавающего окна, определяя необходимость его изменения с помощью сигналов обратной связи из сети и динамически регулируя его размер для достижения максимальной эффективности 40 передачи. Таким образом, на протокол ТСР возложена задача управления потоками данных и перегрузками, что подразумевает согласование скорости передачи данных с техническими возможностями узла-получателя и промежуточных устройств в сети. Например, современный протокол ТСР Reno и его различные варианты используют как оценку перегрузки вероятность потери, а ТСР Vegas - задержку постановки в очередь. Протокол ТСР синхронизирует свою скорость передачи со скоростью получения подтверждений о доставке пакетов, предотвращая неограниченные размеры очередей в роутерах. Это, тем не менее, не исключает колебательной неустойчивости, которая отрицательно влияет на производительность. Фактически, неустойчивость может породить две проблемы. Первое, она увеличивает «дрожание» скорости отправителя и задержки и может наносить ущерб некоторым приложениям. Второе, она подвергает излишним задержкам и потерям непродолжительные соединения, которые обычно наиболее чувствительны к задержкам. Колебательная неустойчивость, которая имеет место в распределенных сетях, делает трудным выбор политики отправки данных по протоколу TCP на стороне узла-отправителя [8]. 2.2 Влияние IP-протокола IP создан для использования в объединенных системах компьютерных коммуникационных сетей с коммутацией пакетов. Такие системы были названы "catenet". IP обеспечивает передачу блоков данных, называемых датаграммами, от отправителя к получателям, где отправители и получатели являются хост-компьютерами, фиксированной длины. IP идентифицируемыми обеспечивает при адресами необходимости также фрагментацию и сборку датаграмм для передачи данных через сети с малым размером пакетов. 41 Он специально ограничен задачами обеспечения функций, необходимых для передачи битового пакета от отправителя к получателю через объединенную систему компьютерных сетей. Нет механизмов для увеличения достоверности конечных данных, управления протоколом, синхронизации или других услуг, обычно применяемых в протоколах передачи от хоста к хосту. Протокол IP может обобщить услуги поддерживающих его сетей с целью предоставления услуг различных типов и качеств. Данный протокол получил название в соответствии с протоколами передачи информации между хост-компьютерами в межсетевой среде. Протокол вызывает в локальной сети протоколы для передачи датаграммы на следующий шлюз или хост-получатель. Например, модуль TCP вызывал бы модуль Internet с тем, чтобы получить сегмент TCP, включая заголовок TCP и данные пользователя, как информационную часть пакета. Модуль TCP обеспечил бы адреса и другие параметры в заголовке модуля в качестве параметров рассматриваемого вызова. Модуль Internet в этом случае создал бы датаграмму и прибегнул бы к услугам локальной сети для передачи датаграммы. IP выполняет две главные функции: адресацию и фрагментацию. Модули IP используют адреса, помещенные в заголовок, для передачи датаграмм их получателям. Выбор пути передачи называется маршрутизацией. Модули IP используют поля в заголовке для фрагментации и восстановления датаграмм, когда это необходимо для их передачи через сети с малым размером пакетов. Сценарий действия состоит в том, что модуль меняет размер на каждом из хостов, задействованных в internet-коммуникации и на каждом из шлюзов, обеспечивающих взаимодействие между сетями. Эти модули придерживаются общих правил для интерпретации полей адресов, для фрагментации и сборки датаграмм. Кроме этого, данные модули (и особенно 42 шлюзы) имеют процедуры для принятия решений о маршрутизации, а также другие функции. IP обрабатывает каждую датаграмму как независимую единицу, не имеющую связи ни с какими другими датаграммами. Протокол не имеет дело ни с соединениями, ни с логическими цепочками, виртуальными или какимилибо другими. IP использует четыре ключевых механизма для формирования своих услуг: задание типа сервиса, времени жизни, опций и контрольной суммы заголовка. Тип обслуживания используется для обозначения требуемой услуги. Тип обслуживания - это абстрактный или обобщенный набор параметров, который характеризует набор услуг, предоставляемых сетями, и составляющих собственно протокол IP. Этот способ обозначения услуг должен использоваться шлюзами для выбора рабочих параметров передачи в конкретной сети, для выбора сети, используемой при следующем переходе датаграммы, для выбора следующего шлюза при маршрутизации сетевой датаграммы. Механизм времени жизни служит для указания верхнего предела времени жизни датаграммы. Этот параметр устанавливается отправителем датаграммы и уменьшается в каждой точке на проходимом датаграммой маршруте. Если параметр времени жизни станет нулевым до того, как датаграмма достигнет получателя, эта датаграмма будет уничтожена. Время жизни можно рассматривать как часовой механизм самоуничтожения. Механизм опций предоставляет являются необходимыми или просто функции управления, полезными при которые определенных ситуациях, однако он не нужен при обычных коммуникациях. Механизм опций предоставляет такие возможности, как временные штампы, безопасность, специальная маршрутизация. Контрольная сумма заголовка обеспечивает проверку того, что информация, используемая для обработки датаграмм, передана правильно. 43 Данные могут содержать ошибки. Если контрольная сумма неверна, то датаграмма будет разрушена, как только ошибка будет обнаружена. IP не обеспечивает надежности коммуникации. Не имеется механизма подтверждений ни между отправителем и получателем, ни между хосткомпьютерами. Не имеется контроля ошибок для поля данных, только контрольная сумма для заголовка. Не поддерживается повторная передача, нет управления потоком. Обнаруженные ошибки могут быть устранены посредством протокола ICMP (Internet Control Message Protocol), который поддерживается модулем IP [8]. Следующая диаграмма иллюстрирует место IP в иерархии протоколов. Рис. 2.2 - Взаимодействие протоколов Протокол IP взаимодействует с одной стороны с протоколами передачи информации между хост-компьютерами, а с другой - с протоколами локальной компьютерной сети. При этом локальная сеть может являться малой компьютерной сетью, участвующей в создании большой сети, такой как ARPANET. Схему действий для передачи датаграммы от одной прикладной программы к другой можно проиллюстрировать следующим образом. Предположим, что перенос будет включать прохождение одного промежуточного шлюза. Отправляющая прикладная программа готовит свои 44 данные и вызывает свой локальный модуль для отправки этих данных в качестве датаграммы, а в качестве аргументов этого вызова передает адрес получателя и другие параметры. Модуль IP готовит заголовок датаграммы и стыкует с ним данные, определяет локальный сетевой адрес, соответствующий данному адресу. В данном случае это адрес шлюза. Модуль передает данную датаграмму и адрес в локальной сети в распоряжение интерфейса локальной сети. Интерфейс локальной сети создает соответствующий этой сети заголовок и соединяет с ним датаграмму. Затем он передает по локальной сети полученный таким образом результат. Датаграмма достигает хост-компьютер, играющий роль шлюза и расположенный в вершине сети. Интерфейс локальной сети отделяет этот заголовок и передает датаграмму на модуль. Он определяет из адреса, что датаграмма должна быть направлена на хост-компьютер во второй сети. Модуль определяет адрес хоста-получателя в локальной сети. Он обращается к интерфейсу локальной сети с тем, чтобы она переслала данную датаграмму по назначению. Интерфейс создает заголовок локальной сети и соединяет с ним датаграмму, а затем результат направляет на хост-получатель. На хостеполучателе интерфейс локальной сети удаляет заголовок локальной сети и передает оставшееся на модуль. Модуль определяет, что рассматриваемая выше датаграмма предназначена для прикладной программы на этот хосте. Модуль передает данные прикладной программе в ответ на системный вызов. В качестве результата этого вызова передаются адрес получателя и другие параметры. 45 Рисунок 2.3 - Путь передачи датаграммы Функция или цель протокола IP состоит в передаче датаграммы через набор объединенных компьютерных сетей. Это осуществляется посредством передачи датаграмм от одного модуля к другому до тех пор, пока не будет достигнут получатель. Модули находятся на хостах и шлюзах системы. Датаграммы направляются с одного модуля на другой через конкретные компьютерные сети, основанные на интерпретации адресов. Таким образом, одним из важных механизмов IP является IP-адрес. При передаче сообщений с одного модуля на другой датаграммы могут нуждаться в прохождении через сети, для которых максимальный размер пакета меньше, чем размер датаграммы. Чтобы преодолеть эту сложность, в IP включен механизм фрагментации [9]. Адресация. В протоколе сделано разграничение между именами, адресами и маршрутами. Имя показывает искомый нами объект. Адрес показывает его местонахождение. Internet имеет дело с адресами. Перевод имен в адреса является задачей протоколов более высокого уровня (прикладных программ или протоколов передачи синхронизации с хоста на хост). Собственно модуль осуществляет отображение адресов на адреса локальной сети. Создание карты адресов локальной сети для получения маршрутов - задача процедур более низкого уровня (процедур локальной сети или шлюзов). Адреса имеют фиксированную длину четыре октета (32 бита). Адрес начинается с сетевого номера, за которым следует локальный адрес (называемый полем остатка "rest"). Существуют три формата или класса адресов. В классе a самый старший бит нулевой. Следующие 7 бит 46 определяют сеть, а последние 24 бита - локальный адрес. В классе b самые старшие два бита равны соответственно 1 и 0, следующие 14 бит определяют сеть, а последние 16 бит - локальный адрес. В классе с три самых старших бита равны соответственно 1,1 и 0, следующие 21 бит определяют сеть, а последние 8 бит - локальный адрес. При отображении карты адресов на адреса локальной сети следует соблюдать осторожность. Единичный хост-компьютер должен уметь работать так, как если бы на его месте существовало несколько отдельных хост-компьютеров для использования нескольких адресов. Некоторые хосткомпьютеры будут также иметь несколько физических интерфейсов (multihoming) [11]. Таким образом, несколькими следует физическими обеспечить сетевыми каждый интерфейсами, хост-компьютер имеющими по несколько логических адресов. Фрагментация датаграммы необходима, когда эта датаграмма возникает в локальной сети, позволяющей работать с пакетами большого размера, и затем должна пройти к получателю через другую локальную сеть, которая ограничивает пакеты меньшим размером. Датаграмма может быть помечена как не фрагментируемая. Любая датаграмма, помеченная таким образом, не может быть фрагментирована модулем ни при каких условиях. Если же датаграмма, помеченная как не фрагментируемая, тем не менее, не может достигнуть получателя без фрагментации, то вместо этого она будет разрушена. Фрагментация, перенос и сборка в локальной сети, невидимые для модуля IP, называются внутрисетевой фрагментацией и могут быть всегда использованы . Необходимо, чтобы процедуры фрагментации и сборки могли разбивать датаграмму на почти любое количество частей, которые впоследствии могли бы быть вновь собраны. Получатель фрагмента использует поле идентификации для того, чтобы быть убежденным в том, что 47 фрагменты различных датаграмм не будут перепутаны. Поле смещения фрагмента сообщает получателю положение фрагмента в исходной датаграмме. Смещение фрагмента и длина определяют кусок исходной датаграммы, принесенный этим фрагментом. Флаг "more fragments" показывает, посредством перезагрузки появление последнего фрагмента. Эти поля дают достаточное количество информации для сборки датаграмм. Поле идентификации позволяет отличить фрагменты одной датаграммы от фрагментов другой. Модуль, отправляющий датаграмму, устанавливает в поле идентификации значение, которое должно быть уникальным для данной пары отправитель - получатель, а также время, в течение которого датаграмма будет активна в системе. Модуль протокола, отправляющий нерасчлененную датаграмму, устанавливает в нуль флаг "more fragments" и смещение во фрагменте [12]. Чтобы расчленить большую датаграмму, модуль IP (например, шлюз), создает две новые датаграммы и копирует содержимое полей заголовка из большой датаграммы в оба новых заголовка. Данные из старой датаграммы делятся на две части по границе на очередном восьмом октете (64 бита). Полученная таким образом вторая часть может быть кратна 8 октетам, а может и не быть, но первая часть кратна всегда. Заказывается количество блоков первой части NFB (количество блоков фрагмента). Первая часть данных помещается в первую новую датаграмму, в поле общей длины помещается длина первой датаграммы. Флаг "more fragments" устанавливается в единицу. Вторая часть данных помещается во вторую новообразованную датаграмму, в поле общей длины заносится длина второй датаграммы. В поле смещения фрагмента во второй датаграмме устанавливается значение такого же поля в исходной большой датаграмме, увеличенное на NFB. Эта процедура может быть обобщена на случай многократного расщепления исходной датаграммы. 48 Чтобы собрать фрагменты датаграммы, модуль протокола IP, например, модуль на хост-компьютере, объединяет датаграммы, имеющие одинаковые значения в полях идентификатора, отправителя, получателя и протокола. Собственно объединение заключается в помещении данных из каждого фрагмента в позицию, указанную в заголовке пакета в поле "fragment offset". Первый фрагмент будет иметь в поле "fragment offset" нулевое значение, а последний фрагмент будет иметь флаг "more fragments", вновь установленный в нуль [6]. 2.3 Влияние различных видов трафика 2.3.1 Широковещательный трафик сети Пропускная способность любого канала локальной сети ограничивается максимальной эффективной пропускной способностью используемого канального протокола. Если же часть этой пропускной способности используется не для передачи пользовательских данных, а для передачи служебного трафика, то эффективная пропускная способность сети уменьшается. Обычно некоторую часть доступной пропускной способности сети отнимает у пользовательских данных широковещательный служебный трафик, который является неотъемлемой частью практически всех стеков протоколов, работающих в локальных сетях. Широковещательная рассылка кадров и пакетов используется протоколами для того, чтобы в сети можно было бы находить ресурсы не с помощью запоминания их числовых адресов, а путем использования более удобных для пользователя символьных имен. Еще одним удобным способом поиска ресурсов в сети является их автоматическое сканирование и предоставление пользователю списка обнаруженных ресурсов с символьными именами. Пользователь может просмотреть список текущих ресурсов сети - файл-серверов, серверов баз данных или разделяемых принтеров - и выбрать любой из них для использования. 49 Оба приведенных способа работы пользователя с ресурсами обычно основываются на том или ином виде широковещательного трафика, когда узел, осуществляющий просмотр сети, отправляет в нее запросы с широковещательным адресом, опрашивающие наличие в сети тех или иных серверов. Получив такой запрос, сервер отвечает запрашивающему узлу направленным пакетом, в котором сообщает свой точный адрес и описывает предоставляемые сервером услуги. Широковещательный трафик канального уровня распространяется в пределах не только сегмента, образованного пассивной кабельной системой или несколькими концентраторами, но и в пределах сети, построенной с использованием мостов и коммутаторов. Принципы работы этих устройств обязывают их передавать кадр с широковещательным адресом на все порты, кроме того, откуда этот кадр пришел. Такой способ обработки широковещательного трафика создает для всех узлов, связанных друг с другом с помощью повторителей, мостов и коммутаторов, эффект общей сети, в которой все клиенты и серверы "видят" друг друга. 2.3.2 Основной трафик сети Трафик в сети складывается случайным образом, однако в нем отражены и некоторые закономерности. Как правило, некоторые пользователи, работающие над общей задачей, например, сотрудники одного отдела, чаще всего обращаются с запросами либо друг к другу, либо к общему серверу, и только иногда они испытывают необходимость доступа к ресурсам компьютеров другого отдела. Желательно, чтобы структура сети соответствовала структуре информационных потоков. В зависимости от сетевого трафика компьютеры в сети могут быть разделены на группы (сегменты сети). Компьютеры объединяются в группу, если большая часть порождаемых ими сообщений, адресована компьютерам этой же группы. Для разделения сети на сегменты используются мосты и коммутаторы. Они экранируют локальный трафик внутри сегмента, не передавая за его 50 пределы никаких кадров, кроме тех, которые адресованы компьютерам, находящимся в других сегментах. Тем самым, сеть распадается на отдельные подсети. Это позволяет более рационально выбирать пропускную способность имеющихся линий связи, учитывая интенсивность трафика внутри каждой группы, а также активность обмена данными между группами [10]. Однако локализация трафика средствами мостов и коммутаторов имеет существенные ограничения. С одной стороны, логические сегменты сети, расположенные между мостами, недостаточно изолированы друг от друга, а именно, они не защищены от, так называемых, широковещательных штормов. Если какаялибо станция посылает широковещательное сообщение, то это сообщение передается всем станциям всех логических сегментов сети. Защита от широковещательных штормов в сетях, построенных на основе мостов, имеет количественный, а не качественный характер: администратор просто ограничивает количество широковещательных пакетов, которое разрешается генерировать некоторому узлу. С другой стороны, использование механизма виртуальных сегментов, реализованного в коммутаторах локальных сетей, приводит к полной локализации трафика - такие сегменты полностью изолированы друг от друга, даже в отношении широковещательных кадров Приведенные недостатки мостов и коммутаторов связаны с тем, что они работают по протоколам канального уровня, в которых в явном виде не определяется понятие части сети или подсети, или сегмента, которое можно было бы использовать при структуризации большой сети. 2.4 Влияние коммуникационных устройств Возможность изменения топологии связей между узлами сети предоставляет сетевому интегратору широкие возможности для повышения 51 пропускной способности как сети в целом, так и ее отдельных участков. Даже при фиксированных пропускных способностях каналов связей наличие двух альтернативных каналов между какими-либо узлами сразу же в два раза повышает пропускную способность сети при взаимодействии этих узлов. В локальных сетях при использовании мостов, коммутаторов или маршрутизаторов появляется возможность использовать сложные топологии, отличающиеся от стандартных. Выбор подходящей топологии сети может решить многие проблемы узких мест сети. Это связано не только с наличием дополнительных каналов связи, но и с тем, что сеть образует не одну общую среду, разделяемую между всеми узлами сети, а несколько таких сред, пропускная способность которых разделяется между узлами данного сегмента сети [13]. Большое влияние производительность на таких пропускную способность коммуникационных сети устройств имеет как и мосты, коммутаторы и маршрутизаторы. Эта производительность должна быть достаточной для передачи межсегментного или межсетевого трафика между частями сети, которые образуются в результате установки в сеть устройств данного типа. Потери кадров или пакетов мостами, коммутаторами или маршрутизаторами могут приводить к значительному снижению пропускной способности сети, особенно если восстановление утерянных пакетов осуществляется протоколами с большими значениями тайм-аута ожидания квитанций. 2.5 Выводы В проблеме выбора протокола по критерию максимизации пропускной способности сети наиболее влияющими параметрами протокола будут следующие: - номинальная скорость передачи кадра); пропускная способность протокола (битовая 52 - максимально допустимый размер поля данных кадра; - номинальное время доступа к среде передачи данных. Результирующая пропускная способность сети складывается под влиянием многих параметров и часто наиболее значимым является размер поля данных кадра или же время доступа к среде. Основная задача управления пропускной способностью - это регулирование трафика в целях наиболее эффективного использования пропускной способности. Контроль скорости и организация очередей составляют два основных средства контроля трафика. Контроль скорости применяется для выравнивания обычно чрезвычайно неравномерного трафика по соединениям TCP и позволяет осуществлять контроль трафика в обоих направлениях. Цель контроля скорости состоит в снижении скорости передачи в периоды перегрузки. При контроле скорости потоки идентифицируются в соответствии с такими переменными, как адрес отправителя, адрес получателя и номер порта. На основании этой информации механизмы контроля скорости позволяют соответствующим образом настроить такие параметры, как окно TCP, от величины которого зависит, какой объем данных система может передать в данный момент времени. Если часть пропускной способности канала связи используется не для передачи пользовательских данных, а для передачи служебного трафика, то эффективная пропускная способность сети еще уменьшается. Обычно некоторую часть доступной пропускной способности сети отнимает у пользовательских данных широковещательный служебный трафик, который является неотъемлемой частью практически всех стеков протоколов, работающих в локальных сетях. 53 3 РАЗРАБОТКА МОДЕЛИ БАЛАНСИРОВКИ НАГРУЗКИ Проблема настройки метрик - это одна из базовых задач оптимизации в IP сетях, потому что именно метрики определяют маршруты для потоков трафика. Если метрики установлены надлежащим способом, значительно возрастает сетевая пропускная способность и производительность по сравнению с не подстроенными метриками, что наиболее часто используется в настоящее время. 3.1 Проблема настройки метрик OSPF - обычно используемый Внутренний Межсетевой Протокол в сегодняшних IP-сетях. OSPF использует самые короткие пути для того, чтобы направлять поступающие пакеты согласно метрикам и применяет так называемый принцип равной стоимости нескольких путей (ECMP) в случае, когда есть нескольких самых коротких путей. Процедура маршрутизации OSPF: все узлы представляются в виде графа соответствующего топологии сети, где узлы - вершины, и связи грани, соответственно. Каждой связи e назначается положительное целое число We - вес. Эти значения посылают сетевым узлам с помощью механизма связи OSPF. Впоследствии, все узлы знают о весах w ( w1 , w2 ,..,We ) каналов связи всей сети. Если пакет достигает промежуточного узла t, и предназначен для узла u , то текущий узел t определяет следующую посылку пакета к узлу u , используя локальную таблицу маршрутизации. Чтобы создать таблицу маршрутизации, кратчайшие пути вычисляются на основе системы связей с учетом весов. Вычисление маршрута в текущем узле не зависит от узла, с которого пришел пакет и предыдущих промежуточных узлов. Если есть больше, чем одна исходящая связь от узла t, которая является самым коротким путем от t до u, то трафик распределяется равномерно среди этих связей. 54 Статические системы веса – системы, где вес не изменяется динамически, в течение номинальной сетевой операции в короткий промежуток времени. Однако возможна корректировка системы весов для ее соответствия текущему сетевому состоянию и состояниям трафика в определенные промежутки времени, в случае необходимости. Задача сетевого администратора - корректировать вес, согласно текущему сетевому состоянию. Поскольку система весов строго определяет все пути, ее настройка является критической для эффективного использования ресурсов. Следует отметить, что для сетей больших размеров, настройка весов - очень трудная задача, и поэтому должны использоваться алгоритмические подходы. К проблеме распределения большого потока подходят согласно правилу маршрутизации OSPF. 3.2 Формализация проблемы балансировки нагрузки Маршрутизация может быть представлена в следующем виде. Пусть дан направленный взвешенный граф G=(V,E), в котором каждый узел из множества V представляет собой устройство, обрабатывающее и передающее данные, а каждое ребро из множества E является линией связи. Основной задачей алгоритмов маршрутизации является передача данных из узла источника в узел приемник, максимизируя при этом производительность сети. При моделировании алгоритмов маршрутизации возникают две проблемы, затрудняющие процесс создания системы. Во-первых, поток данных не является статическим, во-вторых, он имеет стохастический характер. Алгоритмы маршрутизации должны выполнять следующие функции: - сбор, организация и распределение информации о созданном пользователем трафике и состояниях сети; - использование собранной информации для создания подходящих маршрутов, максимизирующих производительность объектов; 55 - направление трафика пользователя по выбранному маршруту. Способ реализации описанных трех функции сильно зависит от технологии передачи и коммутации пакетов, положенной в основу сети, и от особенностей других взаимодействующих уровней приложений. Отправка трафика пользователя может происходить с использованием двух базовых операций сети: коммутация каналов и коммутация пакетов, которые также связанные с понятиями ориентированный и неориентированный на соединение. При коммутации каналов на стадии установки соединения ищутся и резервируются ресурсы сети, которые впоследствии будут предоставлены каждой новой сессии. В этом случае все пакеты данных, принадлежащие одной и той же сессии, будут направлены по одному и тому же пути. От маршрутизаторов требуется хранение информации об активной сессии. При коммутации пакетов нет стадии резервирования, информация о состоянии не хранится на маршрутизаторах, и пакеты данных могут отправляться по разным путям. В каждом промежуточном узле принимается самостоятельное решение о выборе выходной линии, по которой будет отправлен пакет данных в узел приемник. Пусть сеть - ориентированный граф G ( N , A) , где узлы и дуги представляют собой маршрутизаторы и связи между ними соответственно. Каждая дуга имеет пропускную способность c(a) , которая является мерой объема потока трафика, который она может пропустить. В дополнение к пропускной способности сети, имеется матрица запросов D , где для каждой пары узлов ( s, t ) указывается, какое количество трафика необходимо передать из s в t . Многие элементы D могут быть нулевыми, в частности D(s, t ) должен быть нулевым, если нет никакого пути из узла s в t в графе G . Таким образом, проблема маршрутизации - для каждого ненулевого запроса D(s, t ) , распределить требуемый поток по каналам связи из узла s в t . Предполагается, что нет никаких ограничений на то, каким образом может быть распределен поток. 56 Загрузка l (a) на дуге a - это полный объем потока трафика, проходящего через канал a , где l (a) составляющим поток, для которых - сумма по всем запросам, задействован канал a. Мерой использования связи a является отношение l (a) / c(a) . Рисунок 3.1 – Стоимость дуги a (l ( a )) как функции загрузки l (a) для пропускной способности дуги c(a) 1. Основная цель состоит в том, чтобы сохранить загрузку каналов в пределах пропускных способностей. Иными словами, функция стоимости суммирует стоимость дуг, а стоимость дуги a должна изменяться в соответствии с отношением между l (a) и c(a) . Воспользуемся значениями из [19]: Ф Ф а (l (a)) , аА где a A, a (0) 0 , (3.1) 57 1, для 0 x ca 1 3 3, для 1 3 x ca 2 3 10, для 2 3 x ca 9 10 фа x 70 , для 10 x ca 1 500, для 1 x ca 11 10 5000 , для 11 10 x ca (3.2) Основная идея a заключается в том, чтобы послать поток по дуге с наименьшим использованием, с наименьшим значением стоимости. Если использование приближается к 100 %, происходит резкий рост стоимости, т.о. снижается чувствительность к взрывам трафика. Если использование превышает вышеупомянутые 100 %, штраф критически растет, а когда использование превышает 110 %, штраф становится настолько высоким, что подобное событие становится маловероятным. Точное определение целевой функции не настолько важно для данной методики, пока кусочно-линейная функция увеличивается и является выпуклой. Если каждая a - кусочно-линейная и выпуклая функция, проблема маршрутизации может быть решена оптимально в полиномиальное время. Из-за очень высокого штрафа перегруженных дуг, можно сказать, что целевая функция борется с перегрузкой дуг. Общее преимущество при работе с суммой состоит в том, что, даже если есть узкое место и, следовательно, связь тяжело загружена, целевая функция заботится об уменьшении загрузок в остальной части сети. 3.3 Модель оптимальной маршрутизации Пусть есть сеть представленная в виде направленного графа G ( N , A) с пропускной способностью c(a) для каждого a A . Кроме того, имеется матрица запросов D , где для каждой пары (s, t ) N N узлов указывается, 58 какое количество трафика необходимо передать из узла s в t . Для каждой пары ( s, t ) и каждой дуги a , объявим переменную f a( s ,t ) указывающую, какой объем потока трафика из узла s в узел t проходит через канал a . Переменная l (a) представляет собой полную загрузку дуги a , то есть сумму потоков, проходящих через a , а a используется в модели как кусочнолинейная функция стоимости дуги a . В этой системе обозначений, основная задача маршрутизации может быть сформулирована следующим образом [19]: min Ф Ф а , (3.3) аА D( s, t ), если y s; ( s,t ) ( s,t ) f f D(s, t), если y t; ( x , y ) ( y , z ) x:( x, y )A z:( y, z )A 0, в противном случае. (3.4) Ограничения: l (a) ( s, t ) fa ( s, t )NxN y, s, t N , a A, (3.5) (3.6) Ограничение (3.5) сохранения потока гарантируют, что желаемый поток трафика будет направлен от узла s к узлу t. Ограничение (3.6) определяют загрузку на каждой дуге. Ф а l (a) a A, 2 Ф а 3l (a) c(a) 3 Ф а 10l (a) 16 c(a ) 3 (3.7) a A, (3.8) a A, (3.9) 59 Ф а 70l (a) 178 c(a ) 3 Ф а 500l (a) a A, 1468 c(a) 3 Ф а 5000l (a) 19468 c(a ) 3 (3.10) a A, (3.11) a A, (3.12) Ограничения с (3.7) по (3.12) определяют стоимость на каждой дуге. Данная задача может быть решена оптимально за полиномиальное время. 3.4 Выбор весов дуг При маршрутизации выбирается вес w(a) для каждой дуги. Длинной пути является сумма весов дуг входящих в него. Кроме того имеется дополнительное условие: весь поток, покидающий узел, направленный к адресату равномерно распределен по дугам кратчайших путей к адресату. Более того, для каждой пары источник-адресат (s, t ) N N и для каждого узла x имеем: f((xs,,yt )) 0 если ( x, y) не находятся на кратчайшем пути от s к t , и f((xs,,yt )) f((xs,,yt)) если оба ( x, y) и ( x, y ) находятся на кратчайших путях от s к t. Однако, функция (l (a), c(a)) l (a) / c(a) становится резко возрастающей, если использование связи a приближается к l (a) / c(a) 0,9 , что может вызвать не желательные колебания трафика. В связи с этим является обоснованным введение смягчающего коэффициента l (a) /10 : (l (a), c(a)) = l (a) - l (a) /10 , c( a ) (3.13) 60 Следует обратить внимание, что маршрутизация запросов полностью определяется самыми короткими путями, которые в свою очередь определяются весами, которые назначены дугам. К сожалению, вышеупомянутое условие разбиения между самыми короткими путями, основанными на переменных весах, не может быть сформулировано как линейная программа, и это дополнительное условие делает задачу – сложной. В данной магистерской аттестационной работе предложена схема подстройки метрик, которая приведена на рисунке 3.2. «Грубая» подстройка метрик Алгоритм поиска кратчайших путей N кр. «Тонкая» путей подстройка метрик Метрика каждого канала Пропускная способность сети, загрузка каналов связи Рисунок 3.2 – Схема подстройки метрик На основании схемы подстройки метрик были составлены алгоритмы для «грубой» и «тонкой» подстройки метрик, которые приведены на рисунках 3.3 и 3.4. 61 Начало Пропускная способность и загрузка канала связи, кол-во связей (с, l, n), i=0 Нет 0 < l/c < 1/3 Да Да Нет 1/3 < l/c < 2/3 Метрика = 1 Метрика = 3 Нет 2/3 < l/c < 9/10 Да Метрика = 10 9/10 < l/c <1 Нет Да Метрика = 70 1 < l/c < 11/10 Нет Да Метрика = 500 11/10 < l/c < ∞ Да Метрика = 5000 i++ Ошибка Да i<n Алгоритм поиска кратчайшего пути Нет Нет 62 Рисунок 3.3 – Алгоритм «грубой» подстройки метрики Алгоритм поиска кратчайшего пути N кратчайших путей Да C C 1 2 V буф. L p Значение отбрасывается N М= X n 1 Нет ij N ij Выполнить подстройку метрики Конец Рисунок 3.4 – Алгоритм «тонкой» подстройки метрики Входные данные для алгоритма – пропускная способность каналов связи, их загруженность и количество каналов. Далее, исходя из их отношения, выбираются соответствующие значения метрик для каждого канала связи. После чего, каждая вершин обрабатывается алгоритмом поиска кратчайшего пути, на выходе которого будет N кратчайших маршрутов. Для каждой возможной пары маршрутов вычисляется величина Δ: 63 C C , 1 2 V буф. L p (3.14) где C - пропускная способность канала связи, который был получен на i выходе алгоритма поиска кратчайшего пути; L p - длина пакета; - объем буфера на приемной стороне. V буф. Если Δ не удовлетворяет заданному условию, то маршрут в учет не берется. Далее «тонкая» подстройка метрик выполняется по следующей формуле: N М= X n 1 ij , N ij (3.15) где i и j – вершины, между которыми вычислялся кратчайший путь; X ij - метрика, полученная при грубой подстройке; Nij - количество кратчайших путей. 3.4 Выводы В вычислительной технике оптимизацией называется процесс модификации системы для улучшения её эффективности. В данной работе была предложена оптимизация метрик, которая проводится с учетом соотношения пропускной способности канала связи и его загруженности трафиком. Также задействован алгоритм поиска кратчайшего пути, на выходе которого несколько возможных вариантов, в том числе и самый оптимальный. Выбор пути производится с учетом величины Δ. 64 4 ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ Использование высокоуровневого моделирования позволяет гарантировать полноту и правильность выполнения информационной системой функций, определенных заданием. В данном проекте моделирование осуществляется с помощью пакета OpNet. 4.1 Общая информация о пакете OpNet Программа OpNet представляет собой комплекс средств для создания, моделирования и изучения сетей связи. Позволяет анализировать воздействия приложений типа клиент-сервер и новых технологий на работу сети; моделировать иерархические сети, многопротокольные локальные и глобальные сети с учетом алгоритмов маршрутизации; осуществлять оценку и анализ производительности смоделированных сетей. Также с помощью пакета можно осуществить проверку протокола связи, анализ взаимодействий протокола, оптимизацию и планирование сети. Программа OpNet содержит исчерпывающую библиотеку протоколов и объектов. Есть несколько сред редактора – по одной для каждого типа объекта. Организация объектов – иерархическая, сетевые объекты (модели) связаны набором узлов и объектов связи, в то время как объекты узла связаны набором объектов, типа модулей очерёдности, модулей процессора, передатчиков и приемников. Возможен анализ работы различных локальных и территориальных гетерогенных вычислительных сетей, в том числе высокоскоростных сетей FDDI и ATM, радиоканалов с временным мультиплексированием и др. На входном графическом языке задается структура сетей с указанием процессоров, источников потоков данных, очередей, трансмиттеров и т.п. Система позволяет сравнивать различные архитектуры построения сетей, определять размещение серверов, рассчитывать трафик. В библиотеке 65 системы имеются модели различных протоколов (Ethernet, FDDI, TCP/IP, ATM, PSTN, Frame Relay и другие). Opnet Modeler предлагает пользователям графическую среду для создания, выполнения и анализа событийного моделирования сетей связи. Это удобное программное обеспечение может быть использовано для большого ряда задач, например, типичные создание и проверка протокола связи, анализ взаимодействий протокола, оптимизация и планирование сети. Также возможно осуществить с помощью пакета проверку правильности аналитических моделей, и описание протоколов. В рамках, так называемого, редактора проекта могут быть созданы палитры сетевых объектов, которым пользователь может присвоить различные формы соединения узлов и связи вплоть до имеющих вид головоломки. Автоматизированное порождение сетевой топологии - кольца, звезды, случайной сети, также поддерживается и резервируется утилитами для импортируемых сетевых топологий в различных форматах. Случайный трафик может быть автоматически сгенерирован из алгоритмов, указанных пользователем, а также импортирован из входящих в стандартную комплектацию пакета форматов реальных трафиков линий. Результаты моделирования могут быть проанализированы, а графы и анимация трафика, опять же будут сгенерированы автоматически. Новая особенность - это автоматическое преобразование в формат html 4.0х. Одним из плюсов из создания модели сети с помощью программного обеспечения является то, что уровень гибкости, обеспечиваемый ядром моделирования, тот же, что и для моделирования, написанных с нуля, но объектное построение среды позволяет пользователю намного быстрее делать разработку, усовершенствования многократного использования. и производить модели для 66 Есть несколько сред редактора - по одной для каждого типа объекта. Организация объектов - иерархическая, сетевые объекты (модели) связаны набором узлов и объектов связи, в то время как объекты узла связаны набором объектов, типа модулей очерёдности, модулей процессора, передатчиков и приемников. Версия ПО для моделирования радиоканала содержит модели антенны радиопередатчика, антенны приемника, перемещающихся объектов узла, включая спутники. Логику поведения процессора и модулей очередности определяет модель процесса, которую пользователь может создавать и изменять в пределах редактора процесса. В редакторе процесса пользователь может определить модель процесса через комбинацию алгоритма работы конечного автомата (finite-state machine - FSM) и операторов языка программирования C/C++. Вызов события модели процесса в течение моделирования управляется возбуждением прерывания, а каждое прерывание соответствует событию, которое должно быть обработано моделью процесса. Основа связи между процессами - структура данных, называемая пакетом. Могут быть заданы форматы пакета, то есть они определяют, какие поля могут содержать такие стандартные типы данных, как целые числа, числа с плавающей запятой и указатели на пакеты. Эта последняя способность позволяют инкапсулировать моделирование пакета. Структура данных, вызывающая информацию по контролю за интерфейсом (interface control information - ICI), может быть разделена между двумя событиями моделей процесса - это ещё один механизм для межпроцессорной связи, это очень удобно для команд моделирования и соответствует архитектуре многоуровневого протокола. Процесс также может динамически порождать дочерние процессы, которые упростят функциональное описание таких систем, как серверы. Несколько основных моделей процесса входят в базовую комплектацию пакета, моделируя популярные протоколы работы с сетями и 67 алгоритмы, вроде протокола шлюза границы BGP, протокола контроля передачи. Интернет протокол (TCP/IP), ретрансляции кадров (frame relay), Ethernet, асинхронного режима передачи ATM, и WFQ (weighted fair queuing). Базовые модели полезны для быстрого развития сложных имитационных моделей для общих архитектур сети, а также для обучения, чтобы дать точное функциональное описание протокола студентам. Существует возможность сопровождения комментариями и графикой, с поддержкой гипертекста, моделей сети, узла или процесса. В режиме прямого диалога доступна подробная документация в формате pdf. Обучающее руководство содержит простые примеры, по которым возможно сравнительно быстро обучиться всем тонкостям программы. 4.2 Интерфейс программы OpNet Решения OPNET в области исследований и разработки используются ведущими мировыми специалистами по сетям передачи данных для проектирования сетевых протоколов, устройств и архитектур сетей с непревзойденной гибкостью и масштабируемостью. OPNET MODELER ускоряет исследования и разработки, сокращает время выхода готового продукта на рынок, повышает качество продукта. Широко используя моделирование, данный продукт позволяет уменьшить стоимость разработок и гарантировать оптимальное качество продукта. Передовая технология OPNET MODELER предоставляет модельную оболочку для разработки протоколов и технологий, также как и средства тестирования и демонстрации возможностей проекта при помощи реалистичных сценариев до запуска в производство. При запуске программы появляется окно, приведенное на рисунке 5.1: 68 Рисунок 5.1 – Окно OpNet Чтобы создать новый проект нужно выбрать File/New, после чего появляется окно, изображенное на рисунке 5.2 Рисунок 5.2 – Создание нового проекта OpNet имеет широкие возможности, при развороте вкладки можно увидеть, что он позволяет создавать не только новые проекты, но и различные виды моделей, характеристик, а также header files, external source и др. 69 Рисунок 5.3 – Возможности OpNet После выбора проекта нужно присвоить ему имя (рисунок 5.4): Рисунок 5.4 – Выбор имени проекта Далее выбираем топологию: 70 Рисунок 5.5 – Выбор топологии Потом нужно выбрать масштаб сети: Рисунок 5.6 – Выбор масштаба сети Рисунок 5.7 – Палитра инструментов для создания модели сети. 71 4.3 Проведение моделирования и его результаты В процессе моделирования были созданы две идентичных сети. В первой сети был установлен протокол OSPF, протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала и использующий для нахождения кратчайшего пути алгоритм Дейкстры. Построенная сеть представлена на рисунке 5.9. Сетевые настройки приведены в приложении А. Во второй сети была задана статическая маршрутизация, таблицы маршрутизации и IP-адреса были прописаны вручную, также были рассчитаны и изменены метрики. Как видно из результатов моделирования на рисунке 5.10 и 5.11, при подстройке метрик увеличилась скорость приема и посылки трафика, т.е. увеличилась скорость работы сети за счет того, что стало меньше перегрузок. Рисунок 5.8 – Модель сети 72 Рисунок 5.9 – Сеть с протоколом динамической маршрутизации и трафиком Рисунок 5.10 – Результаты моделирования маршрутизатора node_0 при динамической маршрутизации. 73 Рисунок 5.11 – Результаты моделирования маршрутизатора node_0 при статической маршрутизации. Рисунок 5.12 – Результаты моделирования нескольких маршрутизаторов при динамической маршрутизации. 74 Рисунок 5.13 – Результаты моделирования, снятые с нескольких маршрутизаторов при статической маршрутизации 4.4 Выводы Результаты моделирования, проведенные в среде OpNet, показали эффективность метода подстройки метрик. Пропускная способность смоделированной сети увеличилась, следовательно, стало меньше перегрузок каналов связи, т.е. нагрузка стала более сбалансированной. На рисунке 5.10 зафиксирована скорость посылки и приема трафика в первоначальной сети. На рисунке 5.11 – сети с модифицированными метриками. Результаты сняты с маршрутизатора node_0. Скорость приема трафика в обычной сети колеблется около 60 000 пакетов/сек, а в сети с подстроенными метриками – около 90 000 пакетов/сек. Это говорит о том, что скорость посылки трафика маршрутизатора node_0 увеличилась на 30%. На рисунках 5.12 маршрутизаторов. и 5.13 характеристики сняты со всех трех 75 ВЫВОДЫ В данной магистерской аттестационной работе была изучена проблема повышения пропускной способности в IP сетях. Пропускная способность представляет собой комплексную проблему, так как зависит и от программных, и от аппаратных характеристик, оказывая значительное влияние на производительность сетей. Она напрямую связанна с экспоненциальным ростом сетей и объемом передаваемой информации. В процессе работы была решена основная поставленная задача – предложен метод настройки метрик, способствующий росту сетевой пропускной способности, а также предотвращению перегрузок в IP сетях. В процессе работы были успешно решены следующие задачи: - проведен анализ литературных источников, относящихся к проблеме балансировки нагрузки; - рассмотрены существующие методы борьбы с перегрузками; - предложен метод корректировки метрик для соответствия текущему сетевому состоянию; - в среде программного пакета OPNET реализована модель элемента компьютерной сети; - путем моделирования в среде OPNET получены значения статистик пропускной способности сети. Было позволяет использовано гарантировать высокоуровневое полноту и моделирование, правильность которое выполнения информационной системой функций, определенных заданием. Рекомендуется разработанный алгоритм представить в виде программного продукта на языке С и встроить в протокол динамической маршрутизации. 76 ПЕРЕЧЕНЬ ССЫЛОК 1. Хребтов П., Кривченко И. «i2Chip – новая технология для приложений Embedded Internet». 2. Миков А.И., Замятина Е.Б. «Распределённые системы и алгоритмы». 3. В.Г. Олифер, Н.А. Олифер «Основы сетей передачи данных». 4. Шудрова К. Е. «Анализ видов балансировки сети». 5. Джон Вакка «Секреты безопасности в Internet» Перевод с английского. – Киев; Диалектика, 1997г. 6. Семенов Ю.А. «Телекоммуникационные технологии». 7. RFC 791. 8. В.Г. Олифер, Н.А. Олифер. «Компьютерные сети. Принципы, технологии, протоколы» – СПб: Издательство «Питер», 2002. – 672 с.: ил. 9. Чуйко Ю.В. «Парадокс Браесса в задаче оптимальной маршрутизации». 10. А.М. Ларионов, С.А. Майоров, Г.И. Новиков «Вычислительные комплексы, системы и сети» Учебник для вузов. Л.: Энергоатомиздат. Ленингр. отд-ние, 1987. 288 с.: ил. 11. М. Кульгин «Технологии корпоративных сетей» СПб: Издательство «Питер», 2000. – 659 с.: ил. 12. В.К. Морозов, А.В. Долганов «Основы теории информационных сетей» – М.: Высш. шк., 1987. – 267 с.: ил. 13. Д.В. Агеев «Модернизированная методика синтеза начальной структуры транспортной сети передачи данных» - Одесса: Труды УНДИРТ, 2001, No 2(26), С.42-47. 14. R. Gurein, S. Kamat and A. Orda, “QoS Routing Mechanisms and OSPF Extensions“, Internet draft, <draft-guerin-QoS-routing-OSPF-03.txt>, Jan. 1998. 77 15. Q. Ma, “Quality-of-Service Routing in Integrated Services Networks”, CMU-CS-98-138, Ph.D thesis, Camegie-Mellon University, Jan. 1998. 16. N. Greene, M. Ramalho, and B. Rosen. «Media Gateway Control Protocol Architecture and Requirements» RFC 2805, Internet Engineering Task Force, April 2000. 17. Jean-Philippe, Martin-Flatin, Sylvain Ravot. “TCP Congestion Control in Fast Long-Distance Networks” Technical Report CALT-68-2398 California Institute of Technology, pp. 89-97, USA July 10, 2002. 18. J. Moy, “OSPF Version 2” RFC 2328, April 1998. 19. B. Fortz and M. Thorup, “Internet traffic engineering by optimizing OSPF weights,” in Proc. IEEE INFOCOM, March 2000. 78 Приложение А Настройки и конфигурирование модели Рисунок А.1 – Подстройка метрик Рисунок А.2 – Таблица метрик 79 Рисунок А.3 – Выбор протокола маршрутизации Рисунок А.4 – Описание трафика 80 Рисунок А.5 – Выбор характеристик маршрутизатора 81 Рисунок А.6 – Выбор характеристик для отображения результатов моделирования