一部の WinXP および Windows 7 マシンでネットワーク パフォーマンスに問題がありますが、すべてではありません。
send() 呼び出しを発行し、次に recv() 応答を発行します。ロギング システムはログ ファイルにティックし、アプリケーションは遅延が recv() にあると考えます (ほぼ正確に 500 ミリ秒 + 毎回 15 ミリ秒のクォンタム)。ただし、Wireshark では、送信パケットが実際に送信されてから応答が受信されるまでに大きな遅延はまったく見られません。そのため、何かが send() を 500 ミリ秒ブロックしているように見えるか、アプリがそれを確認する前に応答全体が遅延します (これは最大 30K 程度であり、大量のパケットです)。
Windows ファイアウォールをオンまたはオフにしても何も起こりません。このコンピュータにはトレンド マイクロの試用版がインストールされていますが、アクティブ化されておらず、無効になっています。問題のある他のコンピューターには、他のウイルス対策ソフトウェアなどがあります。
Nagle と遅延 ACK を調査しましたが、どちらも原因ではないようです。念のため、TCP_NODELAY も使用しています。TcpAckFrequency レジストリ エントリも何も変更しません。
単一の send() と単一の recv() を実行しています。派手なものはありません。
ポート 80 の使用に問題があるのではないかと考え、未知のパケット インスペクション チョークを使用して、同じ効果を持つ別のポートを試しました。
何か案は?
編集
一部の専門家ユーザーは、ウイルス対策ソフトウェアをアンインストールすると (無効になっているものでも) 修正されると主張していますが、常にではないと主張しています。また、さまざまなシステムがさまざまなウイルス対策パッケージを使用しています (これは Trend Micro が無効になっているもの、他は Norton など) の弱い証拠です。
編集2
同じように動作する WinXP システムが見つかったため、これを Win7 以外の固有のものにするように更新しました。