いつ見ても3日坊主@wiki
HDLC
最終更新:
ryu7k
-
view
HDLC
概要
HDLC(High level DataLink Control)手順とは、通信速度、伝送効率、信頼性を高いレベルで実現する伝送制御手順です。 HDLC手順は、ISOで標準化され、日本でもJIS規格化されています。
HDLC手順は、データをひとかたまりにしたフレーム(frame)とよばれる単位で、データの送受信を行ないます。 フレームの構成は次のようになっています。
HDLC手順は、データをひとかたまりにしたフレーム(frame)とよばれる単位で、データの送受信を行ないます。 フレームの構成は次のようになっています。
| F | A | C | ______ I ______ | FCS | F |
記号 名称 内容
- F
- フラグシーケンス フレームの開始と終了を表します。「01111110」 という固定のビットパターンとなります。
- A
- アドレスフィールド 送信先もしくは送信元のアドレスです。8ビットで表現されます。
- C
- 制御フィールド フレームの種類と制御内容、フレーム番号を表します。
- I
- 情報フィールド 転送するデータ内容を表します。
- FCS
- フレームチェックシーケンス CRC方式による誤り制御のシーケンスを表します。
HDLC手順では、フレームを連続して転送することが可能です。 連続して送信しているときは、下図のような状態でデータ転送を行なっていることとなります。
| ← フレーム 1 → | ← フレーム 2 → | ← フレーム 3 → |
| F A C I FCS F | F A C I FCS F | F A C I FCS F |
HDLC手順では、フレームの開始と終了を表す F;フラグシーケンスは、「01111110」という決められたビット列です。 もし、I;情報フィールドに「01111110」というデータが含まれていたらどうなるでしょうか? 当然ながら、データ受信側では、I;情報フィールド 受信中に、F;フラグシーケンス のビット列を受信することなり、フレームの構成が分からなくなってしまいます。
このような問題に対処するため、HDLC手順では、
- 送信側では、連続する5個の「1」の直後には、「0」を1個挿入する
- 受信側では、連続する5個の「1」の直後の「0」を1個除去する
という決まりの制御を、送信側、受信側で行なうことで、I;情報フィールド 受信中に、F;フラグシーケンス のビット列が出現しないようにして、この問題に対処しています。
ちなみに、この対処方法はbit stuffingといわれている。
- bit stuffing
- 送信時に 0 の後ろに 1 が連続して 5 つ続いたのを検知すると、その後ろに0を挿入する。
- 受信時には、0 の後に 1 が 5 つ続きその後ろに 0 があった場合データと判断し 0 を取り除く。1 が 6 つ続いた場合はフラグと判断する。
〆リュ