Важная особенность коммутации каналов: необходимо сформировать сквозной путь между абонентами перед отправкой данных. Между окончанием набора номера и тем, когда зазвонит телефон, может пройти 10 с (или больше — при междугородних или международных разговорах). В это время телефонная система ищет путь, как показано на илл. 2.37 (а). Обратите внимание, что еще до начала передачи данных сигнал запроса звонка должен пройти весь путь до точки назначения, а его получение должно быть подтверждено. Во многих компьютерных приложениях (например, при проверке наличия средств на карте в POS-системах) длительное ожидание нежелательно.
Илл. 2.37. Хронометраж событий при: (а) коммутации каналов; (б) коммутации пакетов
Как только путь между участниками разговора установлен, задержка данных зависит только от скорости распространения электромагнитного сигнала: примерно 1000 км за 5 мс. Кроме того, благодаря выделенному маршруту можно не бояться перегруженности — после соединения вы уже не услышите сигнала «занято».
Коммутация пакетов
Альтернатива коммутации каналов — коммутация пакетов (packet switching), показанная на илл. 2.36 (б) и описанная в главе 1. При использовании этой технологии пакеты отправляются сразу же — заранее формировать выделенный путь не требуется (в отличие от коммутации каналов). Коммутация пакетов напоминает отправку нескольких писем по почте: все они передаются независимо друг от друга. Перемещение каждого отдельного пакета до пункта назначения производят маршрутизаторы на основе передачи с промежуточным хранением данных. Данная процедура отличается от коммутации каналов, при которой после установления соединения резервируется полоса пропускания на всем протяжении пути от отправителя к получателю. Все данные в канале следуют по этому пути строго в порядке отправления. При коммутации пакетов фиксированного пути не существует. А значит, пакеты могут передаваться по разным маршрутам в зависимости от сложившихся в сети условий на момент их отправки и могут доставляться в произвольном порядке.
Сети с коммутацией пакетов ограничивают максимальный размер пакета, гарантируя тем самым, что ни один пользователь не сможет надолго (например, на большое число миллисекунд) полностью занять линию передачи. Таким образом, сети с коммутацией пакетов могут работать с интерактивным трафиком. Кроме того, это снижает задержку: первый пакет длинного сообщения передается дальше до того, как полностью прибудет второй. Но задержка пакета в памяти маршрутизатора перед дальнейшей отправкой (связанная с буферизацией данных) превышает задержку при коммутации каналов, где биты непрерывно движутся по проводам, и ничего не сохраняется для последующей отправки.
Коммутация пакетов и каналов различается не только этим. Поскольку при коммутации пакетов не резервируется полоса пропускания, пакетам иногда приходится ждать дальнейшей передачи. В результате при одновременной отправке большого числа пакетов возникает задержка в очереди (queueing delay) и перегруженность сети. С другой стороны, нет риска услышать сигнал «занято» и потерять возможность использовать сеть. Таким образом, при коммутации каналов сеть перегружается во время установки соединения, а при коммутации пакетов — во время отправки данных.
Но если канал зарезервирован для конкретного пользователя, а трафика нет, то полоса пропускания простаивает, хотя могла бы использоваться для другого трафика. При коммутации пакетов такого не бывает, а значит, этот метод эффективнее с точки зрения системы. Чтобы увидеть принципиальную разницу между коммутацией пакетов и коммутацией каналов, необходимо осознать следующий компромисс. Либо мы получаем гарантированный сервис с напрасной тратой ресурсов, либо — негарантированный, но без таковой. Коммутация пакетов устойчивее к сбоям, чем коммутация каналов. На самом деле именно поэтому она и была создана. Когда отказывает сетевой коммутатор, все подключенные к нему каналы обрываются и их нельзя использовать для передачи. При коммутации пакетов можно перенаправить пакеты в обход неработающих сетевых коммутаторов.
Еще одно различие между коммутацией пакетов и каналов — тарификация трафика. При коммутации каналов (например, для голосовых звонков по телефону через PSTN) трафик тарифицируется в зависимости от расстояния и времени. В мобильной связи расстояние обычно не имеет значения (разве что при международных звонках), а время играет лишь второстепенную роль. Например, тарифный план на 2000 бесплатных минут обходится дороже плана с 1000 минут и пониженным тарифом по ночам или выходным. При коммутации пакетов, как в стационарных, так и в мобильных сетях, длительность соединения роли не играет и основным фактором является объем трафика. С домашних пользователей в США и Европе ISP обычно взимают ежемесячную абонентскую плату (так проще для ISP и понятнее для клиентов). В некоторых развивающихся странах тарификация до сих пор происходит на основе объема трафика: пользователи покупают «пакет данных» определенного размера, который используется на протяжении цикла тарификации. При этом в определенное время дня или по некоторым направлениям трафик может быть бесплатным либо не входить в ежедневную квоту. Такие сервисы иногда называют сервисами с нулевой ставкой (zero-rated services). В целом ISP в опорной сети интернета тарифицируют услуги исходя из объемов трафика. В основе типовой модели тарификации лежит 95-й процентиль пятиминутных измерений. ISP измеряет трафик, прошедший через конкретное соединение за последние 5 минут; 30-дневный расчетный период включает 8640 подобных 5-минутных интервалов; ISP выставляет счет, исходя из 95-го процентиля этих измерений. Эту методику часто называют тарификацией 95-го процентиля (95th percentile billing).