助けてください!可能な限りリアルタイムに近い処理を必要とするアプリケーションがあり、TCP と UDP の両方でこの異常な遅延の問題が発生し続けています。遅延は時計仕掛けのように発生し、常に同じ長さ (ほとんど 15 ~ 16 ミリ秒) です。これは、任意のマシン (eve ローカル) および任意のネットワーク (2 つある) に送信するときに発生します。
問題の簡単な概要:
私は常に VS 2008 Pro でコンパイルされた C++ で winsock を使用していますが、TCP と UDP の両方を使用してさまざまな方法で送受信するプログラムをいくつか作成しました。私は常に、さまざまな言語 (MATLAB、C#、C++) で記述された中間プログラム (ローカルまたはリモートで実行) を使用して、あるプログラムから別のプログラムに情報を転送します。どちらの winsock プログラムも同じマシンで実行されるため、同じクロックからの Tx と Rx のタイムスタンプが表示されます。パケットのバーストが送信され、遅延がプログラムされていないにもかかわらず、次のバーストの前に約 15 ~ 16 ミリ秒の遅延が発生するパターンが出現するのを見続けています。パケットのバースト。それ以外の場合 (まれに)、約 47 ミリ秒など、異なる長さの遅延が発生することがあります。
winsock または NIC が各送信前にパケットをバッファリングしている疑いがありますが、証拠は見つかりませんでした。さまざまなレベルのトラフィックを取得する 1 つのネットワークへのギガビット接続がありますが、(少なくともユーザーからの) トラフィックのないプライベート ネットワークと 2 ギガビット接続を持つクラスターで中間プログラムを実行すると、同じことが発生します。送信プログラムと受信プログラムを使用してローカルで中間プログラムを実行すると、この遅延が発生することさえあります。