TCPヘッダ復習問題その2
■以下のTCPヘッダについての説明の文章中の空欄を下のKey Wordsから選択して埋めてください。なお、Key Wordsは複数回使われるものもありますし、1度も使われないものもあります。
※TCPヘッダのフォーマットは以下の通りです。
ポート番号は(「0」)から(「1023」)でサーバアプリケーションを識別するための(「ウェルノウンポート番号」)と(「1024」)以上でクライアントアプリケーションを識別するための(「ランダムポート番号」)があります。 主なウェルノウンポート番号は次の通りです。
HTTP:(「80」)
(「FTP」):20/21
SMTP:(「25」)
POP3:(「110」)
(「TELNET」):23
TCPは(「コネクション型プロトコル」)です。「シーケンス番号」「ACK番号」はコネクションの確立、TCPセグメントの順序制御、確認応答を行うために利用されます。ちなみに、セグメントとはトランスポート層の(「PDU」)の名称です。
「シーケンス番号」はTCPセグメントの番号です。そして、「ACK番号」は次に送って欲しいセグメントの(「シーケンス番号」)です。たとえば、シーケンス番号100で10バイトのデータを受信すると(「確認応答」)として、ACK番号(「110」)を返していきます。シーケンス番号100から10バイトはきちんと受け取ることができたので、次はシーケンス番号110から送ってくださいという意味です。
また、(「エラー制御」)もシーケンス番号とACK番号で行います。TCPではセグメントを送ってから一定時間内に(「確認応答」)が返ってこないとエラーとみなします。この一定時間はネットワークの状況によって、送信元が(「動的」)に決定していきます。
経路の途中でデータがなくなってしまった場合、送信先に届きません。その場合は、もちろんACKが返ってこないです。また、送信先に届いても、エラーチェックを行うとエラーがあった!というときには、ACKを返しません。 ACKが返ってこなければ、送信元は(「エラー」)とみなしてもう一度セグメントを再送信します。
TCPでは、このように(「シーケンス番号」)と(「ACK番号」)を使って、セグメントの順序制御および(「エラー制御」)を行います。
では、シーケンス番号、ACK番号は最初いくつから始まるのか?
これを決定するのが(「3ウェイハンドシェイク」)です。TCPのコネクション確立の過程を(「3ウェイハンドシェイク」)と呼んでいます。3ウェイハンドシェイクによって、これからの通信に使うシーケンス番号、ACK番号を決めていきます。
「データオフセット」は実際のデータがどこから始まるのかということを示すためのポインタです。早い話が、データオフセットは(「ヘッダ長」)になります。ただし、(「4バイト」)単位です。通常は、TCPヘッダは(「20バイト」)の大きさなので、データオフセットには(「5」)が入ります。 「予約」は0で固定です。







