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重新开始循环。
序列号用于确认报文的顺序,以便按正确的顺序进行组装。若出现回绕,则会造成疑惑。
而通过时间戳,则可以分辨不同数据包发送的先后顺序。