我遇到過的一些網絡問題
為什么我的 TCP 揮手只有 3 次
因為 fin 和 ack 一起返回了,所以 tcpdump 抓包顯示三次
ESTABLISHED 的連接只在一端有,另一端卻沒有
應用端可以把 tcp 連接一端的 keepalive 關閉,就是 tcp 的探活機制,連接的這一端可能就會一直有 ESTABLISHED 的連接
CLOSE_WAIT 狀態連接過多怎么辦
該狀態對端已經發出 fin 本地已經發出 ack,但是本端沒有發出 fin,這種情況就是 tcp 的半關閉狀態,這種情況下本端可能還會發送數據包,如果應用測確定沒有問題可以設置 so_linger,就是 CLOSE_WAIT 持續多久之后就可以關閉了
一些其他的網絡知識
delayed ack 與 nagle's 算法還有 tcp 連接的七個定時器
參考資料
nagle’s 算法(https://en.wikipedia.org/wiki/Nagle's_algorithm )
云網絡丟包故障定位,看這一篇就夠了(https://mp.weixin.qq.com/s/-Q1AkxUr9xzGKwUMV-FQhQ )
那些你不知道的 TCP 冷門知識!(https://mp.weixin.qq.com/s/6lop61UtnQ-vfWJy17V87w )
我之前寫的一個分享 ( https://github.com/WisWang/blog/blob/main/2023/技術分享.pdf )
浙公網安備 33010602011771號