LAPB(Link Access Procedure, Balanced、平衡型リンクアクセス手順)は、X.25プロトコルスイートに定義されたデータリンク層を実装したもので、データ端末装置 (DTE) とデータ回線終端装置 (DCE) の間の通信とパケット形成を管理する。LAPBはHDLCの Asynchronous Balanced Mode (ABM) から派生したビット指向プロトコルで、フレームに誤りがなく順序も正しいことを保証する。LAPBの仕様は ITU-T Recommendation X.25 と ISO/IEC 7776 にある。OSI参照モデルのコネクションモードのデータリンクサービスを実装したデータリンク層プロトコルとしても使え、ITU-T Recommendation X.222 にその定義がある。
LAPBセッションはDTEからでもDCEからでも確立できる。呼を開始した局をプライマリ、それに応答した局をセカンダリと認識する。
プロトコルの構造
フレーム型
- I-フレーム(情報転送)
- 上層の情報や一部の制御情報を運ぶフレーム。順序制御、フロー制御、誤り検出訂正などの機能を含む。送受信のシーケンス番号を運ぶ。
- S-フレーム(監視)
- 制御情報を運ぶフレーム。要求、送信中断、ステータス報告、I-フレーム受信時の肯定応答などの機能を含む。受信のシーケンス番号だけを運ぶ。
- U-フレーム(非番号制)
- 制御情報を運ぶフレーム。リンク設定、切断、エラー報告などの機能を含む。シーケンス番号を運ばない。
フレームのフォーマット
フレームは先頭から、1オクテットのフラグシーケンス、1オクテットのアドレス部、1オクテット(モジュロ8の場合)の制御部、任意長(最大4099オクテット)のデータ本体、2オクテットのフレーム検査シーケンス、1オクテットのフラグシーケンスの順に構成されている。それぞれのフィールドの詳細は以下の通り。
- フラグシーケンス
- 先頭も末尾も同じく、常に 0x7E という値である。このビットパターンがフレームの途中に現れるとそこでフレームが終わったと誤解してしまうため、ビットスタッフィングという技法を送信機と受信機で使用する。簡単に言えば、1が5個続くと送信側で強制的に0を挿入し、受信側では1が5個続いた後の0を強制的に削除する。
- アドレス部
- LAPBはポイント・ツー・ポイントで働くプロトコルであり、DTEのネットワークアドレスは第3層のパケットにあるため、このフィールドは意味を持たない。そのため、LAPBではこれを別の用途に使用している。0x01または0x03という2つの値だけをとり、リンクコマンドと応答の識別に使う。0x01 はDTEからDCEへのコマンドを格納したフレームであることを示し、DCEからDTEへの応答を示す。0x03 はDCEからDTEへのコマンドを格納したフレームであることを示し、DTEからDCEへの応答を示す。したがって、一方が第2層のDTE、もう一方が第2層のDCEと設定しておく必要がある(第1層のDCE/DTEの識別とは異なる)。
- 制御部
- フレーム型の識別に使う。それに加えて、フレーム型にしたがってシーケンス番号、制御機能、誤り追跡機能などを担う。
- フレーム検査シーケンス (FCS)
- フレームデータの完全性を検査するのに使われ、高度な物理的誤り制御を可能にする。
LPABは、非同期平衡モード (ABM) で動作する。このモードは平衡型であり(マスタースレーブ関係は存在しない)、SABM(E)/SMフレームでそれを示している。どちらの局であっても任意の時点で、初期化し、監視し、誤り訂正し、フレームを送信できる。DTEとDCEは同等に扱われる。スライディングウィンドウによるフロー制御をサポートしており、通常のウィンドウサイズはモジュロ8(シーケンス番号が7まで)である。ウィンドウサイズは拡張でき、肯定応答を待たずに送信できるフレーム数を127(モジュロ128)や32767(モジュロ32768)に増やすことができる[1]。ただし、その場合フレームの制御部のオクテット数も増やす(シーケンス番号が入りきらないため)。
プロトコルの動作
LAPBではノード間にマスタースレーブ関係は存在しない。送信側はフレームの制御部にあるPollビットを使い、即時応答を強制することができる。受信側にとっては同じビットがFinalビットとして解釈される。送信側からのPollビットがセットされたコマンドについて、受信側は常にFinalビットを立てて応答を送る。このPoll/Finalビットは、肯定応答を受け取りそこなうなどの理由でフレームシーケンスが正しいかどうか確信できなくなった場合に使うのが一般的であり、参照点を再確立するのに必要である。送信したI-フレーム群への肯定応答を促す意味でも使われる。
ノードアドレッシング
下記の表は、DTEからDCEあるいはDCEからDTEのコマンドおよび応答について、LAPBフレームのアドレス部にどういうアドレスが格納されるかを示したものである。シングルリンクの場合とマルチリンクの場合を示している[2]。
方向
|
シングルリンク運用
|
マルチリンク運用
|
コマンド
|
応答
|
コマンド
|
応答
|
DTE⇒DCE
|
01 Hex (B)
|
03 Hex (A)
|
07 Hex (D)
|
0F Hex (C)
|
DCE⇒DTE
|
03 Hex (A)
|
01 Hex (B)
|
0F Hex (C)
|
07 Hex (D)
|
コマンドと応答
型
|
コマンド
|
応答
|
説明
|
監視
|
RR
|
RR
|
フレームの受信に対する肯定応答であり、デバイスが次のフレームを受信する準備ができていることを示す。
|
|
RNR
|
RNR
|
受信したフレームに対して肯定応答するが、まだ準備が整っていないため次のI-フレームを受信できないことを示す。
|
|
REJ
|
REJ
|
I-フレームの再送を要求する。何らかの誤りが含まれていた場合であり、対応するI-フレーム以降に肯定応答を待たずに送ったフレームも全て再送する。
|
|
|
SREJ
|
指定したI-フレームのみの再送を要求する。モジュロ8では使わず、モジュロ128ではオプション、モジュロ32768では必須である。
|
非番号制
|
SABM
|
UA
|
DTEからDCEへのリンクを基本モード(モジュロ8)で確立
|
|
SABME
|
UA
|
DTEからDCEへのリンクを拡張モード(モジュロ128)で確立
|
|
SM
|
UA
|
DTEからDCEへのリンクをスーパーモード(モジュロ32768)で確立
|
|
DISC
|
DM
|
リンクを終了
|
|
|
FRMR
|
フレームリジェクト。再送では回復できないエラー状態を報告する。
|
情報転送
|
I
|
|
|
Poll = 1 で送信するコマンドフレーム
|
Final = 1 で返信する応答フレーム
|
SABM, SABME, SM
|
UA, DM
|
I-フレーム
|
RR, RNR, REJ, SREJ
|
I-フレーム
|
FRMR
|
RR, RNR, REJ
|
RR, RNR, REJ, SREJ
|
FRMR
|
FRMR
|
DISC
|
UA, DM
|
関連項目
脚注
参考文献
外部リンク