TCP連線的坑總結
一. 關於半關閉和CLOSE_WAIT
客戶端主動關閉,傳送FIN包。服務端收到FIN,發出ACK,停留在CLOSE_WAIT狀態。這個狀態持續時間非常長,伺服器如果積攢大量的CLOSE_WAIT狀態socket,有可能耗盡資源。為什麼會產生這樣情況?有可能sockfd通過fork被子程式複製了一份,這樣該sockfd引用計數為2。在關閉socket時使用close()函式並沒有關掉該fd,僅僅是引用計數減1,所以服務端沒有向客戶端傳送FIN,這樣就造成了socket處於CLOSE_WAIT狀態。解決的辦法是:使用shutdown()函式。關於shutdown()函式用法參見:linux網路程式設計之shutdown() 與 close()函式詳解。
二. 關於FIN_WAIT2狀態
三. 關於TIME_WAIT狀態
相關文章
- 簡單總結nodejs處理tcp連線的核心流程NodeJSTCP
- tcp 連線TCP
- TCP 連線管理TCP
- tcp的半連線攻擊和全連線攻擊--TCP DEFER ACCEPTTCP
- TCP連線注意事項TCP
- TCP連結的建立和釋放TCP
- 12、Swoole 中 TCP、UDP 和長連線、短連線TCPUDP
- TCP/UDP對比總結TCPUDP
- Smack 開發總結(一)管理連線Mac
- 拔掉網線後, 原本的 TCP 連線還存在嗎?TCP
- Libevent應用 (五) 連線監聽器,接收tcp連線TCP
- TCP連線是如何建立和終止的?TCP
- iOS 小坑總結iOS
- Socket和TCP連線過程解析TCP
- Luat例項教程:tcp短連線TCP
- 最多能建立多少個 TCP 連線?TCP
- TCP 三次握手原理以及半連線和全連線TCP
- TCP/IP、HTTP和Socket總結TCPHTTP
- TCP常見問題總結TCP
- TCP使用注意事項總結TCP
- 記一次懸浮窗的上線以及坑點總結
- 系列TCP/IP協議-TCP建立與終止連線(012)TCP協議
- linux系統影響tcp連線數的因素LinuxTCP
- 限制單個IP併發TCP連線的方法TCP
- ISP 連結總結
- ORACLE會話連線程式三者總結Oracle會話線程
- 聊聊 TCP 長連線和心跳那些事TCP
- 單臺伺服器最大tcp連線伺服器TCP
- TCP連線狀態異常記錄TCP
- 教你如何使用tcpkill殺掉tcp連線TCP
- 統計TCP連線數和狀態TCP
- Flutter填坑全面總結Flutter
- Vue + TypeScript 踩坑總結VueTypeScript
- TCP/IP 基礎知識總結TCP
- [前端 · 面試 ]TCP 總結(一)—— 概述前端面試TCP
- 【前端 · 面試 】TCP 總結(一)—— 概述前端面試TCP
- 【經典】連線oracle的總結(關於tnsname和監聽)Oracle
- 可靠的TCP連線為何是三次握手TCP
- ? 抓包分析 TCP 建立和斷開連線的流程TCP