WindowsゾンビTCP接続を終了する方法は?


11

XPでbeyondtvリンクを実行しており、vistavをVistaホストに接続しています。Linkプログラムは約20分後にハングしますが、これに対する修正はありません。これが発生すると、tcpviewを使用して、ホストにリンク接続から残っている約200のゾンビtcp接続があることがわかります。私はそれらをクリアすることはできません、それらは同じ存在しないプロセスからのものです。ホストを再起動するまで、接続は滞っています。再起動は、beyondtv Linkに再接続するための唯一の方法です。これを引き起こしているbeyondtvにバグがあると思いますが、私は彼らのフォーラムで答えを得ることができません。とにかく、これらすべてのつながりを殺す方法があるかどうか知りたいのですが。

編集:実際には、約40分後に約3000のWAIT_CLOSE接続が蓄積され、その後クライアントが停止します。サーバーアプリを閉じると、これらすべてのソケットがtcpviewの-non-existent-プロセスによって所有されていると表示されます。分かります。しかし、再起動せずにそれらを閉じる方法はありませんか?


ここで質問の報奨金を開始する方法はありませんか?そのためのボタンが表示されません。
P AUL

:あなたは2日間までとなって、質問の後に報奨金を提供することができますsuperuser.com/faq
キホーテいんちき

3
火。火かショットガン。
Phoshi、2009年

1
@phoshi:または軌道からそれを核攻撃します。確実にする唯一の方法です。
quack quixote、2009年

1
私は破滅的な方法で自分を殺すことを好む:superuser.com/questions/54937/3d-windows-managers/55130#55130
DaveParillo 2009年

回答:



7

CLOSE_WAITは、接続が相手側で閉じられたことを意味します。

明らかに、beyondtvはこの状態を検出せず、相手側のアプリケーションにデータを送信し続けます。もう一方の端は接続の端を閉じているため、この接続を介して何も送信できません。

解決策は、TcpTimedWaitDelayエントリを

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters

このエントリは、TCPが閉じられた接続を解放してそのリソースを再利用するまでに経過する必要がある時間を決定します。閉鎖と解放の間のこの間隔は、TIME_WAIT状態または2MSL状態と呼ばれます。この間、クライアントとサーバーは、新しい接続を確立するよりもはるかに少ないコストで接続を再開できます。

私のマシンのデフォルトでは、これには-1の値が含まれています。これは、閉じられた接続が解放されないことを意味します。これは、まさに観察している動作です。

このエントリの値を30〜300秒の許容範囲に設定することをお勧めします。私の場合は300秒= 5分で十分だと思いますが、コンピュータがフリーズするのに40分かかります。


TIME_WAIT私をここに連れてきた。説明とリンクをありがとう。
Technext 2018

こんにちは、説明ありがとうございます。それでもTCP接続は閉じません。CLOSE_WAITが増加しています。タイムアウトを30秒に設定しました
aadi1295

1

1)を無効にしてから2)ネットワークインターフェースを再度有効にすることで、WindowsにすべてのTCP接続を強制的に閉じるように強制できる場合があります。それが機能する場合は、必要に応じて実行するステップをバッチスクリプトで作成できます。

netshユーティリティ(または同様のもの)から、コマンドラインを介してこれを行う方法を探しましたが、今のところ運がありません。

もちろん、これを修正する最良の方法は、壊れたアプリケーションを修正することです。アプリケーションの最新バージョンを試していることを確認してください。開発者を悩ませ続けます。すでに最新バージョンになっている場合は、古いバージョンのプログラムを探してみてください。


アプリを最新バージョンに更新しましたが、役に立ちませんでした。サポートチケットを持っています。ネットワークプロパティで無効にしようとし、デバイスマネージャーでもアンインストールしましたが、WAIT_CLOSE接続のリストは影響を受けませんでした。これは私が触れられないOSのどこかにあるリストです。
P AUL

1

プログラムがハングしているため、これらのCLOSE_WAITセッションを取得している可能性があります。原因として疑わしいかどうかはわかりません。明確にしたいだけです。

私の推測では、彼らは永遠にぶらぶらすることはありません。おそらく2時間5秒だけです。永遠に思えるかもしれません。あなたは試すことができKeepAliveTimeのをチューニング 5分のような、小さなものにダウン、ネットワーク接続のために(おそらく1回の最後の再起動が必要)。これは、プログラムがハングした、より速く消えるのを助けるかもしれません。

または、プログラムを確実に、たとえば一度に10分間実行できることがわかっている場合は、定期的に再起動することもできます。これらの解決策のいずれかが特定の状況に役立つかどうかはわかりません。問題のあるアプリのバージョンをできるだけ早く破棄する必要があることに同意します。


私はプログラムがKeepAliveTimeパラメータのシステム設定を上書きすることを許可されていると思うので、役に立たないかもしれませんが、試す価値があることに同意します。ただし、微調整すると他のアプリケーションで問題が発生する可能性があります。
quack quixote 2009年

0

beyondtvが接続を開いたままにしている別のプロセスを生成しているかどうかを確認します。これが発生している場合、Process Explorerに表示されます。


追加のプロセスが見つかりません。beyondtvとそれに関連するすべてのプロセスを閉じても効果はありません。これらの接続は、プロセスの<存在しない>と表示されます。プロセスは終了しましたが、接続は閉じません。
P AUL

私は回答評価の上下ボタンで遊んでいましたが、0に戻す方法はありません。-1または1なので、1のままにしておきます。この回答は役に立ちません-この質問を投稿する前に、しばらくの間、プロセスエクスプローラーとtcpviewを使用しました。
P AUL

0

ファイアウォールに問題がある可能性はありますか?試行され再試行されている不完全な接続である可能性があります。

両方のマシンですべてのファイアウォールを無効にし、ルーターがある場合はその内部ファイアウォールも無効にします。


私も以前にそうしました。シナリオを再実行しても、影響はなく、問題は残っています。linksysルーターを調べていますが、調査します。
P AUL

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.