「UDP に比べて TCP の方が通信の信頼性が確保されていると言われているが、この信頼性について説明せよ。」
ポイント:
TCP の提供する信頼性がどのようなものであるか述べられていること。
信頼性を保証するための機能について説明されていればなおよし。
模擬解答:
下位層プロトコルの特性により送出されたデータは消失したり、順序が変わっ
たり、再送により重複したりする。
TCP はデータの欠損・重複・誤りがなく、上位層から渡されたデータがその
ままの順序で受信側の上位層に渡されるという信頼性を提供するための機能
を提供している。
信頼性を保証するための機能は以下の通り。
・データの順序の保証
送信側は送信するデータにシーケンス番号という番号を振り、受信側は
その番号の順序を調べてゆくことによって受信したデータの順序を確認
する。間違ったシーケンス番号のデータが届いた場合には、その時点
から確認応答を送信側に返さずに、正しい順序のデータが届くのを待つ。
重複したシーケンス番号についても同様に扱う。
・データ到着の保証
送信側はデータを送信する際にタイマーを設定し、受信側から受信の確認
応答が返ってくるのを待つ。送信側がある時間内に確認応答を受け取らな
かった場合に、データを再送する。
・データの正しさの保証
送信側はヘッダとデータのチェックサムを計算し、セグメントに付加して
送信する。受信側はチェックサムが正しくない場合、そのデータが転送さ
れている間に変化したとみなし、確認応答を返さない。
結果として送信側がある時間内に確認応答を受け取らないことになり、
データが再送される。
(もうひと書きした方がよいかも...)