TCP パケットのラウンド トリップ タイミングを計算したいと考えています。
しかし、Wireshark では、RTP パケットの場合のように、TCP パケットの RTT タイミングに関する特定のフィールドは見当たりません。
Wireshark は RTT グラフを計算しますが、計算方法がわかりません。
誰かが同じものに使用される式を見つけるのを手伝ってくれますか?
TCP パケットのラウンド トリップ タイミングを計算したいと考えています。
しかし、Wireshark では、RTP パケットの場合のように、TCP パケットの RTT タイミングに関する特定のフィールドは見当たりません。
Wireshark は RTT グラフを計算しますが、計算方法がわかりません。
誰かが同じものに使用される式を見つけるのを手伝ってくれますか?
往復時間を与えるTCP内部には何もありません。送信されたデータへの ACK を受信するのにかかる時間に基づいて、カーネルによって推定されます。特定のシーケンス番号が出たときのタイムスタンプを記録し、対応する ACK のタイムスタンプと比較します。最初の 3 ウェイ ハンドシェイクは、これに適切な開始値を与えます。
ただし、受信側は、複数の着信パケットに 1 回の応答で応答できると感じた場合、短時間 ACK を自由に遅延させることができるため、これは推定値にすぎません。
RTT は、ネットワーク条件の変化により、セッション中に頻繁に変化します。効果は (明らかに) エンドポイントが離れているほど顕著です。
Wireshark/tshark によって計算された RTT の値を取得したい場合は、次のようにして標準出力に出力するようにしました。
tshark -r myfile.pcap -Y 'ip.addr == AA.BB.CC.DD' -T fields -e tcp.analysis.ack_rtt
-Y
(分析を1つのリモートホストのみに制限するために、表示フィルターを使用した場所)
Wireshark を使用している場合、iRtt =initial Round Trip と送信された各パケットの Rtt が表示されます。「新しいウィンドウでパケットを表示 /seq/ack 分析」を参照してください。