RTPを受信するC++プログラムでパケット損失の問題をデバッグしています。私のプログラムは、大量のRTPデータを受信してかなり長い間実行された後、パケットを失い始めます。
Wiresharkでトレースすると、欠落しているパケットが表示されますが、アプリケーションがそれらを受信することはありません。ネットワークスタックは、それらをアプリケーションに配信する前にそれらをドロップするようです。アプリケーションを再起動すると、すべてが正常に戻ります。
エラー状態を生成するために、RTPでマシンを過負荷にすると、その時点でパケット損失が発生しますが、これには正当な理由があります。しかし、過負荷を停止して適度な速度で送信を開始した後でも、パケット損失が発生するため、すべてのデータを再度受信するには、アプリケーションを再起動する必要があります。
これはLinuxの受信バッファ処理の問題ですか?欠落しているパケットがどこに行くかを確認するために、どのLinux統計を確認できますか?