インフラ系SEの技術メモ

雑なエンジニアが低信頼性のメモを書いています。参考程度にとどめてください。

(TCP/IPパケット)TSvalとTSecrとは?

パケットに付与されるタイムスタンプ

例えば最初のコネクション確立においてクライアント側が入れたTSValが応答側のTSecrに格納されています。

[SYN] Seq=0 Win=14600 Len=0 MSS=1380 SACK_PERM=1 TSval=YYY TSecr=0 WS=128	
[SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0 MSS=1440 SACK_PERM=1 TSval=XXX TSecr=YYY WS=512

同値の仕様を確認するとTSvalはその名の通りタイムスタンプバリュー(TS Value)の略、TSecrはタイムスタンプエコーリプライ(TS Echo Reply)。ACK時に元のパケットのTSvalをTSecrに複写する動きをしますが、TCPコネクションがうまく言っていないとここの値が別のSYCの値を持ってきていたりします。そうなるとクライアント側はRSTパケットで切断をかけます。