[英]Tcp connections hang on CLOSE_WAIT status
客戶端首先關閉套接字,當服務器沒有太多數據時,tcp連接關閉就好了:
FIN -->
<-- ACK
<-- FIN, ACK
ACK -->
當服務器忙於發送數據時:
FIN -->
<-- ACK,PSH
RST -->
並且服務器連接進入CLOSE_WAIT狀態並在那里掛了很長時間。
這有什么問題? 客戶相關或服務器相關? 這種情況發生在Redhat5上,用於本地套接字。
本文討論為什么發送“RST”,但我不知道為什么服務器連接卡在CLOSE_WAIT上,並且不發送FIN。
[編輯]我忽略了最重要的信息,這發生在qemu的slirp網絡仿真上。 這似乎是處理密切連接的slirp bug的問題。
這可能意味着服務器尚未關閉套接字。 您可以通過使用“lsof”列出由該進程打開的文件描述符(包括TCP套接字)來輕松告訴您。 解決方法是讓進程在完成時始終關閉套接字(即使在錯誤情況下等)
這是qemu的一個已知缺陷 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.