HDLCとは何ですか?

HDLC(High-Level Data Link Control)は、データリンク層で使用されるプロトコルの一つです。ISO(国際標準化機構)によって標準化され、同期シリアル通信においてデータのフレーム化やエラー検出、フロー制御などを提供します。HDLCは、ポイントツーポイントやマルチポイントのネットワーク構成で広く利用されており、特にWAN(広域ネットワーク)や専用線接続で使用されます。

弊社製品Enet-HDLCシリーズを使用することで、簡単にIPネットワークに接続できます。
>>>イーサネット/HDLC(LAP-B)プロトコルコンバータ<<<
>>>PLL機能を搭載したイーサネット/HDLCプロトコルコンバータ<<<
>>>HDLCフリーラン/UDP プロトコルコンバータ(RS232C/RS422/X21)<<<

HDLCの特徴

HDLCには以下のような特徴があります:
同期通信: HDLCは同期通信をサポートし、送信側と受信側のタイミングを合わせてデータを転送します。
フレーム構造:HDLCはフレーム単位でデータを転送します。各フレームは開始フラグ、アドレスフィールド、制御フィールド、
       データフィールド、FCS(Frame Check Sequence)、終了フラグで構成されます。
エラー検出:FCSを使用してデータの整合性を確認し、エラーを検出します。
フロー制御:HDLCはフロー制御機能を提供し、データの送受信を制御します。信頼性の高い通信: HDLCは確認応答や再送機能を
      備えており、信頼性の高い通信を実現します。

HDLCフレームの構造

HDLCフレームは以下のような構造を持っています:

フラグアドレス制御データFCSフラグ
(1バイト)(1バイト)(1バイト)(可変長)(2バイト)(1バイト)
HDLC フレーム形式
HDLC フレーム形式

フラグ:フレームの開始と終了を示すために使用されます。通常、0x7E(バイナリで01111110)が使用されます。HDLCは、フレ
    ーム内のデータがフラグと誤認されないように、ビットスタッフィングと呼ばれる手法を使用します。具体的には、
    データフィールド内に111111(6つの連続した1)が現れた場合、送信側は0を挿入します。受信側はこの0を削除して元
    のデータを復元します。これにより、フラグとデータの衝突を防ぎます。
アドレス送信先や送信元のアドレスを指定します。ポイントツーポイント接続では、アドレスフィールドは通常0xFF(ブロード
     キャスト)または0x03(ユニキャスト)です。
制御:フレームの種類(情報フレーム、監視フレーム、非番号フレーム)やシーケンス番号などを指定します。
   情報フレーム(Iフレーム):
   ユーザーデータを転送するために使用されます。
   シーケンス番号(N(S))と確認応答番号(N(R))を含み、データの順序や確認応答を管理します。
   例:0x00から始まるフレーム。
   監視フレーム(Sフレーム):
   フロー制御やエラー回復のために使用されます。
   確認応答(ACK)や再送要求(REJ)などの制御情報を含みます。
   例:0x01から始まるフレーム。
   非番号フレーム(Uフレーム):
   リンクの確立や切断、モード設定などの管理機能を提供します。
   例:0x03から始まるフレーム。
データ:実際に転送されるユーザーデータが含まれます。可変長で、最大長はネットワークの設定に依存します。
FCS フレームのエラー検出のために使用されるチェックサムです。
   HDLCは、FCS(Frame Check Sequence)を使用してデータのエラーを検出します。
   FCSはCRC(Cyclic Redundancy Check)アルゴリズムに基づいて計算され、フレームの整合性を確認します。
   通常、CRC-16またはCRC-32アルゴリズムが使用されます。
   エラーが検出された場合、HDLCは以下の方法で回復を試みます:
   再送要求(REJ):エラーが検出されたフレーム以降のすべてのフレームを再送します。
   選択的再送(SREJ):エラーが検出された特定のフレームのみを再送します。

HDLCの動作モード

HDLCには以下の3つの主要な動作モードがあります:
1.NRM (Normal Response Mode): 1次局と 2次局の関係で動作します。セカンダリはプライマリからの指示に従ってデータ
                を送信します。
2.ARM (Asynchronous Response Mode):セカンダリがプライマリからの指示を待たずに自発的にデータを送信できます。
3.ABM (Asynchronous Balanced Mode):各局がプライマリとセカンダリの両方の役割を果たし、対等な関係で通信します。

HDLC(HDLC Station)

①  1次局:コマンドフレームやデータフレームを送信し、レスポンスフレームを受信します。リンク制御システム全体の初期化、
     フロー制御、エラー検出、リカバリなどの作業を担当します。
②  2次局:1次局から送信されたコマンドを受信し、1次局にレスポンスフレームを送信します。1次局と協力して、エラー検出、
     フロー制御、リカバリなどの作業に参加します。
③  複合局:データを送信するだけでなく、コマンドフレームやレスポンスフレームを受信することもできます。リンク全体の
     制御を担当します。

HDLCの拡張機能

HDLCは、基本的な機能に加えて以下のような拡張機能を提供します:
拡張アドレスフィールド:アドレスフィールドを1バイト以上に拡張し、より多くのデバイスをサポートします。
拡張制御フィールド:制御フィールドを2バイトに拡張し、より多くのシーケンス番号をサポートします。
非同期転送モード:非同期通信をサポートし、柔軟なデータ転送を実現します。

HDLCのプロトコルスタックにおける位置づけ

HDLCは、OSI参照モデルのデータリンク層(第2層)に位置します。以下のような役割を果たします:
上位層とのインターフェース:ネットワーク層(第3層)からのデータをフレーム化して転送します。
物理層との連携:物理層(第1層)を通じてビットストリームを送受信します。

HDLCの派生プロトコル

HDLCを基盤として、以下のような派生プロトコルが開発されています:
PPP(Point-to-Point Protocol):インターネット接続で広く使用されるプロトコル。HDLCのフレーム構造を拡張し、
               認証やマルチプロトコル対応を追加。
LAPB(Link Access Procedure, Balanced):X.25ネットワークで使用されるプロトコル。HDLCのABMモードを基に設計。
LAPD(Link Access Procedure, D-channel):ISDNのDチャネルで使用されるプロトコル。
Frame Relay:HDLCを簡素化し、高速データ転送を実現。エラー回復機能を削減し、効率を向上。

HDLCの実際の使用例

CiscoルーターでのHDLC:CiscoルーターのデフォルトWANプロトコルとしてHDLCが使用されます。ポイントツーポイント接続で
            信頼性の高い通信を提供します。
金融ネットワーク:銀行間の専用線接続でHDLCが使用されます。高い信頼性とセキュリティが求められる環境で活用されます。
産業用ネットワーク:工場内の制御システムやセンサーネットワークでHDLCが使用されます。リアルタイム性と信頼性が重要
          な場面で採用されます。

PPPプロトコル、HDLCプロトコル、SDLCプロトコルの比較

① リンクタイプ:PPPとHDLCは、全二重リンクのみをサポートしています。SDLCも全二重リンクをサポートしていますが、
        半二重リンクもサポート可能です。
② 透過的伝送:PPP プロトコルはバイト充填とゼロ充填をサポートします。 HDLC プロトコルはゼロビット パディングのみを
       サポートします。ィングのみをサポートしています。
       SDLCプロトコルは、HDLCと同様にゼロビットスタッフィングを使用します。
③ エラー制御:PPPとHDLCは、エラー検出(CRC冗長チェック)を実装していますが、エラー訂正は行いません。
       SDLCも同様にエラー検出(CRC)をサポートしていますが、エラー訂正機能はありません。
④ 伝送単位:PPPプロトコルはバイト指向で、バイト単位でデータを伝送し、各PPPフレームは整数バイトです。
      HDLCプロトコルはビット指向で、ビット単位でデータを伝送するため、データが整数バイトである必要はあり
      ません。
      SDLCプロトコルもビット指向で、HDLCと同様にビット単位でデータを伝送します。
⑤ プロトコルフィールド:PPPプロトコルには2バイトのプロトコルフィールドがあります。
            HDLCにはプロトコルフィールドはありませんが、制御フィールドがあり、類似の機能を提供します。
            SDLCにもプロトコルフィールドはありませんが、制御フィールドを使用してフレームの種類を指定し
            ます。
⑥ 信頼性:PPPプロトコルにはシーケンス番号や確認応答メカニズムがないため、信頼性が低いです。
     HDLCプロトコルにはシーケンス番号と確認応答メカニズムがあり、信頼性が高いです。
     SDLCプロトコルもHDLCと同様に、シーケンス番号と確認応答メカニズムを備えており、信頼性が高いです。

まとめ

HDLCは、データリンク層における信頼性の高い通信を実現するための重要なプロトコルです。そのシンプルで効率的な設計により、さまざまなネットワーク環境で広く利用されています。特に同期通信やエラー検出機能は、現代のネットワーク技術の基盤として重要な役割を果たしています。

上部へスクロール