現在、Windowsで実行されている自作サーバーアプリケーションで問題が発生しています(異なるバージョンで発生します)。サーバーはTCPポートでリッスンし、接続を受け入れ、一部のデータを交換してから、接続を再度閉じます。時々接続する約100のクライアントがあります。
サーバーが動作を停止することがあります。ログファイルには、接続が引き続き受け入れられていることが示されていますが、最初の読み取り試行でソケットエラー(10054-ピアによる接続のリセット)が発生します。すべてのクライアントで突然機能しなくなるため、クライアントの問題ではないと思います。
同じ問題が、別のプログラミング言語で書かれた古いサーバーソフトウェアでも発生することがわかりました。それで、それは私たちのプログラムのエラーではないようです-それはある種のOS /ファイアウォールの問題であるに違いないと思いますか?もちろん、ファイアウォールは非アクティブ化されていますが、まだ問題は解決していません。
どこを調べるべきか?Wiresharkのログはすぐに続きます。
ログからの抜粋(タイムスタンプ、スレッドID、メッセージ)
11:37:56.137 T#3960 Connection from 10.21.13.3
11:37:56.138 T#3960 Client Exception: Socket Error # 10054
Connection reset by peer.
11:37:56.138 T#3960 ClientDisconnected
11:38:00.294 T#4144 Connection from 10.21.13.3
接続が受け入れられるのとほぼ同時に例外が発生することがわかります。この場合、クライアントは数秒後に再接続します。