TCP报文的时间戳
Youky ... 2021-10-11 Less than 1 minute
# TCP报文的时间戳
作用有两个:
- 计算往返时间RTT
- 防止序列号回绕
# 计算RTT
以a向b发送为例
- a发送的报文1中,
timestamp字段存放的是发送时的时间timeA - b向a回复的报文2中,
timestamp字段存放的是发送时的时间timeB,timestamp echo字段存放的是timeA - a收到报文2时,时间为
timeA',再从报文中读取timeA,即可计算RTT
# 防止序列号回绕
序列号Sequence Number是0~2^31-1范围内循环的,即达到最大值后从0重新开始循环。
序列号用于确认报文的顺序,以便按正确的顺序进行组装。若出现回绕,则会造成疑惑。
而通过时间戳,则可以分辨不同数据包发送的先后顺序。