「ピアによる接続リセット」とはどういう意味ですか?


648

TCP接続での「ピアによる接続リセット」エラーの意味は何ですか?致命的なエラーですか、それとも単なる通知ですか、それともネットワーク障害に関連していますか?

回答:


771

致命的です。リモートサーバーからRSTパケットが送信されました。これは、通常のハンドシェイクではなく、接続の即時ドロップを示します。これにより、通常のハーフクローズ状態遷移がバイパスされます。私はこの説明が好きです:

「ピアによる接続リセット」は、電話をフックに戻すのと同等のTCP / IPです。それは単に返事をしないよりも礼儀正しく、1人がぶら下がっています。しかし、それは本当に丁寧なTCP / IPコンバースに期待されるFIN-ACKではありません。


49
ピアによる接続リセット」と表示されるのはなぜですか?「ホストによる接続リセット」または「サーバーによる接続リセット」のように聞こえます
Robert

27
@Robertリセットが行われたのはそのためです。ピアがRSTパケットを送信しました。
ローンの侯爵2014

106
...ロバート、あなたの懸念は私には意味がありません。ピアは、それよりも厳密に一般的です。典型的なクライアントサーバーモデルでは、サーバーは「クライアント」からこの通知を受け取るのと同じくらい簡単です。最初に接続を要求するマシンには、この通知を送信するのと同じだけの能力があります。TCPレベルでは、接続が継続していると同じように見えます。2つのマシンは、通信しているときはピアです。
codetaku

9
このパックは、ルーターのような真ん中の別のデバイスによって送信された可能性がありますか?
Arnold Roa

3
クライアントまたはサーバーが送信できるため、「サーバーによる接続リセット」とは呼ばれません。「バイパス」することはできません。クライアントがこのエラーを受け取った場合、たとえばサーバーがクラッシュして再起動したため、サーバーでTCP接続が開いていないことを意味します。
ヨハネスオーバーマン2017

193

これは、TCP RSTが受信され、接続が閉じられたことを意味します。これは、接続の端からパケットが送信されたが、反対側が接続を認識しない場合に発生します。接続を強制的に閉じるために、RSTビットが設定されたパケットを送り返します。

これは、相手側がクラッシュしてから復帰した場合、またはclose()転送中のデータがある間にソケットを呼び出した場合に発生する可能性があり、以前に送信したデータの一部が受信されていない可能性があることを示しています。

それがエラーかどうかはあなた次第です。送信する情報がリモートクライアントの利益のためだけのものである場合、最終的なデータが失われた可能性は問題ではありません。ただし、ソケットを閉じて、接続に関連する他のリソースを解放する必要があります。


11
新しいソケットを開くときにソケットオプションSO_LINGERをゼロに設定し、通常どおりに閉じると、RSTビットが設定されます。したがって、すべての接続はリセットで終了します。自宅でこれを試してはいけません。stackoverflow.com/questions/3757289
Chris Huang-Leaver

1
この問題を解決するには、リモートとホストの両方を再起動する必要がありますか?
user2225190

3
@ user2225190クライアントを再接続する必要がありますが、最初にソフトウェアを調べて、それがアプリケーションプロトコルエラー(つまり、相手側がまだ書き込み中の接続を閉じる)によるものではないことを確認する必要があります。
ローン侯爵

1
ご意見ありがとうございます。以前は2か月間動作していました。コマンドラインからも試していますが、まだこのエラーが発生します。「sftp user @ machine」を試してみます。エラーに矛盾があります。
user2225190
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.