ループバックインターフェイスを介したUDP使用時のパケットの並べ替えと複製

ループバックインターフェイスを介したUDP使用時のパケットの並べ替えと複製

私たちは、UDPパケットがloを介して送信されたときに並べ替えられ、繰り返されることがわかります。これはヘッダーに一意のシーケンス番号を持つMPEGトランスポートストリームを送信するためです。トラフィックをRTPに送信し、このポイントまでこのように並べ替えられたパケットを見てみることもできます。これは潜在的なものと関連している可能性があります。これ問題は、ネットワークを介してデータを送信するコードを使用しているため、書き込みはあまり行われませんが、パケットが1500バイトのフレームに適していることです。

デフォルトの推奨設定(私たちloにはrxキューが1つしかありません)を使用してRFSを設定しようとしましたが、あまり違いはありません。これは、独自のUDP / RTPコードやsrt-live-transmitなどのアプリケーションに関係なく発生するようです(FFMPEGをテストしていませんが、同様に動作する可能性があります)。

これはRedhat 8.3(カーネル4.18.0-240.15.1.el8_3)にあります。

答え1

RPSを有効にしてみてください。

cat /sys/devices/virtual/workqueue/cpumask > /sys/class/net/lo/queues/rx-0/rps_cpus

パケットの並べ替えが予想されますが、RPSは修正であり、今後も引き続き機能する必要があります。 https://lore.kernel.org/netdev/[Eメール保護]/

関連情報