Коммутация (вычислительные сети)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 21:00, 2 февраля 2015.


Общие сведения

Коммута́ция — процесс соединения абонентов коммуникационной сети через транзитные узлы.

Коммуникационные сети должны обеспечивать связь своих абонентов между собой. Абонентами могут выступать ЭВМ, сегменты локальных сетей, факс-аппараты или телефонные собеседники. Как правило, в сетях общего доступа невозможно предоставить каждой паре абонентов собственную физическую линию связи, которой они могли бы монопольно «владеть» и использовать в любое время. Поэтому в сети всегда применяется какой-либо способ коммутации абонентов, который обеспечивает разделение имеющихся физических каналов между несколькими сеансами связи и между абонентами сети.

Каждый абонент соединен с коммутаторами индивидуальной линией связи, закрепленной за этим абонентом. Линии связи протянутые между коммутаторами разделяются несколькими абонентами, то есть используются совместно.

Общий термин “коммутация ”применяется для четырех различных технологий: Конфигурационной коммутации; Коммутации кадров; Коммутации ячеек; Преобразования между кадрами и ячейками.

В основе конфигурационной коммутации лежит нахождение соответствия между конкретным портом коммутатора и определенным сегментом сети. Это соответствие может программно настраиваться при подключении или перемещении пользователей в сети.

При коммутации кадров используются кадров сетей Ethernet, Token Ring и т.д. Кадр при поступлении в сеть обрабатывается первым коммутатором на его пути. Под термином обработка понимается вся совокупность действий, производимых коммутатором для определения своего выходного порта, на который необходимо направить данный кадр. После обработки он передается далее по сети следующему коммутатору или непосредственно получателю.

В технологии АТМ также применяется коммутация, но в ней единицы коммутации носят название ячеек. Преобразование между кадрами и ячейками позволяет станциям в сети Ethernet, Token Ring и т.д. непосредственно взаимодействовать с устройствами АТМ. Эта технология применяется при эмуляции локальной сети.

Виды коммутации

Существует три принципиально различные схемы коммутации абонентов в сетях:

  • Коммутация каналов (КК, circuit switching) — организация составного канала через несколько транзитных узлов из нескольких последовательно «соединённых» каналов на время передачи сообщения (оперативная коммутация) или на более длительный срок (постоянная/долговременная коммутация — время коммутации определяется административно).
  • Коммутация сообщений (КС, message switching) — разбиение информации на сообщения, которые передаются последовательно к ближайшему транзитному узлу, который приняв сообщение, запоминает его и передаёт далее сам таким же образом. Получается нечто вроде конвейера.
  • Коммутация пакетов (КП, packet switching) — разбиение сообщения на «пакеты», которые передаются отдельно. Разница между сообщением и пакетом: размер пакета ограничен технически, сообщения — логически. При этом, если маршрут движения пакетов между узлами определён заранее, говорят о виртуальном канале (с установлением соединения). Пример: коммутация IP-пакетов. Если же для каждого пакета задача нахождения пути решается заново, говорят о дэйтаграммном (без установления соединения) способе пакетной коммутации.
  • Коммутация ячеек (КЯ, cell switching) — то же, что и коммутация пакетов, но при коммутации ячеек пакеты всегда имеют фиксированный размер.

Принцип работы Hub'а

Сетевой концентратор или хаб (жарг. от англ. hub — центр деятельности) — сетевое устройство, предназначенное для объединения нескольких устройств Ethernet в общий сегмент сети. Устройства подключаются при помощи витой пары, коаксиального кабеля или оптоволокна.

Термин концентратор (хаб) применим также к другим технологиям передачи данных: USB, FireWire и пр.

В настоящее время хабы почти не выпускаются — им на смену пришли сетевые коммутаторы (свитчи), выделяющие каждое подключённое устройство в отдельный сегмент. Сетевые коммутаторы ошибочно называют «интеллектуальными концентраторами».

Концентратор работает на физическом уровне сетевой модели OSI, повторяет приходящий на один порт сигнал на все активные порты. В случае поступления сигнала на два и более порта одновременно возникает коллизия, и передаваемые кадры данных теряются. Таким образом, все подключённые к концентратору устройства находятся в одном домене коллизий. Концентраторы всегда работают в режиме полудуплекса, все подключённые устройства Ethernet разделяют между собой предоставляемую полосу доступа.

Многие модели концентраторов имеют простейшую защиту от излишнего количества коллизий, возникающих по причине одного из подключённых устройств. В этом случае они могут изолировать порт от общей среды передачи. По этой причине, сетевые сегменты, основанные на витой паре, гораздо стабильнее в работе сегментов на коаксиальном кабеле, поскольку в первом случае каждое устройство может быть изолировано концентратором от общей среды, а во втором случае несколько устройств подключаются при помощи одного сегмента кабеля, и, в случае большого количества коллизий, концентратор может изолировать лишь весь сегмент.

В последнее время концентраторы используются достаточно редко, вместо них получили распространение коммутаторы — устройства, работающие на канальном уровне модели OSI и повышающие производительность сети путём логического выделения каждого подключённого устройства в отдельный сегмент, домен коллизии.

Принцип работы Switch'а (коммутатора)

Сетевой коммутатор или свитч (жарг. от англ. switch — переключатель) — устройство, предназначенное для соединения нескольких узлов компьютерной сети в пределах одного сегмента сети.

Коммутатор работает на канальном уровне модели OSI, и потому в общем случае может только объединять узлы одной сети по их MAC-адресам. Коммутаторы были разработаны с использованием мостовых технологий и часто рассматриваются как многопортовые мосты.

Коммутатор хранит в памяти таблицу коммутации (хранящуюся в ассоциативной памяти), в которой указывается соответствие MAC-адреса узла порту коммутатора. При включении коммутатора эта таблица пуста, и он работает в режиме обучения. В этом режиме поступающие на какой-либо порт данные передаются на все остальные порты коммутатора. При этом коммутатор анализирует кадры (фреймы) и, определив MAC-адрес хоста-отправителя, заносит его в таблицу. Впоследствии, если на один из портов коммутатора поступит кадр, предназначенный для хоста, MAC-адрес которого уже есть в таблице, то этот кадр будет передан только через порт, указанный в таблице. Если MAC-адрес хоста-получателя не ассоциирован с каким-либо портом коммутатора, то кадр будет отправлен на все порты. Со временем коммутатор строит полную таблицу для всех своих портов, и в результате трафик локализуется. Стоит отметить малую латентность (задержку) и высокую скорость пересылки на каждом порту интерфейса.

Режимы коммутации

Существует три способа коммутации. Каждый из них — это комбинация таких параметров, как время ожидания и надёжность передачи.

  1. С промежуточным хранением (Store and Forward). Коммутатор читает всю информацию в кадре, проверяет его на отсутствие ошибок, выбирает порт коммутации и после этого посылает в него кадр.
  2. Сквозной (cut-through). Коммутатор считывает в кадре только адрес назначения и после выполняет коммутацию. Этот режим уменьшает задержки при передаче, но в нём нет метода обнаружения ошибок.
  3. Бесфрагментный (fragment-free) или гибридный. Этот режим является модификацией сквозного режима. Передача осуществляется после фильтрации фрагментов коллизий (кадр размером 64 байта обрабатываются по технологии store-and-forward, остальные по технологии cut-through).

Латентность, связанная с «принятием коммутатором решения», добавляется к времени, которое требуется кадру для входа на порт коммутатора и выхода с него и вместе с ним определяет общую задержку коммутатора.

Принцип работы Router'а (маршрутизатора)

Маршрутиза́тор или роутер, рутер (от англ. router), — сетевое устройство, на основании информации о топологии сети и определённых правил принимающее решения о пересылке пакетов сетевого уровня (уровень 3 модели OSI) между различными сегментами сети.

Обычно маршрутизатор использует адрес получателя, указанный в пакетах данных, и определяет по таблице маршрутизации путь, по которому следует передать данные. Если в таблице маршрутизации для адреса нет описанного маршрута, пакет отбрасывается.

Существуют и другие способы определения маршрута пересылки пакетов, когда, например, используется адрес отправителя, используемые протоколы верхних уровней и другая информация, содержащаяся в заголовках пакетов сетевого уровня. Нередко маршрутизаторы могут осуществлять трансляцию адресов отправителя и получателя, фильтрацию транзитного потока данных на основе определённых правил с целью ограничения доступа, шифрование/дешифрование передаваемых данных и т.д.

Таблица маршрутизации содержит информацию, на основе которой маршрутизатор принимает решение о дальнейшей пересылке пакетов. Таблица состоит из некоторого числа записей — маршрутов, в каждой из которых содержится адрес сети получателя, адрес следующего узла, которому следует передавать пакеты и некоторый вес записи — метрика. Метрики записей в таблице играют роль в вычислении кратчайших маршрутов к различным получателям. В зависимости от модели маршрутизатора и используемых протоколов маршрутизации, в таблице может содержаться некоторая дополнительная служебная информация. Например:

192.168.64.0/16 [110/49] via 192.168.1.2, 00:34:34, FastEthernet0/0.1
где 192.168.64.0/16 — сеть назначения,
   110/- административное расстояние 
   /49 — метрика маршрута,
   192.168.1.2 — адрес следующего маршрутизатора, которому следует
                 передавать пакеты для сети 192.168.64.0/16,
   00:34:34 — время, в течение которого был известен этот маршрут,
   FastEthernet0/0.1 — интерфейс маршрутизатора, через который можно
                 достичь «соседа» 192.168.1.2.

Таблица маршрутизации может составляться двумя способами:

  • статическая маршрутизация — когда записи в таблице вводятся и изменяются вручную. Такой способ требует вмешательства администратора каждый раз, когда происходят изменения в топологии сети. С другой стороны, он является наиболее стабильным и требующим минимума аппаратных ресурсов маршрутизатора для обслуживания таблицы.
  • динамическая маршрутизация — когда записи в таблице обновляются автоматически при помощи одного или нескольких протоколов маршрутизации — RIP, OSPF, IGRP, EIGRP, IS-IS, BGP, и др. Кроме того, маршрутизатор строит таблицу оптимальных путей к сетям назначения на основе различных критериев — количества промежуточных узлов, пропускной способности каналов, задержки передачи данных и т. п. Критерии вычисления оптимальных маршрутов чаще всего зависят от протокола маршрутизации, а также задаются конфигурацией маршрутизатора. Такой способ построения таблицы позволяет автоматически держать таблицу маршрутизации в актуальном состоянии и вычислять оптимальные маршруты на основе текущей топологии сети. Однако динамическая маршрутизация оказывает дополнительную нагрузку на устройства, а высокая нестабильность сети может приводить к ситуациям, когда маршрутизаторы не успевают синхронизировать свои таблицы, что приводит к противоречивым сведениям о топологии сети в различных её частях и потере передаваемых данных.

Зачастую для построения таблиц маршрутизации используют теорию графов.