徹底解説:AAL5(ATM Adaptation Layer 5)の仕組み・用途・実装上の注意点

はじめに — AAL5とは何か

AAL5(ATM Adaptation Layer 5)は、ATM(Asynchronous Transfer Mode)ネットワーク上でパケット指向データを効率的に運ぶために設計された適応層です。ITU-T の AAL 系列のひとつで、可変長の上位プロトコルデータ(CPCS-SDU)を 48 バイトの ATM ペイロードに分割して運び、再構築するためのルールを定めます。AAL5 はシンプルでオーバーヘッドが小さいため、IP や PPPoA(ADSL での利用例)などのパケットベース通信で広く使われてきました。

AAL の階層構造と AAL5 の位置づけ

AAL は大まかに 2 つのサブレイヤに分かれます。

  • CPCS(Common Part Convergence Sublayer):上位層のデータ単位(CPCS-SDU)を受け取り、必要な制御情報を付与して SAR に渡す。
  • SAR(Segmentation And Reassembly)サブレイヤ:CPCS から受け取ったデータを 48 バイト単位に分割し ATM セルのペイロードに詰め、受側では再構築を行う。

AAL5 はこれらを最小限の機能で実現することで低オーバーヘッドと実装の簡潔さを両立しています。

AAL5 の PDU(CPCS-SDU)フォーマット

AAL5 では CPCS-SDU(上位データ単位)の末尾に 8 バイトのトレーラを付与して送ります。このトレーラは次の構造を持ちますp:

  • CPCS-UU(1 バイト):ユーザ間情報(通常は未使用)
  • CPI(1 バイト):Common Part Indicator(拡張用途、通常は 0)
  • Length(2 バイト、16 ビット):CPCS-SDU 本体の有効長(バイト単位)を示す(最大 65535)
  • CRC(4 バイト):Cyclic Redundancy Check(32 ビット)で、PDU 全体(パディングおよび上記フィールドを含む)に対する誤り検出を行う

実際の送信手順は「上位データ + 必要なパディング + CPCS-UU + CPI + Length + CRC」となり、これを 48 バイト単位に切り分けて ATM セルのペイロードに詰めます。CRC は PDU 全体の整合性を確かめるため、受側で再構築後に検査されます。

セグメンテーション/再構築(SAR)の仕組み

SAR は連続する ATM セル群を使って 1 つの CPCS-SDU を運びます。ATM のペイロードは 48 バイトで固定されているため、上位データの長さに応じて最後のセルはパディングで埋められます。SAR はセルの集合が一つの PDU に属することを示すために ATM ヘッダのペイロードタイプ(PT)や E(end-of-packet)に相当する指標を用いて、どのセルが最後のセルかを判別します(実装や仕様での表現に差があるが、最終セルは明示的に示される)。

受側は最終セルを受信して初めて PDU が揃ったと認識し、パディングを取り除き、Length フィールドと CRC を検査して PDU の整合性を判断します。CRC が不一致であれば PDU は破棄され、上位にエラーが通知されます(AAL5 自体に再送機構はない)。

AAL5 の利点とオーバーヘッド

  • オーバーヘッドが小さい:トレーラは 8 バイトのみで、AAL のオーバーヘッドは最小化されています。
  • 実装が簡潔:状態管理や複雑なヘッダ処理が少なく、ハードウェア/ソフトウェア双方で効率的に扱えます。
  • 大きな PDU に対応:Length フィールドは 16 ビットで、1 PDU あたり最大 65535 バイト程度の上位データを扱える設計です。

一方で ATM セルごとの 5 バイトのヘッダ(ATM レイヤ)は必須のオーバーヘッドであり、長いデータを小分けにするとヘッダオーバーヘッドが無視できなくなります。パディングによる無駄も発生しますが、これは長い PDU にすると相対的に小さくなります。

IP をはじめとする上位プロトコルの封入(VC-mux と LLC/SNAP)

AAL5 上で複数のプロトコルを運ぶ方法として主に 2 つがあります(RFC 2684 等で定義)。

  • VC-multiplexing(VC-mux):1 本の仮想回線(VC)に単一のプロトコルだけを載せる方法。オーバーヘッドが小さく高速。
  • LLC/SNAP:1 本の VC 上で複数プロトコルを運ぶために IEEE 802.2 LLC/SNAP ヘッダを挿入する方式。汎用性は高いが数バイトのヘッダオーバーヘッドが増える。

DSL で一般的だった PPPoA(PPP over AAL5)は、PPP フレームをそのまま AAL5 の CPCS-SDU として送る方式で、PPP ヘッダと AAL5 トレーラのみの比較的低いオーバーヘッドで動作しました。

誤り・再送・品質管理に関する挙動

AAL5 は CRC による検出機能を提供しますが、エラー訂正や再送機構は持ちません。ATM 自体もベストエフォート的なデリバリを行うため、セルの欠落・順序化・重複は送り手と受け手の間で保証されません。したがって、上位層(例えば TCP)での再送制御やアプリケーションレベルの整合性確保が前提となります。

また、QoS(品質)との関係で AAL5 は主に VBR(Variable Bit Rate)や UBR(Unspecified Bit Rate)で使われますが、リアルタイム性が要求される音声や映像には AAL1/AAL2 の方が適している場合があります。

実装上の注意点と運用のポイント

  • MTU と断片化:上位の IP MTU 設定は ATM のフラグメンテーションを避けるため重要です。VC-mux を採用している場合は IP パケットをそのまま入れると効率的ですが、LLC/SNAP を使う場合はヘッダ分を考慮する必要があります。
  • パディングの取り扱い:受側は Length フィールドに基づいてパディングを削除するため、Length の計算を正確に行うことが必須です。
  • CRC 計算範囲:CRC は CPCS-SDU(パディング+CPCS-UU+CPI+Length を含む)全体に対して計算されます。実装ミスがあると相互運用性の問題につながります。
  • セル損失と復旧:AAL5 自体に再送がないため、長時間の回線品質劣化やセルロスが多い環境では上位プロトコルのチューニングや物理層の改善が必要です。

AAL5 の適用例と現状の位置づけ

歴史的には AAL5 は ATM ベースのネットワーク、特にアクセス網(ADSL 等)や ISP のバックボーンで IP を運ぶ際に多用されました。PPPoA は AAL5 を使った代表例です。しかし近年はイーサネットや IP/MPLS が主流になったため、AAL5 を直接意識する場面は減っています。それでも既存の ATM インフラや一部のアクセス技術では今なお運用されています。

まとめ — AAL5 を選ぶ理由と検討すべき点

AAL5 は「シンプルでオーバーヘッドが小さい」ことが最大の強みです。IP や PPP といったパケットベース通信を ATM 上で効率的に運ぶ用途に適しています。一方で、誤り訂正や再送を行わない性質、パディングやセルヘッダのオーバーヘッド、そして実運用上の相互運用性(トレーラ処理や CRC 範囲の取り扱い)には注意が必要です。

参考文献