日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

关于timewait状态

發布時間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于timewait状态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

四次揮手

  1. 主動關閉連接的一方,調用close,協議層發送FIN包,在TCP報頭的FIN字段設置為1,意思是我要和你斷開鏈接,主動關閉連接的一方進入到了FIN_WATI_1狀態
  2. 被動關閉的一方收到了FIN包之后,協議層回復ACK包,在他的TCP報頭中將ACK設置為1,表示收到了對方的關閉連接請求,被動 的一方進入到了CLOSE_WAIT狀態;主動關閉的一方收到了被動關閉一方的響應,等待對方關閉,主動關閉的一方進入到了FIN_WAIT_2狀態;
    這里解釋一下,為什么被動關閉的一方收到主動關閉一方的FIN包之后進入的狀態是CLOSE_WAIT狀態呢,因為此時是傳輸層,傳輸層要等待上層的close操作
  3. 被動關閉的一方在完成所有的數據傳輸之后,調用 close操作,此時發送FIN包,在TCP報頭中將FIN字段設置為1,表示我要和你斷開連接,等待對方的ACK,此時被動關閉的一方進入到了LAST_ACK狀態
  4. 主動弄關閉的一方,收到了對方的FIN包之后,回復了ACK包,主動關閉的一方進入到了TIME_WATI狀態,而被動關閉的一方進入到了CLOSED狀態
  5. 主動關閉的一方等待了2MSL時間,結束TIME_WATI狀態,進入了 CLOSED狀態

為什么會有TIME_WAIT狀態呢???

他的出現主要是為了解決網絡丟包和網絡不穩定所帶來的其他問題:
1. 防止前一個連接的延遲數據包或者是丟失重傳數據包被下一個連接使用,可能出現這樣一種情況,用戶在瀏覽器訪問一個網站的時候,他的IP和端口號假設是192.168.3.2:8080,當用戶再次在在瀏覽器中訪問這個網站的時候,使用的IP和端口號恰巧還是192.168.3.2:8080,這個時候延遲數據或者是丟失重傳的數據就會被新的 連接錯誤使用了
2. 防止最后傳輸的ACK包沒有被對方接受,如果被動關閉的一方給主動關閉的一方發送了FIN,此時被動關閉的一方進入到了LAST_ACK狀態,主動關閉連接的一方收到請求之后,回復ACK包,但是ACK丟失了,此時被動關閉的一方一直停留在LAST_ACK狀態,被動方就會重發FIN包
如果TIME_WATI狀態的很短,或者是沒有這個狀態,如果此時又新建立了一次連接,剛好這個連接是上次使用過的ip和port,這個時候就會收到錯誤連接的包,連接不成功

如何查看當前有timewait狀態有哪些

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'  

TIME_WAIT 814
CLOSE_WAIT 1
FIN_WAIT1 1
ESTABLISHED 634
SYN_RECV 2
LAST_ACK 1

服務器timewait狀態問題

Linux能夠分配的文件描述符是有限的,服務器需要處理網絡的數量巨大的請求,如果存在大量的timewait狀態狀態,勢必會造成系統的資源浪費,甚至是服務宕機。因為服務器是需要客戶端建立連接的,通過ip+port的方式,可以理解為是端口號處于timewait狀態。服務器可以設置SO_REUSEADDR套接字選項來通知內核,如果端口忙,但TCP連接位于TIME_WAIT狀態時可以重用端口。

總結

以上是生活随笔為你收集整理的关于timewait状态的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。