Коммутация каналов и пакетов
Адресация узлов в сети
По количеству адресуемых интерфейсов адреса можно классифицировать:
- уникальный адрес – используется дл идентификации отдельных интерфейсов;
- групповой адрес – идентифицирует сразу несколько интерфейсов;
- адрес произвольной рассылки [IPv6] – задает группу адресов, только данные, посланные по этому адресу, доставляются не всем узлам группы, а любому из них;
- широковещательный – информация адресуется всем узлам сети.
Адресное пространство – множество всех адресов, которые являются допустимыми в рамках некоторой системы адресации. Оно может иметь плоскую адресацию и иерархическую.
Коммутация
Итак, пусть компьютеры физически связаны между собой в соответствии с некоторой топологией и выбрана система адресации. Остается нерешенной самая важная проблема: каким способом передавать данные между конечными узлами? Особую сложность приобретает эта задача для неполносвязной топологии сети, когда обмен данными между произвольной парой конечных узлов (пользователей) должен идти через транзитные узлы.
Коммутация - соединение конечных узлов через сеть транзитных узлов. Последовательность узлов, лежащих на пути от отправителя к получателю, образует маршрут.
Например, в сети, показанной на рис. 2.14, узлы 2 и 4, непосредственно между собой не связанные, вынуждены передавать данные через транзитные узлы, в качестве которых могут выступить, например, узлы 1 и 5. Узел 1 должен выполнить передачу данных между своими интерфейсами А и В, а узел 5 — между интерфейсами F и В. В данном случае маршрутом является последовательность: 2-1-5-4, где 2 — узел-отправитель, / и 5 — транзитные узлы, 4 — узел-получатель.
Обобщенная задача коммутации
В самом общем виде задача коммутации может быть представлена в виде следующих взаимосвязанных частных задач:
1. Определение информационных потоков, для которых требуется прокладывать маршруты.
2. Маршрутизация потоков.
3. Продвижение потоков, то есть распознавание потоков и их локальная коммутация на каждом транзитном узле.
4. Мультиплексирование и демультиплексирование потоков.
Определение информационных потоков
Понятно, что через один транзитный узел может проходить несколько маршрутов, например, через узел 5 (см. рис. 2.14) проходят, как минимум, все данные, направляемые узлом 4 каждому из остальных узлов, а также все данные, поступающие в узлы 3,4 и 10. Транзитный узел должен уметь распознавать поступающие на него потоки данных, для того чтобы обеспечивать передачу каждого из них именно на тот свой интерфейс, который ведет к нужному узлу.
Информационный поток(поток данных) - непрерывная последовательность данных, объединенных набором общих признаков, выделяющих эти данные из общего сетевого трафика.
Например, как поток можно определить все данные, поступающие от одного компьютера; объединяющим признаком в данном случае служит адрес источника. Эти же данные можно представить как совокупность нескольких подпотоков, каждый из которых в качестве дифференцирующего признака имеет адрес назначения. Наконец, каждый из этих подпотоков, в свою очередь, можно разделить на более мелкие подпотоки, порожденные разными сетевыми приложениями — электронной почтой, программой копирования файлов, веб-сервером. Данные, образующие поток, могут быть представлены в виде различных информационных единиц данных — пакетов, кадров или ячеек.
При коммутации в качестве обязательного признака выступает адрес назначения данных.
Адреса источника и назначения определяют поток для пары соответствующих конечных узлов. Однако часто бывает полезно представить этот поток в виде нескольких подпотоков, причем для каждого из них может быть проложен свой особый маршрут.
Рассмотрим пример, когда на одной и той же паре конечных узлов выполняется несколько взаимодействующих приложений, каждое из которых предъявляет к сети свои особые требования. В таком случае, выбор маршрута должен осуществляться с учетом характера передаваемых данных. Например, для файлового сервера важно, чтобы передаваемые им большие объемы данных направлялись по каналам, обладающим высокой пропускной способностью, а для программной системы управления, которая посылает в сеть короткие сообщения, требующие обязательной и немедленной отработки, при выборе маршрута более важна надежность линии связи и минимальный уровень задержек на маршруте. Кроме того, даже для данных, предъявляющих к сети одинаковые требования, может прокладываться несколько маршрутов, чтобы за счет распараллеливания ускорить передачу данных.
Признаки потока могут иметь глобальное или локальное значение — в первом случае они однозначно определяют поток в пределах всей сети, а во втором — в пределах одного транзитного узла.
Метка потока — это особый тип признака. Она представляет собой некоторое число, которое несут все данные потока. Глобальная метка назначается данным потока и не меняет своего значения на всем протяжении его пути следования от узла источника до узла назначения, таким образом, она уникально определяет поток в пределах сети. В некоторых технологиях используются локальные метки потока, динамически меняющие свое значение при передаче данных от одного узла к другому.
Маршрутизация
Задача маршрутизации, в свою очередь, включает в себя две подзадачи:
- определение маршрута;
- оповещение сети о выбранном маршруте.
Определить маршрут означает выбрать последовательность транзитных узлов и их интерфейсов, через которые надо передавать данные, чтобы доставить их адресату.
В качестве критериев оптимальности выбора маршрута могут выступать, например, номинальная пропускная способность и загруженность каналов связи; задержки, вносимые каналами; количество промежуточных транзитных узлов; надежность каналов и транзитных узлов.
Маршрут может определяться эмпирически («вручную») администратором сети на основании различных часто не формализуемых соображений. Однако эмпирический подход к определению маршрутов малопригоден для большой сети со сложной топологией. В этом случае используются автоматические методы определения маршрутов. Для этого конечные узлы и другие устройства сети оснащаются специальными программными средствами, которые организуют взаимный обмен служебными сообщениями, позволяющий каждому узлу составить свое «представление» о сети. Затем на основе собранных данных программными методами определяются рациональные маршруты.
При выборе маршрута часто ограничиваются только информацией о топологии сети. Этот подход иллюстрирует рис. 2.15. Для передачи трафика между конечными узлами А существует два альтернативных маршрута: А-1-2-3-С и А-1-3-С. Если мы учитываем только топологию, то выбор очевиден — маршрут А-1-3-С, который имеет меньше транзитных узлов
Решение было найдено путем минимизации критерия, в качестве которого в данном призере выступала длина маршрута, измеренная количеством транзитных узлов. Однако, возможно, наш выбор был не самым лучшим. На рисунке показано, что каналы 1-2 и 2-3 обладают пропускной способностью 100 Мбит/с, а канал 1-3 — только 10 Мбит/с. Если хотим, чтобы наша информация передавалась по сети с максимально возможной скоростью, то нам следовало бы выбрать маршрут A- 1-2-3-C, хотя он и проходит через большее количество промежуточных узлов. То есть можно сказать, что маршрут А-1-2-3-С в данном случае оказывается «более коротким».
Абстрактный способ измерения степени близости между двумя объектами называется метрикой. Так, для измерения длины маршрута могут быть использованы разные метрики — количество транзитных узлов, как в предыдущем примере, линейная протяженность маршрута и даже его стоимость в денежном выражении.
Описанные подходы к выбору маршрутов не учитывают текущую степень загруженности каналов трафиком. Используя аналогию с автомобильным трафиком, можно сказать, что мы выбирали маршрут по карте, учитывая количество промежуточных городов и ширину дороги (аналог пропускной способности канала), отдавая предпочтение скоростным магистралям. Но мы не стали слушать радио или телевизионную программу, которая сообщает о текущих заторах на дорогах. Так что наше решение оказывается отнюдь не лучшим, когда по маршруту А-1-2-3-С уже передается большое количество потоков, а маршрут А-1-3-С практически свободен.
После того как маршрут определен (вручную или автоматически), надо оповестить о нем все устройства сети. Сообщение о маршруте должно нести каждому транзитному устройству примерно такую информацию: «каждый раз, когда в устройство поступят данные, относящиеся к потоку n, их следует передать для дальнейшего продвижения на интерфейс F». Каждое подобное сообщение о маршруте обрабатывается устройством, в результате создается новая запись в таблице коммутации. В этой таблице локальному или глобальному признаку (признакам) потока (например, метке, номеру входного интерфейса или адресу назначения) ставится в соответствие номер интерфейса, на который устройство должно передавать данные, относящиеся к этому потоку.
Таблица 2.1 является фрагментом таблицы коммутации, содержащий запись, сделанную на основании сообщения о необходимости передачи потока n на интерфейс F.
Таблица 2.1. Фрагмент таблицы коммутации
Признаки потока | Направление передачи данных (номер интерфейса и/или адрес следующего узла) |
п | F |
Передача информации транзитным устройствам о выбранных маршрутах, так же как и определение маршрута, может осуществляться вручную или автоматически. Администратор сети может зафиксировать маршрут, выполнив в ручном режиме конфигурирование устройства, например, жестко скоммутировав на длительное время определенные пары входных и выходных интерфейсов. Он может также по собственной инициативе внести запись о маршруте в таблицу коммутации.
Однако поскольку топология и состав информационных потоков могут меняться (отказы узлов или появление новых промежуточных узлов, изменение адресов или определение новых потоков), гибкое решение задач определения и задания маршрутов предполагает постоянный анализ состояния сети и обновление маршрутов и таблиц коммутации. В таких случаях задачи прокладки маршрутов, как правило, не могут быть решены без достаточно сложных программных и аппаратных средств.
Продвижение данных
Итак, пусть маршруты определены, записи о них сделаны в таблицах всех транзитных узлов, все готово к выполнению основной операции — передаче данных между абонентами (коммутации абонентов).
Для каждой пары абонентов эта операция может быть представлена несколькими (по числу транзитных узлов) локальными операциями коммутации. Прежде всего, отправитель должен выставить данные на тот свой интерфейс, с которого начинается найденный маршрут, а все транзитные узлы должны соответствующим образом выполнить «переброску» данных с одного своего интерфейса на другой, другими словами, выполнить коммутацию интерфейсов. Устройство, функциональным назначением которого является коммутация, называется коммутатором. На рис. 2.16 показан коммутатор, который переключает информационные потоки между четырьмя своими интерфейсами.
Однако прежде чем выполнить коммутацию, коммутатор должен распознать поток: Для этого поступившие данные анализируются на предмет наличия в них признаков какого-либо из потоков, заданных в таблице коммутации. Если произошло совпадение, то эти данные направляются на интерфейс, определенный для них в маршруте.
Коммутатором может быть как специализированное устройство, так и универсальный компьютер со встроенным программным механизмом коммутации, в этом случае коммутатор называется программным. Компьютер может совмещать функции коммутации данных с выполнением своих обычных функций как конечного узла. Однако во многих случаях более рациональным является решение, в соответствии с которым некоторые узлы в сети выделяются специально для коммутации. Эти узлы образуют коммутационную сеть, к которой подключаются все остальные. На рис. 2.17 показана коммутационная сеть, образованная из узлов 1, 5, 6 и 8, к которой подключаются конечные узлы 2, 3, 4,7,9 м 10, 11.
Мультиплексирование и демультиплексирование
Чтобы определить, на какой интерфейс следует передать поступившие данные, коммутатор должен выяснить, к какому потоку они относятся. Эта задача должна решаться независимо от того, поступает на вход коммутатора только один «чистый» поток или «смешанный» поток, являющийся результатом агрегирования нескольких потоков. В последнем случае к задаче распознавания потоков добавляется задача демультиплексирования.
Демультиплексирование — разделение суммарного агрегированного потока на несколько составляющих его потоков.
Мультиплексирование — образование из нескольких отдельных потоков общего агрегированного потока, который передается по одному физическому каналу связи.
Другими словами, мультиплексирование — это способ разделения одного имеющегося физического канала между несколькими одновременно протекающими сеансами связи между абонентами сети.
Операции мультиплексирования/демультиплексирования имеют такое же важное значение в любой сети, как и операции коммутации, потому что без них пришлось бы для каждого потока предусматривать отдельный канал, что привело бы к большому количеству параллельных связей в сети и свело бы «на нет» все преимущества неполносвязной сети.
На рис. 2.18 показан фрагмент сети, состоящий из трех коммутаторов. Коммутатор 1 имеет четыре сетевых интерфейса. На интерфейс 1 поступают данные с двух интерфейсов — 3 и 4. Их надо передать в общий физический канал, то есть выполнить операцию мультиплексирования.
Одним из основных способов мультиплексирования потоков является разделение времени. При этом способе каждый поток время от времени (с фиксированным или случайным периодом) получает физический канал в полное свое распоряжение и передает по нему свои данные. Распространено также частотное разделение канала, когда каждый поток передает данные в выделенном ему частотном диапазоне.
Технология мультиплексирования должна позволять получателю такого суммарного потока выполнять обратную операцию — разделение (демультиплексирование) данных на слагаемые потоки. На интерфейсе 3 коммутатор выполняет демультиплексирование потока на три составляющих его подпотока. Один из них он передает на интерфейс 1, другой — на интерфейс 2, третий — на интерфейс 4.
Вообще говоря, на каждом интерфейсе могут одновременно выполняться обе функции — мультиплексирование и демультиплексирование.
Частный случай коммутатора, у которого все входящие информационные потоки коммутируются на один выходной интерфейс, где они мультиплексируются в один агрегированный поток, называется мультиплексором. Коммутатор, который имеет один входной интерфейс и несколько выходных, называется демультиплексором (рис. 2.19).
Разделяемая среда передачи данных
Еще одним параметром разделяемого канала связи является количество подключенных к нему узлов. В приведенных выше примерах к каждому каналу связи подключались только два взаимодействующих узла, точнее — два интерфейса (рис. 2.18, а и б). В телекоммуникационных сетях используется и другой вид подключения, когда к одному каналу подключается несколько интерфейсов (рис. 2.18, в). Такое множественное подключение интерфейсов порождает уже расматривавшуюся выше топологию «общая шина», иногда называемую также шлейфовым подключением. Во всех этих случаях возникает проблема организации совместного использования канала несколькими интерфейсами. Возможны различные варианты разделения каналов связи между интерфейсами. На рис. 2.18, а коммутаторы К1 и К2 связаны двумя однонаправленными физическими каналами, то есть такими, по которым информация может передаваться только в одном направлении. В этом случае передающий интерфейс является активным, и физическая среда передачи находится под его управлением. Пассивный интерфейс только принимает данные. Проблема разделения канала между интерфейсами здесь отсутствует. (Заметим, однако, что задача мультиплексирования потоков данных в канале при этом сохраняется.) На практике два однонаправленных канала, реализующие в целом дуплексную связь между двумя устройствами, обычно рассматриваются как один дуплексный канал, а пара интерфейсов одного устройства — как передающая и принимающая части одного и того же интерфейса. На рис. 2.18, б коммутаторы К1 и К2 связаны каналом, который может передавать данные в обе стороны, но только попеременно. При этом возникает необходимость в механизме сторонизации доступа интерфейсов К1 и К2 к такому каналу. Обобщением этого варианта является случай, показанный на рис. 2.18, в, когда к каналу связи подключаются несколько (больше двух) интерфейсов, образуя общую шину.
Совместно используемый несколькими интерфейсами физический канал называют разделяемым (shared). Часто применяют также термин разделяемая среда передачи данных1. Разделяемые каналы связи требуются не только для связей типа коммутатор-коммутатор, но и для связей компьютер-коммутатор и компьютер-компьютер.
Существуют различные способы решения задачи организации совместного доступа к разделяемым линиям связи. Одни из них подразумевают централизованный подход, когда доступом управляет специальное устройство — арбитр, другие — децентрализованный. Внутри компьютера проблемы разделения линий связи между различными модулями также существуют — примером является доступ к системной шине, которым управляет либо процессор, либо специальный арбитр шины. В сетях организация совместного доступа к линиям связи имеет свою специфику из-за существенно большего времени распространения сигналов по линиям связи, поэтому процедуры согласования доступа к линии связи могут занимать слишком большой промежуток времени и приводить к значительным потерям производительности сети. Именно по этой причине разделяемые между интерфейсами среды практически не используются в глобальных сетях.
В локальных же сетях разделяемые среды используются достаточно часто благодаря простоте и экономичности их реализации. Этот подход, в частности, применяется в доминирующей сегодня в локальных сетях технологии Ethernet, а также в популярных в прошлом технологиях Token Ring и FDDI.
Однако в последние годы стала преобладать другая тенденция — отказ от разделяемых сред передачи данных и в локальных сетях. Это связано с тем, что за достигаемое таким образом удешевление сети приходится расплачиваться производительностью.
Сеть с разделяемой средой при большом количестве узлов будет работать всегда медленнее, чем аналогичная сеть с индивидуальными двухточечными линиями связями, так как пропускная способность линии связи при ее совместном использовании делится между несколькими компьютерами сети.
И, тем не менее, не только в классических, но и в некоторых совсем новых технологиях, разработанных для локальных сетей, сохраняется режим разделяемых линий связи. Например, разработчики технологии Gigabit Ethernet, принятой в 1998 году в качестве нового стандарта, включили режим разделения среды в свои спецификации наряду с режимом работы по индивидуальным линиям связи.
Коммутация каналов и пакетов
Коммутация каналов
Обмен данными начинается с предварительного установления соединения. Прежде чем отправить данные в сеть абонент A посылает запрос в коммутационную сеть, в котором указывается адрес абонента B. Цель посылки запроса – установить соединение абонентов A и B информационным каналом. Для создания информационного канала запрос должен пройти через последовательность коммутаторов, лежащих на пути от A к B и удостовериться, что все необходимые отрезки пути в данный момент свободны. Узел B должен быть свободным. Чтобы зафиксировать соединение, в каждом из коммутаторов вдоль пути от A до B запоминается информация о том, что соответствующая линия связи выделена соединению абонентов A и B.
Абонент не может передавать данные в сеть со скоростью, превышающей пропускную способность линии, но и сеть не может снижать скорость передачи пользовательских данных. Т.о. сеть будет доставлять данные с низким и постоянным уровнем задержки.
По зарезервированному каналу нельзя проложить новую линию связи до полного его освобождения.
Мультиплексирование позволяет одновременно передавать через каждый физический канал трафик нескольких логический соединений. Пропускная способность каждой линии связи делится на равные части, образуя одинаковое число подканалов. Запрос на установление логического соединения, переданного абонентом перед началом передачи, резервирует не целиком линии связи, а только их подканалы. Таким образом, соединение устанавливается не на уровне связи, а на уровне подканалов.
В случае недостаточной пропускной способности одного подканала используется несколько подканалов.
Коммутация пакетов
Все передаваемые данные в исходном узле разбиваются на небольшие части (пакеты, кадры, ячейки). Каждый пакет снабжается заголовком, в котором указывается адрес назначения. Кроме пакета – концевик имеется, для проверки контрольной суммы. Т.о. пакеты поступают в сеть без предварительного резервирования линий связи и с нефиксированной наперед заданной скоростью.
При пакетной коммутации коммутаторы имеют внутреннюю буферную память для хранения пакетов.
Методы продвижения пакетов
Решение о том, на какой интерфейс передать пришедший пакет принимается на основании одного из трех методов продвижения пакетов:
1 – дейтограммная - соединение не устанавливается, и все передаваемые пакеты продвигаются независимо друг от друга от узла к узлу. Никакая информация об уже переданных пакетах сетью не хранится. Каждый пакет – независимая единица – дейтограмма.
2 – передача с установлением логического соединения – распадается на сеансы или логические соединения. Процедура обработки определяется не для отдельного пакета, а для множества пакетов в рамках каждого соединения. Для того чтобы реализовать дифференцированное обслуживание пакетов, сеть должна присвоить каждому соединению идентификатор и запомнить параметры соединения для пакетов каждого соединения.
3 - передача с установлением виртуального канала – если в число параметров соединения входит маршрут, то все пакеты, передаваемые в рамках соединения должны проходить по указанному пути. Такой заранее проложенный фиксированный маршрут – виртуальный канал.