Коммутация сообщений, в отличие от коммутации каналов, предполагает хранение передаваемых сообщений в буферной памяти промежуточных узлов, находящихся на пути передачи, который прокладывается в каждом узле в соответствии с заданным алгоритмом маршрутизации (рис. 1.28). При этом не требуется предварительно устанавливать соединение между взаимодействующими абонентами.
Если абонент Ai желает передать сообщение С абоненту А2, то он, не устанавливая непосредственное соединение с А2, посылает сообщение к узлу связи, к которому он подключён. Там сообщение хранится в буфере узла в течение некоторого времени, необходимого для анализа заголовка, определения в соответствии с заданным алгоритмом маршрутизации следующего узла и, возможно, ожидания освобождения канала связи с этим узлом, если канал занят передачей ранее обработанного сообщения. Проходя таким образом через все узлы, находящиеся на пути передачи, сообщение достигает конечного абонента А2. Отметим ещё раз, что направление передачи сообщения, то есть его маршрут в сети, определяется только после поступления сообщения в тот или иной узел сети, а не устанавливается заранее, как это происходит при коммутации каналов.
Благодаря такой организации передачи данных между взаимодействующими абонентами, коммутация сообщений обладает следующими достоинствами по сравнению с коммутацией каналов:
• не требуется предварительное установление соединения, что существенно снижает накладные расходы, но не делает их нулевыми, поскольку имеются непроизводительные затраты времени в каждом узле на обработку заголовка и реализацию алгоритма маршрутизации; однако в целом эти затраты существенно меньше по сравнению с затратами на установление соединения при коммутации каналов;
• каналы связи на всем пути передачи могут иметь разные пропускные способности, поскольку буферирование сообщений в узлах сети позволяет сгладить различие в пропускных способностях входного и выходного каналов узла.
Недостатками коммутации сообщений являются:
• необходимость хранения передаваемых сообщений в промежуточных узлах, что требует значительной ёмкости буферной памяти, которая рассчитывается как произведение ёмкости одного буфера на максимально возможное количество сообщений, которые одновременно могут находиться в узле; ёмкость одного буфера должна быть рассчитана на сообщения максимальной длины, которая, например, для видео файлов может составлять несколько гигабайт, что делает ёмкость буферной памяти узла неоправданно большой; при этом коэффициент использования (загрузки) буферной памяти оказывается незначительным, поскольку большинство сообщений, занимая один буфер, будут иметь длину много меньше, чем ёмкость буфера;
• задержка в промежуточных узлах может оказаться значительной, особенно из-за большого времени ожидания освобождения выходного канала связи при большой загрузке сети, что приводит к увеличению времени доставки сообщений;
• монополизация среды передачи (канала связи) на длительный промежуток времени при передаче длинных сообщений приводит к неоправданно большим задержкам коротких сообщений в связи с ожиданием освобождения канала, длительность которого может многократно превышать время непосредственной передачи этих сообщений.