2

RAWソケットベースのパケット送信テスト中に、非常に苛立たしい症状が見つかりました。デフォルトのRAWソケット設定(特にSO_SNDBUFサイズの場合)では、rawソケットは問題なく100,000パケットを送信しますが、すべてのパケットを送信するのに約8秒かかり、パケットはレシーバープロセスによって正しく受信されます。これは、デフォルト設定で約10,000 pps(パケット/秒)が達成されることを意味します。(予想に反して小さすぎると思います。)

とにかく、pps値を増やすために、/ proc / sys / net / core / {wmem_max、wmem_default}を調整して、パケット送信バッファーサイズを増やしました。2つのシステムパラメータを増やした後、私は刺激的な症状を特定しました。100,000パケットはすぐに送信されますが、受信プロセス(リモートノードにある)によって受信されるのは3,000パケットだけです。

Linuxボックス(Centos 5.2)の送信時に、netstat-a-sとifconfigを実行しました。Netstatは、100,000の要求が送信されたことを示しましたが、ifconfigは、3,000のパケットのみがTXされていることを示しています。

これが発生する理由を知りたいです。また、この問題をどのように解決できるかも知りたいです(もちろん、それが本当に問題であるかどうかはわかりません)。

誰かが私にこの問題へのアドバイス、例、または参照を与えることができますか?

よろしく、bjlee

4

2 に答える 2

1

パケットのサイズや、ネットワーク、NIC、ハードウェアの特性、またはデータを受信するリモート マシンについては何も言われませんでした。

/proc/sys で遊ぶ代わりに、ethtoolを使用してリング バッファーの数を調整する必要があると思いますが、必ずしもそれらのバッファーのサイズを調整する必要はありません。

また、このページは優れたリソースです。

于 2012-11-01T08:41:13.850 に答える