Soru LAST_ACK netstat'ta bir Devlet değeri olarak ne anlama geliyor?


Bir Windows sunucusunda birkaç bin port varsa LAST_ACK devlet (netstat tarafından gösterildiği gibi), bu ne anlama gelebilir? Bir uç nokta diğerinin cevap vermesini beklemiyor mu?


13
2018-03-31 15:10


Menşei




Cevaplar:


Last_ack durumu (TCP yığınımı doğru olarak hatırlarsam), FIN mesajınızı aldığınızda komşunuzdaki bağlantıyı kapatmak için durumdur, ancak yine de bağlantınızı temizlemeniz ve kapatmanız gerekir. Son Fin'i kendiniz gönderirsiniz ve bir ACK için beklersiniz.

Tipik olarak last_ack'de asılı kalmak, diğer ucun veri göndermeyi bitirdiğinde bile uygulamanızın bir soket açık kalması anlamına gelir. Bu birden çok nedenden dolayı olabilir. Son ACK'yi istemciden kaybeden bir güvenlik duvarı veya başka bir yük dengeleyici olabilir ve sizi son_day durumunda kalmış olarak bırakır. Bağlantılar birkaç dakika (10 ya da daha fazla) sonra zaman aşımına uğramazsa muhtemelen bir hatanın var demektir.

Durumundaki şemaya bir göz atın. http://tangentsoft.net/wskfaq/articles/debugging-tcp.html


9
2018-03-31 16:09



Doğru değil. CLOSE_WAIT'i açıklıyorsunuz. - user207421


LAST_ACK, TCP bağlantısını kapatmadan önce en son durumdur.


3
2018-03-31 15:20



Teşekkürler, bu eyalette bir limana neden olan ne olabilir? - Nick Bolton
Bunu bir IIS web sunucusu mu (veya başka bir hizmet), ya da kendi uygulamanızda mı görüyorsunuz? - Imo
Uygulama, "Cook Computing" XML-RPC istemcisini (Asp.Net'den, IIS ile çalışır) uygular ve bir Java XML-RPC sunucusundan söz eder. - Nick Bolton
TCP sohbetinin müşteriyle son aşamaları. Yazılımınız TCP oturumunu kapatır () ve istemciye bir LAST_ACK gönderir. Müşteri daha sonra LAST_ACK'in alındığına dair bir geri bildirim göndermelidir. Bu istemcide (belki de güvenlik duvarı) pehrs ile aynı fikirdeyim ya da paket kayıp olmuş olabilir ... bunlar en muhtemel iki dava. - Imo
'Müşteriye LAST_ACK' göndermez. Bir FIN gönderir ve halihazırda bir FIN almış ve bir ACK göndermiş olan bir ACK'yi beklemektedir. Bu son durum sonra bağlantıyı kapatmak. - user207421


LAST_ACK, ucunuzun akrandan bir FIN aldığını, bir ACK gönderdiğini, bir FIN yolladığını ve son ACK'nın akranından beklediğini gösterir. Bu noktada, uygulamanın yapabileceği başka bir şey yoktur: soket kapalı. Uygulama bile çıkmış olabilir. Bundan sonra, son ACK'yi alana kadar FIN'yi tekrar göndermek ya da bunu yapmak için zaman aşımına uğramak TCP'ye kalmış. Şebekeyi araştırmak dışında bir yönetici olarak yapabileceğiniz fazla bir şey yok.


1
2018-06-17 05:36





@Lmo'nun "TCP bağlantısını kapatmadan önceki son durum olduğunu söyleyerek doğru" olduğuna inanıyorum, ama buna ek olarak, wikipedia sayfasının okunmasına dayanarak, bunun bir parçası olmadığını da dikkate değer " Aktif Yakın "mekanizma (benim anlayışımda), çoğu iyi huylu bağlantının sona ermesiydi, fakat daha ziyade Bad Stuff Happening ile ilişkili olan" Passive Close "dizisinin bir parçasıydı.

(FWIW, ben dillerim, ağlar değil. Bir ağ kişiden açıklama yapmaktan mutluluk duyarım.)


0
2017-10-05 16:54