最近、当社のWebサイトを閲覧するMacおよびLinuxユーザーに限定されているTCP接続の問題に気づきました。
ユーザーの観点からは、Webサイトへの非常に長い接続時間(> 11秒)として表示されます。
私たちはこの問題の技術的な特徴を追跡することができましたが、なぜそれが起こっているのか、どうやってそれを修正するのかがわかりません。
基本的に、クライアントのマシンはSYN接続を送信してTCP接続を確立し、Webサーバーはそれを受信しますが、SYN / ACKパケットで応答しません。クライアントが多くのSYNパケットを送信した後、サーバーは最終的にSYN / ACKパケットで応答し、接続の残りの部分はすべて問題ありません。
そして、もちろん、問題のキッカー:それは断続的であり、常に発生するわけではありません(ただし、10〜30%の時間で発生します)
OSとしてFedora 12 Linuxを使用し、WebサーバーとしてNginxを使用しています。
Wireshark分析のスクリーンショット
更新:
クライアントでウィンドウスケーリングをオフにすると、問題が発生しなくなりました。今、私はちょうどサーバー側の解像度が必要です(すべてのクライアントがこれを行うことはできません)
最終更新:
解決策は、公開されているサーバーでTCPウィンドウのスケーリング と TCPタイムスタンプの両方をオフにすることでした。