Функции подуровня сборки/разборки
В функции подуровня SAR входит прием от подуровня конвергенции протокольных блоков произвольной длины и нарезка из него протокольных блоков, содержащих 44 байта данных для передачи на уровень АТМ. Как видим, эти функции сильно отличаются от тех, которые определены в AAL 1. Конечно, его работа состоит не только в том, чтобы формировать короткие блоки из более длинных. Более детально его работа состоит в следующем:
Поскольку от подуровня конвергенции приходит большая порция информации, подуровню SAR нужно следить за тем, чтобы на приеме можно было бы из маленьких блоков по 44 байта собрать снова большой блок данных. Таким образом, ему нужно обеспечивать сохранность передаваемых данных. Это делается при помощи двух специальных полей в заголовке протокольного блока, изображенного на рис.11 - поля индикатора типа сегмента - Segment Type - ST и указателя длины полезной нагрузки - Length Indicator - LI. Указатель LI показывает число пользовательских байт в составе блока. Поле ST указывает, является ли этот блок началом, серединой, концом сообщения или односегментным сообщением - всего 4 значения. Как видим, эти поля такие же, как и в уровне AAL 2, и это связано с тем, что там также необходимо было выполнять функцию сохранности блоков. Заметим, что в системе AAL 1 этого делать было не нужно, поскольку информация передавалась в потоке, у которого нет начала и нет конца, и, поэтому, все протокольные блоки полностью заняты информацией, которая не разбита пользователем на блоки. Поле ST состоит из двух бит, поле LI - из 6 бит.
Если оказывается, что блок данных, помеченный как "продолжение сообщения" или "конец сообщения" появился на приеме раньше, чем блок в пометкой "начало сообщения", то система будет считать, что начало сообщения потеряно в сети, а принятый блок отбросит.
Поскольку в системе применяется режим гарантированной доставки, то для этого нужно вводить функции обнаружения ошибок. Заметим, что именно обнаружения, а не исправления, поскольку исправление будет реализовано с помощью повторных передач ошибочных блоков.
Понятно, что в системах AAL 1 и AAL 2 этого было сделать нельзя, поскольку тогда сбилась бы синхронизация обмена между отправителем и получателем. Даже, если от системы не требуется защита от ошибок (режим негарантированных операций), то все равно обнаружение ошибок необходимо, поскольку нужно уведомлять пользователя о наличии ошибки. Эта функция реализуется с помощью поля CRC, содержащего проверочный полином. Если на приеме обнаруживается, что блок данных поражен ошибкой, то он просто отбрасывается. Гарантия целостности последовательности блоков в подуровне SAR обеспечивается с помощью последовательной нумерации протокольных блоков. Для этой цели служит поле порядкового номера - Sequence Number - SN. Его смысл точно такой же, как и у ранее описанных уровней AAL. Разница только в том, что здесь под это поле отведено 4 бита. Кроме того, если в AAL 1 порядковая нумерация протокольных блоков SAR использовалась для циклической нумерации в общем потоке данных, то здесь нумерация идет только в пределах одного сервисного блока, пришедшего от подуровня конвергенции. Таким образом, когда сервисный блок данных поступает на вход подуровня SAR и разбивается на протокольные блоки по 44 байта, то каждому такому протокольному блоку присваивается номер в диапазоне от 0 до 15. Следующий сервисный блок будет нумероваться отдельно. Заметим, что счетчик, согласно которому будут нумероваться протокольные блоки, не обязательно должен сбрасываться в ноль перед нумерованием первого. Если на приеме обнаруживается сбой в нумерации, то блок с неправильным номером отбрасывается и приемник больше никаких протокольных блоков, принадлежащих тому же сервисному блоку ожидать не будет. Значит, в целях защиты от ошибок придется повторно передавать весь сервисный блок. В процедуре предусмотрена возможность объединения нескольких соединений уровня AAL 3/4 в одно соединение АТМ. Значит, на приеме необходимо как-то разбираться в том, какие протокольные блоки к каким соединениям AAL относятся. Выше уже описывался пример, для чего это может использоваться.
Это разделение выполняется с помощью специального поля идентификации мультиплексирования - Multiplexing Identifier - MID, который сообщается в подуровень SAR от системы управления. В результате, если в один подуровень SAR вкладываются несколько подуровней конвергенции, то поток от каждого подуровня конвергенции будет снабжаться своим идентификатором MID. Это поле также присутствует в заголовке протокольного блока подуровня SAR и составляет 10 бит (см. рис. 11). Таким образом, теоретически в одно соединение АТМ можно заложить до 1024 соединений AAL 3/4, правда конкретное устройство вовсе не обязано поддерживать весь этот диапазон.
Рис. 11. Формат SAR-PDU в AAL типа 3/4
Раз несколько соединений может проходить одновременно, то в общий канал они будут выдаваться в перемешанном порядке. Следовательно, на приеме протокольные блоки SAR также будут перемешаны, однако вся обработка происходит только в пределах общего номера MID. Разумеется, что поскольку для всех соединений AAL используется одно и то же соединение АТМ, то параметры качества сервиса у них будут одинаковы.
Таким образом, мы видим, что функции сборки/разборки на уровне AAL 3/4 достаточно обширны, и почти все они связаны с контролем правильности доставки информации, хотя, собственно исправления ошибок здесь не производится. В случае обнаружения каких-либо сбоев - сбой в нумерации протокольных блоков, потеря блоков, помеченных как начало или конец сообщения или просто обнаружена ошибка в составе блока, то ничего не делается для исправления или переспроса поврежденной информации. Эти функции вынесены на подуровень конвергенции.
Содержание раздела