信頼性の高いデータ転送
信頼性の高いデータ転送とは、パケットを破損、紛失、または順序変更する可能性のある基盤となるネットワーク上で、プロトコルがデータを正確に、順序通りに、損失や重複なく配信するための一連の原則です。
Definition
信頼性の高いデータ転送とは、信頼性の低い基盤チャネルにもかかわらず、データが受信側アプリケーションに正確かつ順序通りに配信されることを保証するトランスポート層サービスであり、肯定応答、シーケンス番号、タイムアウト、および再送によって実現されます。
Scope
このトピックでは、特定のプロトコルに依存しない、信頼性の高い配信の背後にある一般的なメカニズムについて説明します。具体的には、肯定応答と否定応答、損失と重複を検出するためのシーケンス番号、破損のためのチェックサム、再送タイマー、および効率のために多数のパケットを処理中に保持するパイプライン化されたスライディングウィンドウプロトコル(Go-Back-Nと選択的再送)です。これらはTCPが構築される基盤として開発されています。このトピックには、リンクごとの信頼性ではなくネットワークの過負荷に対処する輻輳制御、およびTCP自体の詳細については含まれません。
Core questions
- 信頼性の高いプロトコルは、どのような障害(破損、損失、重複、順序変更)を克服しなければならないか?
- 肯定応答とシーケンス番号は、受信側が問題を検出して通知するためにどのように機能するか?
- 送信側は、タイムアウトと再送を使用して損失から回復するためにどのように機能するか?
- パイプライン化されたプロトコル(Go-Back-N、選択的再送)は、ストップ&ウェイトと比較してどのように効率を向上させるか?
- Go-Back-Nと選択的再送のトレードオフは何か?
Key concepts
- 肯定応答 (ACK/NAK)
- シーケンス番号
- チェックサム
- 再送タイマーとタイムアウト
- ストップ&ウェイト
- 自動再送要求 (ARQ)
- パイプライン処理
- スライディングウィンドウ
- Go-Back-Nと選択的再送
Key theories
- ストップ&ウェイトと自動再送要求
- 最も単純な信頼性の高いプロトコルは、1つのパケットを送信し、肯定応答を待ち、タイムアウト時に再送します。シーケンス番号は、新しいデータと再送されたデータを区別し、すべての信頼性の高い転送が構築される中核的なARQメカニズムを確立します。
- スライディングウィンドウによるパイプライン処理
- ウィンドウによって制限された、複数の未確認パケットの同時送信を許可することで、高遅延リンクでのスループットが向上します。Go-Back-Nは、最初の損失パケットからすべてを再送しますが、選択的再送は、より多くのバッファリングと管理のコストをかけて、失われた特定のパケットのみを再送します。
Clinical relevance
信頼性の高いデータ転送の原則は、ファイル転送、ウェブページ、およびほとんどのアプリケーションデータが、損失が多く輻輳した経路であっても無傷で到着することを可能にするものです。肯定応答、シーケンス番号、ウィンドウ、再送といった同じ考え方は、TCP、リンク層の信頼性、および新しいトランスポートプロトコルで繰り返し現れるため、それらを理解することは、スループット、遅延、および損失からの回復について考察するための基礎となります。
History
信頼性の高い転送メカニズムは、初期のリンクプロトコルとARPANETのために開発されました。そこでは、ストップ&ウェイト方式、そしてスライディングウィンドウARQ方式が、信頼性とスループットのバランスを取るために洗練されました。完璧なチャネルから損失や順序変更を伴うチャネルに至るまで、信頼性の高い転送原則の体系的かつ段階的な開発は、標準的な教育アプローチとなり、TCPの設計の基礎となっています。
Key figures
- James F. Kurose
- Keith W. Ross
- Andrew S. Tanenbaum
Related topics
Seminal works
- kurose2021
- tanenbaum2010
Frequently asked questions
- なぜシーケンス番号を使用するのか?
- シーケンス番号により、受信側はパケットを区別できるため、損失(シーケンスの欠落)を検出し、重複(再送によって引き起こされる繰り返し番号)を破棄し、順序が狂って到着したデータを並べ替えることができます。これらがなければ、送信側と受信側は、新しいパケットと再送されたパケットを区別できません。
- Go-Back-Nと選択的再送の違いは何か?
- どちらも複数のパケットをパイプライン処理します。Go-Back-Nは、送信側が最初の損失パケット以降のすべてを再送するため、シンプルですが、正しく受信されたデータも再送する可能性があります。選択的再送は、失われた特定のパケットのみを再送し、順序が狂った到着をバッファリングするため、より効率的ですが、両端でより多くの状態を必要とします。