DCN-データリンク制御とプロトコル
データリンク層は、ポイントツーポイントフローおよびエラー制御メカニズムの実装を担当します。
フロー制御
データフレーム(レイヤー2データ)が単一のメディアを介して1つのホストから別のホストに送信される場合、送信者と受信者が同じ速度で動作する必要があります。つまり、送信者は、受信者がデータを処理して受け入れることができる速度で送信します。送信者または受信者の速度(ハードウェア/ソフトウェア)が異なる場合はどうなりますか?送信者の送信速度が速すぎると、受信者が過負荷になり(圧倒され)、データが失われる可能性があります。
フローを制御するために、2種類のメカニズムを展開できます。
Stop and Waitこのフロー制御メカニズムは、データフレームを送信した後、送信者を強制的に停止し、送信されたデータフレームの確認応答が受信されるまで待機します。
Sliding Window
このフロー制御メカニズムでは、送信者と受信者の両方が、確認応答を送信する必要があるデータフレームの数について合意します。フロー制御メカニズムがリソースを浪費することを学び、停止し、待機するため、このプロトコルは、基盤となるリソースを可能な限り利用しようとします。
エラー制御
データフレームが送信されると、転送中にデータフレームが失われたり、受信が破損したりする可能性があります。どちらの場合も、受信者は正しいデータフレームを受信せず、送信者は損失について何も知りません。そのような場合、送信者と受信者の両方に、データの損失などのトランジットエラーを検出するのに役立ついくつかのプロトコルが装備されています。フレーム。したがって、送信者がデータフレームを再送信するか、受信者が前のデータフレームの再送信を要求する可能性があります。
エラー制御メカニズムの要件:
Error detection -送信者と受信者は、両方またはいずれかで、輸送中に何らかのエラーがあることを確認する必要があります。
Positive ACK -受信者が正しいフレームを受信すると、それを確認する必要があります。
Negative ACK -受信者が破損したフレームまたは重複したフレームを受信すると、受信者はNACKを送信者に送り返し、送信者は正しいフレームを再送信する必要があります。
Retransmission: 送信者はクロックを維持し、タイムアウト期間を設定します。以前に送信されたデータフレームの確認応答がタイムアウトの前に到着しない場合、送信者はフレームまたはその確認応答が転送中に失われたと考えてフレームを再送信します。
自動再送要求(ARQ)によってエラーを制御するためにデータリンク層が展開できる手法には、次の3つのタイプがあります。
ストップアンドウェイトARQ
Stop-and-Wait ARQでは、次の遷移が発生する可能性があります。
- 送信者はタイムアウトカウンターを維持します。
- フレームが送信されると、送信者はタイムアウトカウンターを開始します。
- フレームの確認応答が間に合うと、送信者はキュー内の次のフレームを送信します。
- 確認応答が間に合わない場合、送信者はフレームまたはその確認応答のいずれかが転送中に失われたと見なします。送信者はフレームを再送信し、タイムアウトカウンターを開始します。
- 否定応答が受信された場合、送信者はフレームを再送信します。
戻る-NARQ
停止および待機ARQメカニズムは、リソースを最大限に活用しません。確認応答を受信すると、送信者はアイドル状態になり、何もしません。Go-Back-N ARQ方式では、送信者と受信者の両方がウィンドウを維持します。
送信ウィンドウサイズにより、送信者は前のフレームの確認応答を受信せずに複数のフレームを送信できます。受信ウィンドウを使用すると、受信者は複数のフレームを受信して確認応答できます。受信機は、着信フレームのシーケンス番号を追跡します。
送信者がウィンドウ内のすべてのフレームを送信すると、肯定応答を受信したシーケンス番号までチェックします。すべてのフレームが確実に確認応答されると、送信者は次のフレームセットを送信します。送信者は、特定のフレームでNACKを受信したか、ACKを受信していないことを検出すると、すべてのフレームを再送信し、その後、正のACKを受信しません。
セレクティブリピートARQ
Go-back-N ARQでは、レシーバーにはウィンドウサイズ用のバッファースペースがなく、各フレームを処理する必要があると想定されています。これにより、送信者は確認応答されていないすべてのフレームを再送信するように強制されます。
Selective-Repeat ARQでは、受信機はシーケンス番号を追跡しながら、フレームをメモリにバッファリングし、欠落または損傷しているフレームに対してのみNACKを送信します。
この場合の送信者は、NACKを受信したパケットのみを送信します。