1

これが間違った場所であれば許してください - これは私の最初の投稿です.

Mininet でネットワークをセットアップしました - 同じ帯域幅と遅延 (帯域幅: 10Mbps、遅延: 10ms) で 2 つのノードを作成しました。iperf を使用してこれをテストする場合、次の手順を実行します。

  1. ノード 1 (10.0.0.2) iperf -s で iperf サーバーを開始します。
  2. ノード 2 (10.0.0.3) iperf -c 10.0.0.2 で iperf クライアントを開始します。
  3. テストが完了します

ノード 2 (クライアント) の帯域幅は 11.2Mbps、テスト時間は 10.4 秒です。ノード 1 (サーバー) の帯域幅は 9.56Mbps で、テスト時間は 12.2 秒です。クライアントとサーバーの両方が同じ転送サイズ (13.9Mb) を示しています。

この時間差は、個々のパケットの遅延によるものですか? TCP ウィンドウ サイズは 85.6 キロバイトなので、ネットワーク上で送信される各パケットに 10 ミリ秒の遅延を追加すると、おおよその差が許容されます。ただし、送信側と受信側の両方で 10 ミリ秒のネットワーク遅延があるため、遅延は 20 ミリ秒になると考えていましたが、そうではないのはなぜですか?

これが理にかなっていることを願っています。

ベン

4

3 に答える 3

0

残念ながら、mininet には未解決の一連のバグが表示されます。そのバグの 1 つは、使用可能な帯域幅よりも高いスループットに相関しています。さらに、使用帯域幅の遅延は、考慮すべき別の問題であることを示しています。

0ms の遅延で実験を繰り返すことをお勧めします。

于 2015-10-28T00:35:49.703 に答える
0

私のテストによると、彼らが使用するのは 1000 と 1024 の間の変換だけです。このケースがあるとします:

h1 iperf -s -u -p 2000 -i 1
h3 iperf -u -c 10.0.0.1 -p 2000 -b 20M -i 1

サーバーとクライアントは両方とも、デフォルトで変換に 1000 を使用します。大文字と小文字の [kmgKMG] (-b フラグ付き) は、変換に使用する値を示すために使用されます。この場合、「M」は変換に 1024 を使用し、「m」は変換に 1000 を使用します。デフォルトでは、小文字を使用するため、1000 です。したがって、クライアントで -b 20M と書き込むと、20x1024x1024 ビットのデータが送信されます。サーバーは 20x1024x1024 ビットを受信し、変換に 1000 を使用します。つまり、(20x1024x1024 ビット)/1000/1000=20.97≈21M ビットです。これは、クライアントとサーバーの両方が報告する値です。(パラメーターによって) 20M を送信しましたが、約 21M を取得しました。値は送信前に変換され、表示時に別の単位を使用して元に戻されます。サーバーでも 20M を表示するには、-f M フラグを使用して、1024 を使用して出力をフォーマットします。結論として、-b フラグと -f フラグを示す大文字と小文字に一貫性を持たせてください。サーバーで -f フラグを使用したくない場合は、代わりにクライアントで -b 20m を使用してください。

h3 iperf -u -c 10.0.0.1 -p 2000 -b 20m -i 1
于 2021-07-28T10:55:57.313 に答える
0

テストの開始/終了は、タイマーによってトリガーされる必要があります。実際の開始/終了時間には、シグナル通知/処理オーバーヘッドが含まれている必要があります。これにより、両側のリアルタイムが異なるようになります。

于 2015-10-27T22:18:28.217 に答える