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.25やISDNのレイヤ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