Введение

ATM Adaptation Layer 5 (AAL5) — это слой адаптации ATM, используемый для передачи пакетов переменной длины до 65 535 октетов по сети асинхронного режима передачи (ATM). В отличие от большинства сетевых кадров, которые размещают управляющую информацию в заголовке, AAL5 размещает управляющую информацию в 8-октатном трейлере в конце пакета. Трейлер AAL5 содержит 16-битное поле длины, 32-битный циклический избыточный код (CRC) и два 8-битных поля, обозначенных как UU и CPI, которые в настоящее время не используются. Каждый пакет AAL5 разделяется на целое число ячеек ATM и собирается в пакет перед доставкой принимающему хосту. Этот процесс известен как сегментация и повторная сборка (см. ниже). Последняя ячейка содержит дополнение, чтобы гарантировать, что весь пакет имеет длину, кратную 48 октетам. Последняя ячейка содержит до 40 октетов данных, за которыми следуют байты дополнения и 8-октатный трейлер. Иными словами, AAL5 помещает трейлер в последние 8 октетов последней ячейки, где его можно найти, не зная длину пакета; последняя ячейка идентифицируется битом в заголовке ATM (см. ниже), и трейлер всегда находится в последних 8 октетах этой ячейки.

Конвергенция, сегментация и реассамблея

Когда приложение отправляет данные через соединение ATM с использованием AAL5, хост передает блок данных в интерфейс AAL5. AAL5 генерирует трейлер, делит информацию на 48-октатные части и передает каждую часть по сети ATM в отдельной ячейке. На принимающей стороне соединения AAL5 собирает входящие ячейки в пакет, проверяет CRC, чтобы убедиться в правильности доставки всех частей, и передает полученный блок данных хост-программе. Процесс разделения блока данных на ячейки и их перегруппировки известен как сегментация и пересборка ATM (SAR). Отделяя функции сегментации и пересборки от передачи ячеек, AAL5 следует принципу слоизации. Слой передачи ячеек ATM классифицируется как "межмашинный", поскольку принцип слоизации применяется от одной машины к другой (например, между хостом и коммутатором или между двумя коммутаторами). Слой AAL5 классифицируется как "end-to-end", поскольку принцип слоизации применяется от источника до назначения. AAL5 предоставляет принимающему программному обеспечению данные в блоках точно такого же размера, как и приложение, переданное AAL5 на отправляющей стороне. AAL5 на принимающей стороне знает, сколько ячеек составляет пакет, поскольку отправляющий AAL5 использует младший бит поля "PAYLOAD TYPE" заголовка ячейки ATM для обозначения последней ячейки в пакете. Этот последний заголовок ячейки можно рассматривать как "end-to-end бит". Таким образом, принимающий AAL5 собирает входящие ячейки, пока не найдет ячейку с установленным битом конца пакета. В стандартах ATM используется термин "конвергенция" для описания механизмов, распознающих конец пакета. Хотя AAL5 использует один бит в заголовке ячейки для конвергенции, другие протоколы уровня адаптации ATM могут использовать другие механизмы конвергенции.

Тип пакета и мультиплексирование

Прицеп AAL5 не содержит поля типа. Таким образом, кадр AAL5 не идентифицирует своё содержимое. Это означает, что либо два хоста на концах виртуальной цепи должны заранее договориться, что цепь будет использоваться для одного конкретного протокола (например, цепь будет использоваться только для отправки IP-датаграмм), либо два хоста на концах виртуальной цепи должны заранее договориться, что некоторые октеты области данных будут зарезервированы для использования в качестве поля типа, чтобы различать пакеты, содержащие данные одного протокола, и пакеты, содержащие данные другого протокола. Стандарт "Многопротокольная инкапсуляция через ATM" описывает два механизма инкапсуляции для сетевого трафика, один из которых реализует первую схему, а другой – вторую. Первая схема, в которой хосты договариваются о протоколе высокого уровня для данной цепи, упоминается в RFC 2684 как "VC Multiplexing" (мультиплексирование по виртуальным каналам). Её преимущество заключается в отсутствии необходимости в дополнительной информации в пакете, что минимизирует накладные расходы. Например, если хосты договорились передавать IP, отправитель может передавать каждую датаграмму непосредственно в AAL5 для передачи, не требуется отправлять ничего, кроме самой датаграммы и прицепа AAL5. Главный недостаток такой схемы – дублирование виртуальных цепей: хост должен создавать отдельную виртуальную цепь для каждого протокола высокого уровня, если используется более одного протокола. Поскольку большинство операторов связи взимают плату за каждую виртуальную цепь, клиенты стараются избегать использования нескольких цепей, так как это приводит к ненужным затратам. Вторая схема, в которой хосты используют одну виртуальную цепь для нескольких протоколов, упоминается в RFC 2684 как "LLC Encapsulation" (инкапсуляция LLC). В стандартах рекомендуется, чтобы хосты использовали стандартный заголовок Logical Link Control (LLC) IEEE 802.2, за которым, при необходимости, следует заголовок Subnetwork Access Protocol (SNAP). Эта схема имеет преимущество в том, что позволяет передавать весь трафик по одной и той же цепи, но её недостаток заключается в том, что каждый пакет должен содержать октеты, идентифицирующие тип протокола, что увеличивает накладные расходы. Также недостатком этой схемы является то, что пакеты от всех протоколов передаются с одинаковой задержкой и приоритетом. RFC 2684 определяет, что хосты могут выбирать между двумя методами использования AAL5. И отправитель, и получатель должны договориться о том, как будет использоваться цепь. Соглашение может включать ручную настройку.

Инкапсуляция датграммы и размер IP MTU

Интернет-протокол (IP) может использовать AAL5 в сочетании с одной из схем инкапсуляции, описанных в RFC 2684, для передачи датаграмм по сети ATM, как указано в [укажите ссылку на документ]. Прежде чем данные могут быть отправлены, виртуальная цепь (PVC или SVC) должна быть установлена до хоста назначения, и обе стороны должны договориться об использовании AAL5 на этой цепи. Для передачи датаграммы отправитель передает ее AAL5 вместе с VPI/VCI, идентифицирующими цепь. AAL5 генерирует трейлер, разделяет датаграмму на ячейки и передает ячейки по сети. На принимающей стороне AAL5 восстанавливает ячейки, проверяет CRC для подтверждения отсутствия потерь или повреждений битов, извлекает датаграмму и передает ее на IP-уровень.