Принципы синхронизации в АТМ
В любой пакетной системе приемник должен иметь возможность определять границы пакета. Например, в системе HDLC, где разрешается прохождение кадров переменной длины, границы кадра задаются с помощью флагов. Для гарантирования того, чтобы не произошло ложное обнаружение границ, вводится процедура бит-стаффинга. Такую же систему можно было бы включить и в сеть АТМ, но на высоких скоростях процедура бит-стаффинга нежелательна. Однако, ввиду постоянства длины селлов, возможны другие механизмы определения границ. Было предложено несколько вариантов такого алгоритма; мы рассмотрим тот, который был принят МККТТ.
Рис. 5. Диаграмма состояний для определения границ селла
На рис. 5 представлена диаграмма состояний приемника в смысле выявления границ селла. Устройство может находиться в одном из трех состояний - синхронизм, предсинхронизм и рассинхронизм. В состоянии рассинхронизма система находится в первоначальный момент времени, когда процесс синхронизации еще не начался, и тогда, когда синхронизм потерян. В этом состоянии приемник просматривает канал на предмет обнаружения правильного селла. Когда он обнаружен, система переходит в состояние предсинхронизма и находится в нем до тех пор, пока не будет выявлено определенное количество правильно принятых подряд селлов, после чего считается, что синхронизм установлен. Переход в состояние рассинхронизма из синхронного состояния происходит в момент, когда границу селла не удалось выявить несколько раз подряд, после чего процесс начинается заново. Как же происходит выявление границы селла? Этот процесс основан на том, что в составе заголовка каждого селла присутствует проверочный байт, с помощью которого осуществляется защита от ошибок бит заголовка, о чем уже говорилось выше. В состоянии рассинхронизма система просматривает входной поток бит за битом, байт за байтом до тех пор, пока не будет обнаружено совпадение проверочной последовательности. Дело в том, что заголовок селла состоит из пяти байт, последний из которых содержит проверочную последовательность.
Приемник, записав четыре байта, на основании следующего - пятого оценивает, соответствует ли последовательность в этом пятом байте значению предыдущих четырех. Если соответствует, то это значит, что скорее всего это и есть заголовок селла, т.к. пятый бит является линейной комбинацией первых четырех. В этот момент приемник входит в состояние предсинхронизма. Поскольку известна длина каждого селла - 53 байта, то система отсчитает еще 48 байт и после этого вновь примется анализировать соответствие четырех последующих байт пятому и т.д. Когда такая ситуация произойдет n раз подряд, будет принято решение о том, что синхронизм достигнут и система перейдет в соответствующее состояние. Выход из синхронного состояния происходит в случае, если m раз подряд значение заголовка селла не совпадет со значением проверочного полинома.
Вследствие злонамеренных или непреднамеренных действий может получиться так, что поле информации в селле точно повторяет корректный заголовок, из-за чего период вхождения в синхронизм может сильно увеличиться. Для того, чтобы защититься от этого, в систему на передаче добавляется скремблер, который преобразует информацию пользователя к виду, близкому к псевдослучайной последовательности, т.е. убирает статистическую зависимость бит данных друг от друга.
Таким образом, мы видим, что прямая связь между передатчиком и приемником в смысле синхронности отсутствует - приемник настраивается по входному полезному сигналу. Это значит, что не требуется передача специального синхросигнала от источника до получателя. Этим и объясняется термин "асинхронный" в названии режима передачи.
Разумеется, система не может работать так, чтобы заставлять пользователя все время посылать какую-то информацию. Передатчик всегда имеет возможность остановиться, если передавать больше нечего. Не произойдет ли выход из синхронизма, если нет данных для передачи? Не произойдет, причем за счет того, что передатчик всегда заполняет паузы абонентского трафика специальными "пустыми" селлами, не содержащими полезной информации, но также состоящими из 53 байт с корректным заголовком.Конечно, в поле PTI, о котором недавно говорилось, будет указано на то, что этот селл "пустой" и его не нужно отправлять приемнику.