HDLC / High-Level Data Link Control


■ HDLC。High-Level Data Link Control。

  ハイレベルデータリンク制御。
  シリアル回線で用いるビット指向のデータ伝送制御手順。
  米IBMが開発したSDLC手順をベースに、ISOが1977年に標準化したもの。
  OSI参照モデルではデータリンク層のプロトコルにあたる。

  HDLCは、コンピュータ通信で広く用いられ、各種のプロトコルの原型になった。
  サブセットとしてLAP-B、LAP-D、LAP-Fなどがあり、
  現在も、X.25ISDNのレイヤ2プロトコルとして、
  また、フレームリレーPPPの手順として、広く利用されている。

  HDLCは、ポイントツーポイント型のプロトコルで、 
  CRCによる厳密な誤り制御を行い、信頼性の高いネットワークを実現する。
  従来のベーシック手順では、伝送効率に問題があったが、
  HDLCではより高効率なデータ伝送が行なえるようになった。

  HDLCヘッダには、
  ネットワーク層プロトコルを識別するための情報が入っていない。
  これを補完するために、HDLCはベンダーごと独自の実装になっており、
  ベンダー間の通信ができない。

■ フレーム。

  HDLCでは、データ転送単位をフレームと呼ぶ。
  任意長データの前後に、フラグシーケンス(01111110)を付加して、
  フレームを形成する。

  フレーム内には、各々8ビットのアドレス部と制御部、
  任意長の情報部、16ビットのFCS(CRC)が定められている。

  +------------+------------+-----------+-----------+--------------+------------+
  | フラグ     | アドレス部 |  制御部   | 情報部    | フレーム検査 | フラグ     | 
  | シーケンス |            |           | (L3のPDU) | シーケンス   | シーケンス | 
  | (01111110) |            |           |           |              | (01111110) | 
  +------------+------------+-----------+-----------+--------------+------------+
        8            8            8        variable        16             8   bit

  以下、各フィールドの説明を順に記述する。

■ フラグシーケンスフィールド。

  HDLCでは、同期方式としてフラグ同期を使用する。
  フラグ同期とは、フレームの先頭と最後にフラグ(flag)と呼ばれる
  特別なビットパターンを挿入して送る方法である。

  HDLCのフラグシーケンスは、01111110の8ビットと決められている。
  これにより、任意長フレームの開始を終結を示すことができるほか、
  また送受信の際の同期を取ることができる。

■ ビットスタッフィング。

  バイナリデータには、フラグと重複するビットパターン
  (1が6個連続するパターン)が存在する場合がある。
  これを送信するとき、一部のビットを変更して、重複を避ける手法のこと。

  具体的には、
  送信側では、1が5個続いた場合は、その後に0を強制的に挿入する。
  この操作を、0ビットインサーションという。
  受信側では、1が5個続いた場合は、その後の0を強制的に削除する。

  なお、ビットスタッフィングは、
  FCS計算の後、物理回線に送り出す直前に行われ、
  受信側ではFCS計算の前に除去される。

■ アドレスフィールド。

  HDLCフレームには、アドレスフィールドは1つしか設けられていない。
  このため、次のように、送信側、受信側のいずれか一方を指定する。

  1次局と2次局との間の通信では、常に2次局のアドレスをつける。
  複合局同士の通信では、コマンドフレームには受信側アドレスを、
  レスポンスフレームには送信側のアドレスをつける。

  つまり、コマンドは常に相手局のアドレスを持つフレームになる。
  レスポンスは常に自局のアドレスを持つフレームになる。

■ 制御フィールド。

  HDLCフレームは、16(?)ビットの制御フィールドを持つ。
  この制御フィールドは、
  HDLCがフロー制御(スライディングウィンドウ)を実現するために
  重要な役割を持っている。

  (1) シーケンス番号
      送受信されるIフレームの順序を識別するための連続番号。
      またIフレームの脱落や重複を監視するために使用される。

  (2) P/Fビット
      連続するコマンドフレームが終了したことを表すためのビット。
      また連続するレスポンスフレームが終了したことを表すビット。

■ スライディングウィンドウ。

  HDLCでは、フロー制御の方法として、スライディングウインドウ方式を採用している。
  このためHDLCでは、送信シーケンス番号が決められた最大値まで到達するまでは、
  確認応答を待つことなく、フレームを連続して転送することができる。

  - 標準モードでは、最大7個のフレームを連続して転送できる。
    すなわち、7つまでの未確認フレームが伝送路上に存在することが可能である。

  - 拡張モードでは、最大127個のフレームを連続して転送できる。
    すなわち、127個までの未確認フレームが伝送路上に存在できる。

■ シーケンス番号

  送受信されるIフレームの順序を識別するための連続番号。
  またIフレームの脱落や重複を監視するために使用される。

  (1) 送信シーケンス番号
      送信されるIフレームの順序を示す番号。
      標準モードでは3ビットを使用するので、0〜7の値をサイクリックに取る。
      拡張モードでは7ビットを使用するので、0〜127までの値を取る。

  (2) 受信シーケンス番号 
      次に受信を期待するIフレームのシーケンス番号を示す。
      すなわち、受信した最大シーケンス番号+1になる。
      正しいIフレームを受信するごとに、1づつ加算される。

■ P/Fビット

  連続するコマンドフレームが終了したことを表すためのビット。
  また連続するレスポンスフレームが終了したことを表すビット。 

  (1) Pビット。Poll Bit。
      送信側は、フレームを連続送信するとき、
      最後のフレームのPビットを立てる(P=1とする)。
      そして確認応答のフレームを受け取るまでは、次のIフレームを送信しない。

  (2) Fビット。Final Bit。
      受信側では、レスポンスフレームを返すとき、
      最後に送信するフレームのFビットを立てる(F=1とする)。
      これにより確認応答の終了と、送信権放棄を表す。

■ 情報フィールド。

  HDLCでは、伝送対象となるデータを、
  Iフレームの情報フィールドに格納して送信する。
  パケット交換の利用時には、レイヤ3のPDU(パケット)が、
  この情報フィールドに格納される。

  HDLCは、ビット指向のプロトコルであり、
  任意のビットパターンを伝送することができる。
  データの長さや制御ビットとの重複は、気にする必要がない。

■ フレーム検査シーケンスフィールド。

  HDLCでは、誤り検出のため、16ビットのFCSフィールドを定義している。
  検出方式にはCRC方式を採用しており、複数ビットに及ぶバースト誤りも検出する。
  なおHDLCでは、制御フレームを含めてエラーチェックの対象となる。 

  さらに、HDLCでは、誤り回復の手順をも規定している。
  もし受信局で誤りを検出した場合には、Sフレーム(REJ/SREJコマンド)を使用して、
  送信局にフレームの再送を要求することができる。

■ 局。

  HDLCでは、データの送受信局として次の3つを定義している。

  (1) 1次局。
      データリンクの制御を行なう局。
      2次局に対して、データリンクの制御コマンドを送出し、
      また2次局からレスポンスを受ける。

  (2) 2次局。
      データリンクの制御に関して権限を持たない局。
      1次局から制御コマンドを受信し、これに従い、またレスポンスを送出する。

  (3) 復合局。
      データリンクの制御に関して相互に対等の権限を持つ2つの局。
      コマンドもレスポンスも送信できる。

■ 手順クラス。

  通信局が主従関係にあるか対等関係にあるかによって、
  不平衡型データリンクと平衡型データリンクに分類される。

  (1) 不平衡型データリンク。
      一次局、二次局からなる構成は、データリンクを確立する権利が対等でないので、
      不平衡形データリンクと呼ばれる。

  (2) 平衡型データリンク。
      複合局からなる構成は、両局がデータリンクを確立する権利を対等に持つので、
      平衡形データリンクという。

■ 不平衡型データリンク

  一次局、二次局からなる構成は、データリンクを確立する権利が対等でないので、
  不平衡形データリンクと呼ばれる。
  この不平衡形データリンクは、さらに2つの形態に分類できる。

  - 正規応答クラス。UNクラス。
  ポイントツーマルチポイントで接続されている場合のクラス。
  コマンドとそれに対するレスポンスを同期させる必要がある。

  - 非同期応答クラス。UAクラス。
  ポイントツーポイントで接続されている場合の手順クラス。
  レスポンスは、コマンドとは非同期に送出できる。

■ 平衡型データリンク

  複合局からなる構成は、両局がデータリンクを確立する権利を対等に持つので、
  平衡形データリンクという。

  - 平衡型非同期応答クラス。BAクラス。
  複合局同士、ポイントツーポイント接続の場合の手順クラス。
  コマンドとレスポンスを自由に送出できる。

■ 伝送制御モード。

  2次局(複合局)の伝送制御モードとしては、
  以下の3種類が規定されている。

  なお、2次局(複合局)の状態が、あるモードからほかのモードへと遷移するのは、
  Uフレームによる特定のコマンドを受信した場合に限られる。

  (1) 動作モード。コマンド/レスポンスの送受信を行なう。
  (2) 非動作モード。データリンクの開始や終了を行う。
  (3) 初期モード。電源投入時のモード。

■ 動作モード

  実際にコマンドやレスポンスの送受信を行なうモード。
  HDLC通信を開始する際、2次局(複合局)は、
  以下の3つの動作モードのうち、Uフレームのコマンドが指定するモードに移行する。

  - 正規応答モード。NRM:Normal Response Mode。
    コマンドとレスポンスを同期させる。UNクラスに対応。

  - 非同期応答モード。ARM:Asynchronous Response Mode。
    コマンドと非同期にレスポンスを返せる。UAクラスに対応。

  - 非同期平衡モード。ABM:Asynchronous Balanced Mode。
    コマンドとレスポンスを自由に送出する。BAクラスに対応。

■ 非動作モード。切断モード。IM。

  データリンクが開放されているときの2次局(複合局)のモード。
  各手順クラスに共通したモードである。

  HDLC通信を終了する場合には、
  1次局(複合局)は2次局(複合局)に対してUフレームのDISCコマンドを送出し、
  切断モードへの切り替えを指示する。

  これを受けて、2次局(複合局)が
  1次局(複合局)に対してUフレームのUAコマンド(受信応答)を返すと、
  データリンクは開放され、2次局(複合局)は切断モードに遷移する。

■ 初期モード。DCM。

  1次局(複合局)の指示で、
  2次局(複合局)がHDLCを行うプログラムをロードしたり、
  その他のパラメータを交換したりするモード。
  初めて電源を投入したときのような状態。
  各手順クラスに共通したモードである。

■ フレーム種別。その1。

  HDLCでは、2種類のフレームが定義されており、
  それぞれコマンドフレームとレスポンスフレームと呼ぶ。
  HDLCでは、これらのフレームをやり取りして伝送制御を行う。

  (1) コマンドフレーム。
      1次局から2次局に送信する指令を転送するフレーム。
      1次局(複合局)が使用するフレーム。

  (2) レスポンスフレーム。
      2次局が1次局の指令に対する応答を転送するフレーム。
      2次局(複合局)が使用するフレーム。

■ フレーム種別。その2。

  HDLCでは、3種類のフレームが定義されており、
  それぞれ情報転送フレーム(Iフレーム)、監視フレーム(Sフレーム)、
  非番号制フレーム(Uフレーム)と呼ぶ。

  これらのフレームを識別するために、制御部の1ビット目と2ビット目が使用される。
  (1) Iフレーム。制御部の1ビット目が0。
  (2) Sフレーム。制御部の1ビット目が1。2ビット目が0。
  (3) Uフレーム。制御部の1ビット目が1。2ビット目が1。

  以下、各フレームについて説明する。

■ Iフレーム

  情報転送フレーム。Information Frame。

  HDLCが、伝送すべき実データを格納して送信するために使用するフレーム。
  3種類のフレームの中で唯一情報フィールドを持ち、
  ここにユーザデータを格納して送信する。

■ Sフレーム

  監視フレーム。Supervision Frame。

  Iフレームの送受信を制御するために使用するフレーム。
  シーケンス番号を持たない。
  例えば、Iフレームの受信確認応答をする場合(RR:Receive Ready)や、
  Iフレームの再送要求をする場合(REJ/SREJ)に使用する。

  Sフレームによる再送要求コマンドには、以下の2種類がある。

  - REJコマンド。
    シーケンス番号を指定して、それ以降の再送を要求する。
  - SREJ(Selective REJ)コマンド。
    シーケンス番号を指定して、そのフレームの再送を要求する。

■ Uフレーム

  非番号制フレーム。Unnumbered Frame。

  データリンクの確立や切断を行なうときに使用するフレーム。
  他の2つのフレームと異なり、コマンドとレスポンスの区別がある。

  HDLC通信を開始するとき、
  1次局(複合局)は、
  Uフレームのコマンド(SNRM等)により2次局(複合局)のモードを決定する。
  すると2次局(複合局)は、
  Uフレームによる確認応答(UA:Unnumbered Acknowledge)を返す。

  HDLC通信を完了した場合は、
  Uフレームのコマンド(DISC)とレスポンス(UA)のやり取りを経て、
  データリンクを開放する。

■ マルチリンク手順。Multi Link Procedures。

  HDLCは、マルチリンクに対応しており、
  複数の回線を束ねて、1つのデータリンクとして動作させることができる。

  マルチリンクを利用すると、
  1本の通信回線では得られない通信速度を得られるほか、
  1本の通信回線が故障しても、他の回線を使えるので、信頼性が高まる。
  例えば、ISDN-BRIでは、2つのBchを束ねて128kbpsとして使用できる。

  マルチリンクの機能は、
  OSI参照モデルのデータリンク層の上半分に相当する。
  同じデータリンク層のシングルリンク(SLP)を束ねて、
  上位のネットワーク層に提供する。

■ 参照URL

  トーホグ倶楽部様
  http://hpoco.com/learn/hdlc.htm

  Engineering様
  http://www5d.biglobe.ne.jp/~engineer/doc/jnet/jnet_ch3_03.htm

  電脳天国様
  http://www.dennouheaven.net/IT/network05.html#2

以上。

2004/02/06 am


HOME |  BACK

テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル