| 7 | 応用 |
|---|---|
| 6 | プレゼンテーション |
| 5 | セッション |
| 4 | 交通機関 |
| 3 | ネットワーク |
| 2 | データバインディング |
| 1 | 物理的な |
| OSIモデル | |
HDLC ( High -Level Data Link Controlの英語の頭字語) は、SDLC (Synchronous Data Link Control) から派生した OSI モデルのレベル 2 プロトコル (リンク層) です。その目標は、エラーチェックを追加して、さまざまなタイプのフレームを区切るメカニズムを定義することです。これは、ISO3309 仕様に基づいて国際標準化機構によって定義されています。
フレームフォーマット
使用する単位はフレームです。各フレームは 2 つの同一のフラグ (バイナリ表記: 01111110) によって区切られます。
| スタートフラグ | 住所 | 注文 | データ | フレームチェックシーケンス | 終了フラグ |
| 8ビット (01111110) | 8ビット | 8ビット | … | 16/32ビット | 8ビット (01111110) |
ペナント
フラグは同期のためのフレーム区切り文字です。その値は HDLC 用です。
01111110 (バイナリ) 7E (16進数)
HDLC フレームは前後に送信できます。この場合、最初のフレームの終了フラグをプールし、次のフレームの開始フラグとして使用できます。
住所
アドレスは、フレームの送信先となる受信者のアドレスです。このアドレスは、通信がマスタースレーブ型であり、スレーブ側のアドレスである場合に使用されます。ポイントツーポイント通信では使用されません。

指示
このフィールドを使用すると、次の 3 種類のフレームを区別できます。
- 情報フレーム (データ):
(lien)[ Ns ][P/F][ Nr ] - 監督フレーム:
(lien)(lien)[__][P/F][ Nr ] - 番号なしフレーム:
(lien)(lien)[__][P/F][___]
P/Fビットはポーリング/ファイナルを意味します。値が 1 の場合、セットされていると言われます。慣例により、フレームがコマンドの場合、セットされたビットは P の価値があり、フレームが応答の場合は F の価値があります。 P=1 でコマンドを発行すると、即時応答が必要です (F=1)。 P/F ビットが設定されたフレームを受信した場合、送信済みのコマンドに対する応答が期待されている場合はビットは F、コマンドが送信されていない場合は P になります。
情報フレーム(データ)において、 Ns は現在のフレーム番号です。 Nr は、期待される情報フレームの番号です。 Nr よりも小さい番号のフレームを認識します。
注意: 上で説明した制御フィールドのビットは、物理層に送信される順序で書き込まれます。つまり、最下位ビットが最初で、最上位ビットが最後になります。
データ
このオプションの可変長フィールドには、送信するデータが含まれます。送信するビット数は 8 の倍数である必要はありません。このフィールドはバイトで揃える必要がないため、END にパディング ビットを追加する必要はありません。
FCS
フレーム チェック シーケンス: FCS は、送信エラーの可能性を検出するためにデータの後に追加されるコードです。通常は 16 ビットでコード化されますが、2 人の対話者間のネゴシエーションの後は、32 ビットでコード化することもできます。
このシーケンスは、アドレス + コマンド + データフィールドで計算された CRC に対応します。
FCS エンコード/デコードの C実装の例は、 RFC 1662 (HDLC のようなフレーミングにおける PPP) で提案されています。
透明性
フラグが区切り文字として機能するには、開始と終了の間で転送されるデータ内にフラグの値が見つからないことが重要です。これを行うには、ビット シーケンス 01111110 (7Eh) を削除するようにデータが変更されます。ビット方式とバイト方式の2つの方式があります。
最初の方法 (ビット スタッフィングと呼ばれます) が最も一般的です。これは、値1の 6 つの連続ビットの出現を回避することを伴います。フレームを書き込むときに、データに値 1 の連続する 5 ビットが含まれる場合、その後に 0 が自動的に追加されます。
2 番目の方法 (バイト スタッフィングと呼ばれます) は、16 進値CEを持つエスケープ文字を使用します。送信するバイトの中にフラグの値 ( 7E ) が見つかった場合、このバイトは次の 2 バイトに置き換えられます: CE 、次に5E 。したがって、エスケープ バイトの値がデータ内に見つからないようにすることが重要であり、エスケープ バイトが見つかった場合は、 CEバイトがCE バイトと9Eバイトに置き換えられます。
したがって、送信前に、データと開始/終了フラグが混同される可能性はありません。

フレームタイプ
HDLC には 3 種類のフレームがあります。
- Iフレーム(情報フレーム):データ
- S フレーム (監視フレーム): データ監視。
- U フレーム (番号なしフレーム): 番号なし、リンク監視。
データフレーム: I
ネットワーク層エンティティによって提供されるデータを伝送します。

監視フレーム: S
エラー チェックとフロー制御に関連するコマンドまたは応答を伝送します。
- RR = 受信準備完了
[ 1 0 0 0 P/F Nr ]: 受信機は受信準備ができています - RNR = 受信準備完了
[ 1 0 1 0 P/F Nr ]: 受信機またはネットワーク層が圧倒されています - REJ = Reject
[ 1 0 0 1 P/F Nr ]: Nr 以上のフレームの再送要求 - SREJ = Selective Reject
[ 1 0 1 1 P/F Nr ]: フレーム番号 Nr の再送要求
番号なしフレーム: U
リンク管理からのコマンドまたは応答(確立、終了、応答モードの選択など) を伝送します。
注文
- SABM = 非同期平衡モードの設定
[ 1 1 1 1 P/F 1 1 0 ]: 接続要求 - SABME = SABM と同じですが、拡張モード (モジュロ128 で番号付けされます)。
- DISC = 切断
[ 1 1 1 1 P/F 0 1 0 ]: 接続解除
答え
- UA = 番号なし確認応答
[ 1 1 0 0 P/F 1 1 0 ]: 番号なしフレームの確認応答 - FRMR = FRaMe リジェクト
[ 1 1 1 1 P/F 0 1 1 ]: フレーム拒否 - DM = 切断モード
[ 1 1 1 1 P/F 0 0 0 ]:端末は切断されています
交換
HDLC には 2 つの動作モードがあります。
- ベストエフォート モード: このモードでは、すべてのパッケージの配信は保証されません。これは ISO プロトコルのネットワーク層でサポートされています。
- バランス モード: このモードでは、ハードウェア メカニズムを使用して伝送の信頼性を確保します。
HDLC プロトコルは、H.323、V.120、TCN、または X.25 などの多くのプロトコルで使用されるリンク層です。
注意: シスコが開発したHDLC には特定のバリアントがあり、アドレスフィールドの使用を変更し、2プロトコルバイトを追加します。
