我试图了解 TCP 时间戳及其用途。
假设我在两台主机之间有一个 TCP 会话,其中一台向另一台发送数据包。当接收方收到数据包时,是否可以使用 TCP 时间戳来计算数据包从发送方到接收方的时间?两个主机上用于时间戳的时钟可能不同步是否重要?
我知道如果您等待 ACK 获得 RTT 然后除以 2,则可以测量行程时间,但是接收方可以测量来自某个发送方的行程时间,而无需发送或接收更多数据包(并且仅使用 TCP/IP 标头数据?
我试图了解 TCP 时间戳及其用途。
假设我在两台主机之间有一个 TCP 会话,其中一台向另一台发送数据包。当接收方收到数据包时,是否可以使用 TCP 时间戳来计算数据包从发送方到接收方的时间?两个主机上用于时间戳的时钟可能不同步是否重要?
我知道如果您等待 ACK 获得 RTT 然后除以 2,则可以测量行程时间,但是接收方可以测量来自某个发送方的行程时间,而无需发送或接收更多数据包(并且仅使用 TCP/IP 标头数据?
如果 Sender 支持 TCP Timestamp(它不是必需的,或者需要准确),那么它将基于 Sender 的时钟。如果时钟不同步,则您无法准确计算数据包到达接收器所花费的时间。
根据我的经验,ICMP 协议更适合测量数据包在两台主机之间传输所需的时间。随着您在 OSI 模型上更上一层楼,主机级别的数据处理会有额外的延迟。