В первые годы существования телефонной связи подключение осуществлял оператор, вручную вставляя гибкий кабель во входной и выходной разъемы. С изобретением автоматического оборудования для коммутации каналов связана забавная история. Его создал в XIX веке владелец похоронного бюро Элмон Б. Строуджер (Almon B. Strowger) из штата Миссури. После изобретения телефона в случае чьей-нибудь смерти люди звонили на коммутатор и говорили телефонистке: «Соедините меня, пожалуйста, с похоронным бюро». К несчастью для мистера Строуджера, телефонистка в их городке была женой владельца другого похоронного бюро. Стало ясно, что либо он придумает автоматический коммутатор, либо разорится. И он выбрал первый вариант. В течение почти сотни лет после этого по всему миру применялось оборудование для коммутации каналов, известное под названием декадно-шагового искателя Строуджера (Strowger gear). История умалчивает о том, не стала ли потерявшая работу телефонистка оператором справочного бюро, отвечая на вопросы вроде: «Каков номер телефона похоронного бюро?»
Приведенная на илл. 2.36 (а) модель, конечно, сильно упрощена, поскольку физический путь между двумя телефонами может включать микроволновые или оптоволоконные каналы связи, сочетающие путем мультиплексирования тысячи звонков. Тем не менее основная идея все та же: во время звонка устанавливается соединение и возникает выделенный путь между абонентами, который поддерживается до завершения звонка.
Важная особенность коммутации каналов: необходимо сформировать сквозной путь между абонентами перед отправкой данных. Между окончанием набора номера и тем, когда зазвонит телефон, может пройти 10 с (или больше — при междугородних или международных разговорах). В это время телефонная система ищет путь, как показано на илл. 2.37 (а). Обратите внимание, что еще до начала передачи данных сигнал запроса звонка должен пройти весь путь до точки назначения, а его получение должно быть подтверждено. Во многих компьютерных приложениях (например, при проверке наличия средств на карте в POS-системах) длительное ожидание нежелательно.
Илл. 2.37. Хронометраж событий при: (а) коммутации каналов; (б) коммутации пакетов
Как только путь между участниками разговора установлен, задержка данных зависит только от скорости распространения электромагнитного сигнала: примерно 1000 км за 5 мс. Кроме того, благодаря выделенному маршруту можно не бояться перегруженности — после соединения вы уже не услышите сигнала «занято».
Коммутация пакетов
Альтернатива коммутации каналов — коммутация пакетов (packet switching), показанная на илл. 2.36 (б) и описанная в главе 1. При использовании этой технологии пакеты отправляются сразу же — заранее формировать выделенный путь не требуется (в отличие от коммутации каналов). Коммутация пакетов напоминает отправку нескольких писем по почте: все они передаются независимо друг от друга. Перемещение каждого отдельного пакета до пункта назначения производят маршрутизаторы на основе передачи с промежуточным хранением данных. Данная процедура отличается от коммутации каналов, при которой после установления соединения резервируется полоса пропускания на всем протяжении пути от отправителя к получателю. Все данные в канале следуют по этому пути строго в порядке отправления. При коммутации пакетов фиксированного пути не существует. А значит, пакеты могут передаваться по разным маршрутам в зависимости от сложившихся в сети условий на момент их отправки и могут доставляться в произвольном порядке.
Сети с коммутацией пакетов ограничивают максимальный размер пакета, гарантируя тем самым, что ни один пользователь не сможет надолго (например, на большое число миллисекунд) полностью занять линию передачи. Таким образом, сети с коммутацией пакетов могут работать с интерактивным трафиком. Кроме того, это снижает задержку: первый пакет длинного сообщения передается дальше до того, как полностью прибудет второй. Но задержка пакета в памяти маршрутизатора перед дальнейшей отправкой (связанная с буферизацией данных) превышает задержку при коммутации каналов, где биты непрерывно движутся по проводам, и ничего не сохраняется для последующей отправки.
Коммутация пакетов и каналов различается не только этим. Поскольку при коммутации пакетов не резервируется полоса пропускания, пакетам иногда приходится ждать дальнейшей передачи. В результате при одновременной отправке большого числа пакетов возникает задержка в очереди (queueing delay) и перегруженность сети. С другой стороны, нет риска услышать сигнал «занято» и потерять возможность использовать сеть. Таким образом, при коммутации каналов сеть перегружается во время установки соединения, а при коммутации пакетов — во время отправки данных.