私はイーサネットを介してクライアントサーバー構成を実行しており、両端でパケット遅延を測定しています。クライアント(ウィンドウ)は5ミリ秒ごとにパケットを送信しています(ワイヤーシャークで確認済み)。しかし、サーバー(組み込みLinux)は5ms間隔で数秒間だけパケットを受信し、その時点で300msの間停止します。この休憩の後、待ち時間はわずか20秒です。約数秒後に別の休憩が300ミリ秒かかる。これは無期限に繰り返されます(300msのブレーク、20usのパケットレイテンシバースト)。サーバープログラムが中間バーストでIOを読み取るために最適化されているかのようです。なぜこうなった?なぜUDPパケットの受信は一見実行中に最適化されていますか?
免責事項:クライアントとサーバーが複雑なアプリケーションの小さなサブセットであるため、私はコードを掲載していませんが、明白な回答がそれ自体ではない場合は、それを考慮に入れていきたいと思います。
すべてのパケットが受信されていますか? – EJP
私はそう信じています。私は明日これを確認することができます。 – Ralph
どのようにレイテンシーを測定しますか?リクエストレスポンスはありますか?あなたは原子時計を持っていますか?データグラムのサイズは? – rodolk