コンテンツにスキップ

High-Level Data Link Control

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。Noriitohn (会話 | 投稿記録) による 2006年7月8日 (土) 21:26個人設定で未設定ならUTC)時点の版 (en:High-Level Data Link Control 12:43, 7 July 2006(UTC)を翻訳・加筆(途中))であり、現在の版とは大きく異なる場合があります。

(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

High-Level Data Link Control(以下HDLCと略す)は国際標準化機構(ISO)によって標準化された、ビットオリエンテッドなフレーム同期型のデータリンク層プロトコルである。最初のHDLCはISOによって以下のように定義された。

  • ISO 3309 — フレーム構造
  • ISO 4335 — 処理手順の要素
  • ISO 6159 — 非平衡型処理手順
  • ISO 6256 — 平衡型処理手順

これらの定義はISO 13239に取りまとめられ、現在のHDLCの定義となっている。HDLCはコネクションオリエンテッド型通信にもコネクションレス型通信にも対応できる。

HDLCはポイント・ツー・マルチポイントでの通信を行うことができるが、現在はほとんどAsynchronous Balanced Mode(ABM)を使ったポイント・ツー・ポイントでの通信でしか使われていない。HDLCにはABMの他にNormal Response Mode(NRM)とAsynchronous Response Mode(ARM)の2つがある。

歴史

HDLCはIBMが開発したSystems Network Architecture(SNA)のレイヤ2プロトコルであるSDLCが大元になっている。それを国際電気通信連合(ITU)が、LAPBとしてX.25プロトコル・スタックに持ち込みHDLCの誕生となった。現在、これは同期型のPPPとして、インターネットのようなWANにサーバなどを繋ぐのに用いられている。これと一部異なるバージョンのものがISDNの制御チャンネルやSDH多重電話回線で使用されている。またシスコなど一部のベンダではシスコHDLCのように、下位のHDLCのフレーミング技術のみを導入し、ヘッダ部分は独自といったプロトコルを開発したりもしている。

フレーミング

HDLCのフレームは同期リンク、非同期リンクに関わらず送信することが可能である。これらのリンクにはフレームの始めと終わりを見分けるメカニズムはないので、通信を行うには各フレームの始めと終わりを認識するメカニズムが必要である。フレームの始まりと終わりを認識するにはフラグか、もしくはフレームデリミタを使用する。どのように使用するかと言うと、特定のビット配列(=フレームデリミタ)が存在する=その部分はフレームではない、という具合でフレームを認識する。そのビット配列は”01111110”で16進数で表示すると”7E”である。

同期リンク上でフレームの通信がない場合、連続してフレームデリミタが送信され続け、以下のような連続したビット配列を示す。

01111110011111100111111001111110
 ______  ______  ______  ______ 
_      __      __      __      _

これを利用しモデム位相同期回路を経由して時計をシンクロさせる。

フレーム構造

フラグを含むHDLCのフレーム構造は以下のようになっている。

フラグ アドレス コントロール 情報 FCS (オプショナルのフラグ)
8ビット 8ビット 8ビット もしくは 16ビット 可変長, 0もしくは8の倍数ビット 16ビット 8ビット

後のフラグは次のフレームの始めのフラグを兼ねている(なくても大丈夫)。

伝送される情報は8の倍数ビットになる。これは電話テレタイプの長距離デジタル伝送装置が8ビットずつ伝送しているのにHDLCが適応した結果である。これによりHDLCは効率的にバイナリデータを送受信できる。

FCSはFrame Check Sequenceの略でパリティチェックより洗練されたエラーチェック方法である。