2016-05-06 32 views
1

iperfは、損失、スループット、ジッタなどのネットワーク統計を測定するための優れたツールです。私はそれをたくさん使ってきました。しかし、私はちょうどそれらの統計をどのように計算するのだろうかと思っています。スループットのために、一定の時間内に受信したバイト数を単純に測定できます。ジッタの場合、パケット到着時間を測定するだけです。しかし、UDPの損失については、どのように計算することができます。私の推測では、特にシーケンス番号を埋め込むことによってペイロードを構築すると考えられます。したがって、サーバーはどのパケットが失われたかを予測できます。誰かがiperfパケットペイロードの内容を知っていますか?iperfによるネットワーク統計の計算方法

もう1つは、接続の最後に、iperfクライアント(送信者)が統計情報を持つサーバーレポートを受信することです。このレポートを送信するポート番号はどれですか?このレポートはTCPまたはUDPを使用していますか?私はtcpdumpを使ってキャプチャできません。

私は上記の質問に対する回答を見つけるためにオンラインで検索しようとしました。しかし、私はiperfの使い方しか見つけられません。 iperfの仕組みを説明しているドキュメント/ウェブサイトはないようです。誰かがいくつかの洞察力を与えたり、いくつかの文書を指摘できますか?

答えて

1

を私は見てiperf3のためのtcpdumpもいくつか取っていました。私はiperf3について次のような理解を持っています。

iperf UDPパケットでは、タイムスタンプとシーケンス番号(iperfソースコードがpcountと呼ぶ)が送信側によってペイロードに書き込まれます。受信者がパケットを取得すると、ジッタのタイムスタンプとパケット損失カウントのシーケンス番号が抽出されます。

ジッタは、タイムスタンプと現在の時刻を比較して遅延を検出することによって計算されます(D_current)。次に、| D_current -D_previous | (差は送信側と受信側の間のクロック同期をキャンセルします)、ジッタに寄与します。

損失は、現在のpcountと、以前に受信したpcountに1を加えた予想pco​​untの差を累積することです。

iperf udp(クライアント側で-uオプション付き)またはtcpであっても、iperfが起動すると、制御TCP接続が確立されます。この制御TCP接続は、テストの最後に、上記で計算されたCPU Utils、ジッタおよび損失を含むクライアント側およびサーバ側の統計情報を交換するために使用されます。

iperf2ログからは、制御TCP接続が見つかりません。

関連する問題