TCPタイムスタンプ
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/01 19:49 UTC 版)
「Transmission Control Protocol」の記事における「TCPタイムスタンプ」の解説
TCPタイムスタンプは RFC 1323 で定義されており、パケット送出の順序をTCPレベルで知ることが出来る。TCPタイムスタンプはシステムクロックに合わせているわけではなく、無作為な値から開始する。多くのOSはこのタイムスタンプ値をミリ秒単位でインクリメントする。ただし、RFCは単に時間経過に比例して増加すべきだとしているだけである。 タイムスタンプのフィールドは2つある。 4バイトの送信側タイムスタンプ値(自分のタイムスタンプ) 4バイトの応答タイムスタンプ値(相手から直近に受け取ったタイムスタンプ値) TCPタイムスタンプは PAWS (Protection Against Wrapped Sequences) と呼ばれるアルゴリズム(RFC 1323 参照)で利用する。PAWSは、2の32乗まであるシーケンス番号が一周してしまう場合に使われる。シーケンス番号はデータバイト毎に振られるので、最大4ギガバイトしか表せないが、最近の高速ネットワークでは1分以内に一周する可能性があり、再送が必要になったとき、現在の周回なのか前の周回なのかを識別するのにタイムスタンプを使う。 RFC 1323 の2.2節では、ウィンドウサイズは1ギガバイトまでとされているため、多くの実装でスケールオプションの最大値を14までとしている。 また、Eifel detection アルゴリズム (RFC 3522) でもTCPタイムスタンプを使っており、再送の原因がパケット喪失なのか順序がばらばらになったせいなのかを判断する。
※この「TCPタイムスタンプ」の解説は、「Transmission Control Protocol」の解説の一部です。
「TCPタイムスタンプ」を含む「Transmission Control Protocol」の記事については、「Transmission Control Protocol」の概要を参照ください。
- TCPタイムスタンプのページへのリンク