Jika server Windows memiliki beberapa ribu port terbuka dalam LAST_ACK
keadaan (seperti yang ditunjukkan oleh netstat), apa artinya ini? Apakah karena satu titik akhir sedang menunggu yang lain untuk merespons?
Status last_ack (jika saya ingat stack TCP saya dengan benar) adalah status ketika Anda telah menerima pesan FIN Anda untuk menutup koneksi dari tetangga Anda, tetapi Anda masih perlu menyiram dan mematikan koneksi Anda. Anda mengirim FIN final sendiri dan menunggu ACK.
Biasanya tergantung pada last_ack berarti aplikasi Anda tetap membuka soket bahkan ketika ujung lainnya selesai mengirim data. Ini bisa terjadi karena berbagai alasan. Mungkin ada firewall atau penyeimbang beban lainnya yang kehilangan ACK terakhir dari klien, dan membuat Anda terjebak dalam status last_ack. Jika koneksi tidak berakhir setelah beberapa menit (10 atau lebih), Anda mungkin memiliki bug.
Lihat diagram keadaan di http://tangentsoft.net/wskfaq/articles/debugging-tcp.html
LAST_ACK adalah status terakhir tepat sebelum menutup koneksi TCP.
sumber
LAST_ACK berarti tujuan Anda telah menerima FIN dari rekan, mengirim ACK, mengirim FIN, dan sedang menunggu ACK akhir dari rekan. Pada titik ini tidak ada lagi yang dapat dilakukan aplikasi: soket ditutup. Aplikasi bahkan mungkin sudah keluar. Dari sini, terserah TCP untuk mengirim ulang FIN sampai mendapatkan ACK akhir, atau waktu habis melakukannya. Tidak banyak yang dapat Anda lakukan sebagai admin kecuali menyelidiki jaringannya.
sumber
Saya percaya bahwa @ lmo benar dalam mengatakan bahwa ini "keadaan terakhir tepat sebelum menutup koneksi TCP," tetapi selain itu, berdasarkan pembacaan saya pada halaman wikipedia, perlu dicatat bahwa ini bukan bagian dari " Mekanisme Tutup Aktif "yang (dalam pemahaman saya) adalah akhir dari sebagian besar koneksi yang berperilaku baik, tetapi lebih merupakan bagian dari urutan" Tutup Pasif ", yang mungkin terkait dengan Terjadi Hal Buruk.
(FWIW, saya bahasa, bukan jaringan. Saya akan senang untuk klarifikasi dari orang jaringan.)
sumber