使用Wireshark的TCP数据包的RTT时序

Nit*_*inG 3 networking tcp wireshark

我想计算TCP数据包的往返时间.

但是在wireshark中,我没有看到任何特定字段用于TCP数据包的RTT时序,就像它的RTP数据包一样.

Wireshark会计算RTT图,但我不知道它是如何计算的.

有人可以帮助我找到用于相同的公式吗?

Bri*_*ite 5

TCP内部没有任何内容可以提供往返时间.它是由内核根据接收到发送数据的ACK所花费的时间来估计的.它记录给定序列号何时消失的时间戳,并将其与相应ACK的时间戳进行比较.最初的3次握手为此提供了一个不错的起始值.

然而,这仅仅是估计,因为如果接收器感觉它可以通过单个回复响应多个传入分组,则可以在短时间内自由地延迟ACK.

由于网络条件的变化,RTT经常在会话期间发生变化.终点越远,效果越明显越明显.


And*_*ner 5

如果你想获取由wireshark/tshark计算出的RTT值,下面的技巧可以帮助我将它们打印在标准输出上:

tshark -r myfile.pcap -Y 'ip.addr == AA.BB.CC.DD' -T fields -e tcp.analysis.ack_rtt
Run Code Online (Sandbox Code Playgroud)

(我之后使用显示过滤器-Y将分析限制为仅一台远程主机)