Способы коммутации. Под коммутацией данных понимается их передача, при которой канал передачи данных может использоваться попеременно для обмена информацией между различными пунктами информационной сети в отличие от связи через некоммутируемые каналы, обычно закрепленные за определенными абонентами.
Различают следующие способы коммутации данных:
- коммутация каналов - осуществляется соединение ООД двух или более станций данных и обеспечивается монопольное использование канала передачи данных до тех пор, пока соединение не будет разомкнуто;
- коммутация сообщений - характеризуется тем, что создание физического канала между оконечными узлами необязательно и пересылка сообщений происходит без нарушения их целостности; вместо физического канала имеется виртуальный канал, состоящий из физических участков, и между участками возможна буферизация сообщения;
- коммутация пакетов - сообщение передается по виртуальному каналу, но оно разделяется на пакеты, при этом канал передачи данных занят только во время передачи пакета (без нарушения его целостности) и по ее завершении освобождается для передачи других пакетов.
Коммутация каналов. Коммутация каналов может быть пространственной и временной.
Пространственный коммутатор размера N*M представляет собой сетку (матрицу), в которой N входов подключены к горизонтальным шинам, а M выходов - к вертикальным (рис. 3.2).
Рисунок 3.2 – Матрица пространственного коммутатора
В узлах сетки имеются коммутирующие элементы, причем в каждом столбце сетки может быть открыто не более чем по одному элементу. Если N < M, то коммутатор может обеспечить соединение каждого входа с не менее чем одним выходом; в противном случае коммутатор называется блокирующим, т.е. не обеспечивающим соединения любого входа с одним из выходов. Обычно применяются коммутаторы с равным числом входов и выходов N*N.
Недостаток рассмотренной схемы - большое число коммутирующих элементов в квадратной матрице, равное N2. Для устранения этого недостатка применяют многоступенные коммутаторы. Например, схема трехступенного коммутатора 6*6 имеет вид, представленный на рис. 3.3.
Достаточным условием отсутствия блокировок входов является равенство k > 2*n-1. Здесь k - число блоков в промежуточном каскаде, n = N/p; p - число блоков во входном каскаде. В приведенной на рис. 1.3 схеме это условие не выполнено, поэтому блокировки возможны. Например, если требуется выполнить соединение a1-d1, но ранее скоммутированы соединения a2-b2-c4-d3, a3-b3-c1-d2, то для a1 доступны шины b1,с3 и с5, однако они не ведут к d1.
В многоступенных коммутаторах существенно уменьшено число переключательных элементов за счет некоторого увеличения задержки. Так, при замене одноступенного коммутатора 1000*1000 трехступенным с n = 22 и k = 43 число переключателей уменьшается с 10 6 до 2*46*22*43+43*46*46, т.е. примерно до 0,186*10 6 .
Рисунок 3.3 – Схема трехступенного пространственного коммутатора
Временной коммутатор построен на основе буферной памяти, запись производится в ее ячейки последовательным опросом входов, а коммутация осуществляется благодаря считыванию данных на выходы из нужных ячеек памяти. При этом происходит задержка на время одного цикла "запись-чтение". В настоящее время преимущественно используются временная или смешанная коммутация.
Коммутация пакетов.Во многих случаях наиболее эффективной оказывается коммутация пакетов. Во-первых, ускоряется передача данных в сетях сложной конфигурации за счет того, что возможна параллельная передача пакетов одного сообщения на разных участках сети; во-вторых, при появлении ошибки требуется повторная передача короткого пакета, а не всего длинного сообщения. Кроме того, ограничение сверху на размер пакета позволяет обойтись меньшим объемом буферной памяти в промежуточных узлах на маршрутах передачи данных в сети.
В сетях коммутации пакетов различают два режима работы: режим виртуальных каналов (другое название - связь с установлением соединения) и дейтаграммный режим (связь без установления соединения).
В режиме виртуальных каналов пакеты одного сообщения передаются в естественном порядке по устанавливаемому маршруту. При этом в отличие от коммутации каналов линии связи могут разделяться многими сообщениями, когда попеременно по каналу передаются пакеты разных сообщений (это так называемый режим временного мультиплексирования, иначе TDM - Time Division Method), или задерживаться в промежуточных буферах. Предусматривается контроль правильности передачи данных путем посылки от получателя к отправителю подтверждающего сообщения - положительной квитанции. Этот контроль возможен как во всех промежуточных узлах маршрута, так и только в конечном узле. Он может осуществляться старт-стопным способом, при котором отправитель до тех пор не передает следующий пакет, пока не получит подтверждения о правильной передаче предыдущего пакета, или способом передачи "в окне". Окно может включать N пакетов, и возможны задержки в получении подтверждений на протяжении окна. Так, если произошла ошибка при передаче, т.е. отправитель получает отрицательную квитанцию относительно пакета с номером K, то нужна повторная передача и она начинается с пакета K.
Например, в сетях можно использовать переменный размер окна. Так, в соответствии с рекомендацией документа RFC-793 время ожидания подтверждений вычисляется по формуле
T ож = 2*Tср,
где Tср := 0,9*Tср + 0,1*Ti, Tср - усредненное значение времени прохода пакета до получателя и обратно, Ti - результат очередного измерения этого времени.
В дейтаграммном режиме сообщение делится на дейтаграммы. Дейтаграмма - часть информации, передаваемая независимо от других частей одного и того же сообщения в вычислительных сетях с коммутацией пакетов. Дейтаграммы одного и того же сообщения могут передаваться в сети по разным маршрутам и поступать к адресату в произвольной последовательности, что может послужить причиной блокировок сети. На внутренних участках маршрута контроль правильности передачи не предусмотрен и надежность связи обеспечивается лишь контролем на оконечном узле.
Блокировкой сети в дейтаграммном режиме называется такая ситуация, когда в буферную память узла вычислительной сети поступило столько пакетов разных сообщений, что эта память оказывается полностью занятой. Следовательно, она не может принимать другие пакеты и не может освободиться от уже принятых, так как это возможно только после поступления всех дейтаграмм сообщения.