私たちの環境ではランダムなRSTパケットの問題に直面しており、予期しない動作が発生します。次の画像は、wiresharkによって生成されたtcpデータのスナップショットであり、問題を示しています。
- クライアント(117.136.2.181)がサーバー(192.168.40.16)との接続を正常にセットアップしました
- クライアントは、KEEP_ALIVE信号だけでなく、いくつかのデータをサーバーに送信します。
- サーバーはデータを受信して処理し、結果をクライアントに送り返します。
- サーバーがソケットを閉じます。
- サーバーはクライアントからACK信号を受信しないため、結果データとFIN信号を再送信します。これはTCPプロトコルによって自動的に行われます。ただし、サーバーはクライアントからACK信号を受信しません。
- サーバーはRST信号をクライアントに送信するため、接続は閉じられます。
いくつかの分析の結果、ステップ3の後にネットワークの問題が発生したと考えられるため、サーバーから送信されたすべての結果データとFIN信号はクライアントによって確認されませんが、サーバーから送信されたRST信号については非常に混乱しています。私たちの理解に基づくと、ハーフクローズソケットがデータを受信した場合、またはソケットを閉じたときに受信キューにデータがある場合、RST信号が送信されます。しかし、これらは両方とも私たちのケースの根本的な原因ではないようです。
なぜこれが起こっているのかを詳しく説明するのを助けることができますか?