同期データリンク制御( SDLC ) は、IBMがシステムネットワークアーキテクチャ(SNA)の一部として最初に導入したコンピュータシリアル通信プロトコルです。SDLC は、 SNAプロトコルスタックのレイヤ 2、データリンク層として使用されます。マルチポイントリンクとエラー訂正をサポートします。また、SDLC ヘッダーの後に SNA ヘッダーが存在することを前提として動作します。[ 1 ] SDLC は主にIBM メインフレームおよびミッドレンジシステムで使用されていましたが、多くのベンダーの多くのプラットフォームで実装されています。米国およびカナダでは、SDLC は交通管制キャビネットで見られます。[ 2 ] SDLC は 1975 年にリリースされました。 [ 3 ]これは、 1970 年代初頭にIBMのために行われた作業に基づいています。 [ 4 ]
SDLCはネットワーク内の各通信リンクで独立して動作し、ポイントツーポイントのマルチポイントまたはループ設備、交換または専用、2線式または4線式回線、全二重および半二重動作で動作できます。[ 5 ] SDLCのユニークな特徴は、4線式回線で半二重のセカンダリステーションと全二重のプライマリステーションを混在させることができ、専用設備のコストを削減できることです。[ 6 ]
この事実上の標準は、1979年にISOによって高レベルデータリンク制御(HDLC)として採用され[ 4 ] 、 ANSIによって高度データ通信制御手順(ADCCP)として採用されました。後者の標準では、非同期バランスモードや、ビットオクテットの倍数である必要のないフレームサイズなどの機能が追加されましたが、一部の手順やメッセージ(TESTメッセージなど)も削除されました。[ 7 ]
Intel は、フィールドバスとしてヨーロッパで今も人気のBITBUSの基本プロトコルとして SDLC を使用し、いくつかのコントローラ (i8044/i8344、i80152) でサポートしました。8044 コントローラは現在もサードパーティ ベンダーによって生産されています。1980 年代の通信コントローラ チップに SDLC (およびわずかに異なる HDLC) のハードウェア サポートを組み込んだ他のベンダーには、Zilog、Motorola、National Semiconductorなどがあります。その結果、1980 年代にはさまざまな機器で SDLC が使用され、1980 年代の標準であったメインフレーム中心の企業ネットワークで非常に一般的でした。SDLC を使用した SNA の最も一般的な代替手段は、おそらくDigital Data Communications Message Protocol (DDCMP)を使用したDECnet、Burroughs Data Link Control (BDLC) を使用した Burroughs Network Architecture (BNA)、およびIMPsを使用したARPANETでした。[ 8 ]
HDLCは主にSDLCの拡張版であるが、[ 9 ] : 69-72、一部の機能は削除または名称変更されている。
HDLCには存在するがSDLCには存在しない機能は以下のとおりです。
SDLCには含まれていないものとしては、ISO/IEC 13239のHDLC拡張機能(例:)などがある。
HDLCは一部のSDLCフレームの名前を変更した。HDLCの名前は後のバージョンのSDLCに組み込まれた:[ 9 ]: 73
HDLCで追加された機能の中には、その後SDLCの後のバージョンにも再び追加されたものがある。
SDLCには存在するがHDLCには存在しない2つのUフレームは以下のとおりです。
HDLCでは、いくつかのUフレームはほとんど使用されておらず、主にSDLCとの互換性のために存在している。
TEST Uフレームは初期のHDLC規格には含まれていませんでしたが、後に追加されました。
例えばZilog SCCでサポートされているが HDLC には組み込まれていないSDLC の特殊な動作モードとしてSDLC ループ モードがある。 [ 9 ] : 42–49,58–59 このモードでは、プライマリと複数のセカンダリが単方向リング ネットワークで接続され、各セカンダリの出力が次のセカンダリの入力に接続される。各セカンダリは、入力に到着したすべてのフレームをコピーしてリングの残りの部分に到達させ、最終的にプライマリに戻るようにする責任を負う。このコピーを除いて、セカンダリは半二重モードで動作し、プロトコルが入力を受信しないことを保証する場合にのみ送信する。
セカンダリーの電源がオフになると、リレーはその入力と出力を直接接続します。電源がオンになると、セカンダリーは適切なタイミングを待ち、1ビットの遅延を伴ってデータストリームに挿入される「オンループ」状態になります。クリーンシャットダウンの一環として、「オフループ」状態になる際にも同様のタイミングが使用されます。
SDLCループモードでは、フレームはグループで到着し、(最終フラグの後に)すべて1のアイドル信号で終了します。この信号の最初の7つの1ビット(パターン01111111)は、「ゴーアヘッド」シーケンス(EOP、end of pollとも呼ばれる)を構成し、セカンダリに送信許可を与えます。送信を希望するセカンダリは、1ビットの遅延を使用して、このシーケンスの最後の1ビットを0ビットに変換し、フラグ文字にしてから、自身のフレームを送信します。自身の最終フラグの後、ループ上の次のステーションへのゴーアヘッドとして機能する、すべて1のアイドル信号を送信します。
グループはプライマリからのコマンドで開始し、各セカンダリが応答を付加します。プライマリがアイドル状態へのゴーサインシーケンスを受信すると、セカンダリの処理が完了したことを認識し、さらにコマンドを送信できるようになります。
ビーコン(BCN)応答は、ループ内の断線箇所を特定するために設計されています。長時間受信トラフィックがないセカンダリは、「ビーコン」応答フレームの送信を開始し、プライマリに対して、そのセカンダリと前任のセカンダリ間のリンクが切断されたことを通知します。
プライマリは送信したコマンドのコピーも受信しますが、これは応答と区別がつかないため、コマンドの末尾に特別な「ターンアラウンド」フレームを追加して、コマンドを応答から分離します。セカンダリによって解釈されない一意のシーケンスであれば何でも構いませんが、慣例としてはすべてゼロの1バイトです。[ 9 ] : 44 これはアドレスが0(予約済み、未使用)で、制御フィールドやフレームチェックシーケンスのない「ラントフレーム」です。(全二重動作が可能なセカンダリは、これを「シャットオフシーケンス」と解釈し、送信を中止させます。[ 9 ] : 45)
コントローラー ユニット内のすべての通信は、SDLC 互換のコマンド レスポンス プロトコルであり、0 ビット スタッフィングをサポートし、毎秒 614.4 キロビットのデータ レートで動作する必要があります。