7

UDP パケットをイーサネット アダプタからユーザー空間バッファに直接コピーしたい

私のセットアップに関するいくつかの詳細:

ギガビット イーサネット カメラのペアからデータを受信して​​います。組み合わせると、1 秒あたり 28800 UDP パケットを受信して​​います (1 ラインあたり 1 パケット * 30FPS * 2 台のカメラ * 480 ライン)。ジャンボ フレームに切り替える方法はなく、CPU 使用率を下げるためにドライバー レベルの割り込みを調整することを既に検討しています。ここで求めているのは、この ~40MB/s のデータ ストリームをコピーする回数を減らすことです。

これは私がこれについて見つけた最良の情報源ですが、そのようなアプローチが実際にうまくいったというより完全な参照または証拠があることを望んでいました.

4

2 に答える 2

5

この記事は役に立つかもしれません:

http://yusufonlinux.blogspot.com/2010/11/data-link-access-and-zero-copy.html

于 2011-09-16T20:42:05.297 に答える
3

あなたの最善の手段はrecvmmsg、RX割り込みの合体を増やすことです。

http://lwn.net/Articles/334532/

下に移動して、Wireshark/tcpdump の動作に合わせることができますが、すべてを自分でデコードしなければならない以上の深刻な処理を試みるのは無駄になります。

1 秒あたりわずか 30,000 パケットであれば、パケットのコピーについてあまり心配する必要はありません。これらの問題は、1 秒あたり 3,000,000 のメッセージを処理するときに発生します。

于 2011-09-16T21:41:19.387 に答える