Bagaimana cara membunuh koneksi windows zombie tcp?


11

Saya menjalankan tautan beyondtv di xp, menghubungkan ke beyondtv host vista. Program Link hang setelah sekitar 20 menit, dan saya tidak memperbaikinya. Ketika ini terjadi, menggunakan tcpview, saya melihat bahwa tuan rumah memiliki sekitar 200 koneksi tcp zombie yang tersisa dari koneksi Link. Saya tidak dapat menghapusnya, mereka berasal dari proses yang sama tidak ada. Koneksi berkeliaran sampai saya me-reboot host. Mem-boot ulang adalah satu-satunya cara yang saya temukan untuk menyambungkan kembali tautan luar. Saya pikir ada bug di beyondtv yang menyebabkan ini, tapi saya tidak bisa mendapatkan jawaban di forum mereka. Tapi bagaimanapun juga, saya ingin tahu apakah ada cara untuk membunuh semua koneksi itu.

Sunting: sebenarnya sekitar 3000 WAIT_CLOSE koneksi terakumulasi setelah sekitar 40 menit, dan sekitar saat itu klien mati. Jika saya menutup aplikasi server, semua soket ini sekarang ditampilkan sebagai dimiliki oleh proses -tidak ada- di tcpview. Bisa dimengerti Tapi tidak adakah cara untuk menutupnya tanpa boot ulang?


Apakah tidak ada cara untuk memulai hadiah pada pertanyaan di sini? Saya tidak melihat tombol untuk itu.
P aul

Anda dapat menawarkan hadiah setelah pertanyaannya selesai selama 2 hari: superuser.com/faq
quack quixote

3
Api. Api atau senapan.
Phoshi

1
@ phoshi: atau nuke dari orbit. itu satu-satunya cara untuk memastikan.
quack quixote

1
Saya lebih suka melakukan cara saya membunuh malapetaka: superuser.com/questions/54937/3d-windows-managers/55130#55130
DaveParillo

Jawaban:


10

Anda dapat menggunakan Currports Nirsoft untuk memantau dan mematikan koneksi.

Anda dapat secara otomatis mematikan pola koneksi menggunakan AutoHotKey.


7

CLOSE_WAIT berarti koneksi ditutup di ujung lainnya.

Jelas, beyondtv tidak mendeteksi kondisi ini dan terus mengirim data ke aplikasi di ujung lainnya. Ujung yang lain tidak dapat mengirim apa pun kembali melalui koneksi ini, karena telah menutup ujung koneksi.

Solusinya adalah dengan mengatur entri TcpTimedWaitDelay di

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Parameters

Entri ini menentukan waktu yang harus dilewati sebelum TCP dapat melepaskan koneksi tertutup dan menggunakan kembali sumber dayanya. Interval antara penutupan dan pelepasan ini dikenal sebagai status TIME_WAIT atau status 2MSL. Selama waktu ini, koneksi dapat dibuka kembali dengan biaya yang jauh lebih rendah untuk klien dan server daripada membuat koneksi baru.

Secara default pada mesin saya, ini berisi nilai -1, yang saya maksudkan bahwa koneksi tertutup tidak pernah dirilis, yang persis perilaku yang Anda amati.

Saya sarankan Anda mengatur nilai entri ini dalam rentang yang diizinkan 30-300 detik. Saya kira 300 detik = 5 menit sepenuhnya cukup untuk kasus Anda, di mana dibutuhkan 40 menit untuk membekukan komputer Anda.


Pencarian TIME_WAITmembawa saya ke sini. Terima kasih atas penjelasan dan tautannya.
Technext

hai, terima kasih atas penjelasannya. Itu masih belum menutup koneksi TCP. CLOSE_WAIT meningkat. Saya telah menetapkan Batas Waktu hingga 30 detik
aadi1295

1

Anda mungkin dapat memaksa Windows untuk menutup paksa semua koneksi TCP dengan 1) menonaktifkan , kemudian 2) mengaktifkan kembali antarmuka jaringan Anda. Jika itu berhasil, Anda bisa mengelompokkan langkah-langkah untuk dieksekusi saat diperlukan.

Saya telah mencari-cari cara untuk melakukan ini melalui commandline, dari netshutilitas (atau yang serupa), tapi sejauh ini saya belum beruntung.

Tentu saja, cara terbaik untuk memperbaikinya adalah memperbaiki aplikasi yang rusak. Pastikan Anda mencoba versi terbaru aplikasi; terus mengganggu pengembang; jika Anda sudah berada di versi terbaru, coba cari versi program yang lebih lama.


Saya memperbarui aplikasi ke versi terbaru, tidak membantu, dan saya memiliki tiket dukungan. Saya mencoba menonaktifkan di properti jaringan, dan juga mencopot pemasangan di pengelola perangkat, dan daftar koneksi WAIT_CLOSE tidak terpengaruh. Ini adalah daftar di suatu tempat di OS yang sepertinya tidak bisa saya sentuh.
P aul

1

Anda mungkin mendapatkan sesi CLOSE_WAIT ini karena program hang - saya tidak tahu apakah Anda mencurigainya sebagai penyebabnya, jadi hanya ingin menjelaskannya.

Dugaan saya adalah bahwa mereka tidak akan bertahan selamanya; mungkin hanya selama 2 jam dan 5 detik. Bisa seperti selamanya, saya tahu. Anda dapat mencoba menyetel KeepAliveTime (mungkin memerlukan satu reboot akhir) untuk koneksi jaringan Anda ke sesuatu yang kecil, seperti 5 menit. Itu mungkin membantu mereka menghilang lebih cepat, setelah program Anda hang.

Atau jika Anda tahu Anda dapat menjalankan program dengan andal untuk, katakanlah, 10 menit setiap kali, Anda bisa memulai kembali secara berkala. Tidak tahu apakah ada solusi yang berguna untuk situasi khusus Anda; Saya setuju dengan ~ dukun bahwa Anda harus membuang versi aplikasi yang bermasalah sesegera mungkin.


saya pikir program diizinkan untuk mengesampingkan pengaturan sistem pada parameter KeepAliveTime, jadi mungkin tidak membantu, tapi saya setuju mungkin patut dicoba. tweaker itu dapat menyebabkan masalah dengan aplikasi lain, namun.
dukun quixote

0

Lihat apakah beyondtv memunculkan proses lain yang menahan koneksi terbuka. Process Explorer akan menunjukkan kepada Anda jika ini terjadi.


Saya tidak dapat menemukan proses tambahan. Menutupi melampaui dan semua proses yang terkait tidak memiliki efek. Koneksi ini muncul dengan <non-existent> untuk proses. Proses telah keluar tetapi koneksi tidak mau menutup.
P aul

Saya bermain dengan tombol jawab penilaian naik / turun dan tidak ada cara untuk kembali ke 0, itu -1 atau 1 jadi saya meninggalkannya di 1. Akan lebih baik untuk memiliki pertanyaan ini dengan 0 tanggapan pada saat ini karena jawaban ini tidak membantu - saya menggunakan proses explorer dan tcpview untuk beberapa waktu sebelum memposting pertanyaan ini.
P aul

0

Apakah mungkin ada masalah firewall? Ini mungkin koneksi yang tidak lengkap yang dicoba dan coba lagi.

Saya akan menonaktifkan semua firewall di kedua mesin, dan jika ada router juga firewall internal.


Saya juga melakukan itu sebelumnya. Memutar ulang skenario, tidak berpengaruh, masalah tetap ada. Saya melihat router linksys namun, saya akan menyelidiki.
P aul

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.