ランダムなHTTP接続の問題

ランダムなHTTP接続の問題

インターネット アクセスに関する奇妙な問題が発生していますが、デバッグ方法がわかりません。特定のサイト セットが約 90% の確率で「接続リセット」ステータスで読み込みに失敗します。IP でアクセスしても同じ結果になります。IP の ping は機能します (パケット損失なし)。最新の更新プログラムがインストールされた Windows Server 2012 を実行しています。

Fiddler (HTTP MITM デバッガー) は、HTTP 応答が「HTTP 504」であると表示しています。Wireshark は、TCP レベルで「接続リセット」パケットを受信して​​いることを示しています。

以下の変更を試しました:

次の場合に問題が解決しないことがあります:

  • IPでアクセス
  • wgetの使用
  • 別のネットワーク アダプタを使用する (3G 対応の USB テザリング フォン)
  • 別のブラウザを使用する
  • VirtualBox VM内でブラウザを使用する
  • ファイアウォールを無効にする
  • セーフモード(ネットワーク付き)で起動します。
  • DNSサーバーの変更。
  • 別の非管理者ユーザーとしてログインします。

次の場合、問題は解消されます:

  • 別のマシンを使用する
  • TORの使用
  • 別のOSを使用する
  • Fiddler で HTTP リクエストを 5 回以上再発行する (つまり、最初の 5 回の再発行は失敗し、それ以降の再発行は成功する)。
  • Fiddler を使用して HTTP リクエストをキャプチャし、別のマシンで再発行します。

最後の手段は OS を再インストールすることです。この問題をデバッグするために他に試せる方法はありますか?

答え1

失敗した接続は、CloudFlare 対応の Web サイトへの TCP 接続でした。Windows Server 2012 では、明示的な輻輳通知が既定で有効になっており、TCP パケットで ECN および CWR (輻輳ウィンドウの縮小) フラグが true に設定されています。

私は実行することで問題を解決しました

netsh interface tcp set global ecncapability=disabled

答え2

これは少し難しいですが、この手順で、他の方法では解決できなかった奇妙な問題が解決したことがあります。したがって、完全な再インストールに頼る前に、試してみる価値は間違いなくあります。

次のコマンドを実行して、WindowsマシンのTCP/IPスタックをリセットします。

netsh int ip reset c:\resetlog.txt(ログパスの最後のパラメータはオプションです)

下のリンクをたどると、自動化ツールも見つかります。

ドキュメンテーション:http://support2.microsoft.com/kb/299357/ja

関連情報