HDLC

 HDLCは、High-Level Data Link Controlの略です。ハイレベルデータリンク制御手順とも呼ばれます。ISOによって標準化されたデータリンク層のプロトコルで、専用線や回線交換で使用されています。

 ポイントツーマルチポイントにおける通信が可能ですが、現在では、ABM(Asynchronous Balanced Mode)を使ったポイントツーポイントでの通信で使用されています。

 HDLCは、各種のプロトコルの原型になっており、X.25、ISDNのレイヤ2プロトコル、フレームリレーやPPPの手順の原型となっています。

 同期方式としてフラグ同期を使用し、フレームの先頭と最後にフラグシーケンス「01111110」の8ビットが付加されてフレームが送信させるようになっています。

 また、誤り検出のため、16ビットのFCSフィールドが定義されており、検出方式には、CRC方式を採用されています。この仕組みにより、複数ビットに及ぶバースト誤りも検出することができます。

下の図は、HDLCフレームのフォーマットです。

フィールド名説明
フラグシーケンスフレームの始まりと終わりを示す「01111110」。送信側では5つの連続した1が出現した場合、6ビット目に強制的に0を挿入するようになっています。受信側では、この0は取り除き上位層に渡します。
アドレス部アドレスフィールド
制御部制御フィールド
FCSフレームチェックシーケンス。誤り検出の為に使用されます。

 上図を見れば気づくと思いますが、HDLCヘッダには、ネットワーク層プロトコルを識別するための情報が入っていません。これを補完する為に、HDLCは各ベンダーごとに独自の実装を行っています。そのため、ベンダー間の通信ができないのが一般的です。

例えば、Ciscoルータでは、Cisco HDLCを採用しており、ISO標準のフレームフォーマットとは、少し違います。