2012-10-16 31 views
1

我想計算TCP數據包的往返時間。使用Wireshark的TCP數據包的RTT時序

但是在wireshark中,我看不到任何特定字段的RTT時序,例如TCP數據包的RTP數據包。

Wireshark做計算RTT圖,但我沒有找到它如何計算。

有人能幫我找出用於相同的公式嗎?

+1

時間隱含在TCP(RTP,顧名思義,明確涉及時間)。 RTT是由Wireshark在具有過去分段的ACK的分組上計算的,並且被計算爲原始分組的SEQ和該分組的ACK之間的時間增量。由於它是計算出來的,你可以在數據包的[SEQ/ACK分析]下看到它,而不是字段。 – onon15

回答

4

TCP內部沒有任何內容給出往返時間。內核根據發送的數據接收ACK需要多長時間來估計它。它記錄了給定序列號何時發生的時間戳,並將其與相應ACK的時間戳進行比較。最初的3次握手爲此提供了一個體面的起始值。

但是,這只是一個估計值,因爲如果接收器感覺它可以用單個回覆響應多個傳入數據包,它可以在短時間內自由延遲ACK。

由於網絡條件的變化,RTT在會話期間頻繁變化。遠離端點的效果(顯然)更明顯。

+0

http://www.wireshark.org/lists/wireshark-users/200906/msg00068.html – NitinG

1

如果您使用Wireshark的,它顯示iRtt =初始往返每個發送的數據包的往返時間,只要看看「在新窗口/ SEQ/ACK顯示數據包分析」

0

如果你想獲得RTT的通過的wireshark/tshark的計算的值,以下所做的特技爲我在stdout打印它們:

tshark -r myfile.pcap -Y 'ip.addr == AA.BB.CC.DD' -T fields -e tcp.analysis.ack_rtt 

(其中I中使用的顯示器用濾光器-Y後限制分析只有一個遠程主機)