原文:Time-wait狀態(2MSL)一些理解

. 編寫TCP SOCK 服務時,SO REUSEADDR到底是什么意思 這個套接字選項通知內核,如果端口忙,但TCP狀態處於TIME WAIT,可以重用端口。如果端口忙,TCP狀態處於其他狀態,重用端口時依舊指明 地址已經在使用中 。如果你的服務程序停止后向立刻重啟,而新套接字依舊使用同一個端口,此時SO REUSEADDR選項非常有用。但是必須意識到,此時任何非期望數據到達,都可能導致服務程 ...

2020-10-09 18:54 0 876 推薦指數:

查看詳情

為什么TCP的TIME_WAIT狀態要維持2MSL

本文主要分析為什么TIME_WAIT狀態的持續時間是2MSL而不是1MSL,3MSL或其它的時長,而不會詳細描述為什么需要TIME_WAIT狀態。 閱讀本文需要的預備知識: 了解TCP協議的狀態變遷; 了解TCP拆鏈的四次揮手過程; 了解為什么需要TIME_WAIT狀態 ...

Tue Jul 14 18:11:00 CST 2020 0 756
為什么tcp的TIME_WAIT狀態要維持2MSL

本文主要分析為什么TIME_WAIT狀態的持續時間是2MSL而不是1MSL,3MSL或其它的時長,而不會詳細描述為什么需要TIME_WAIT狀態。 閱讀本文需要的預備知識: 了解TCP協議的狀態變遷; 了解TCP拆鏈的四次揮手過程; 了解為什么需要TIME_WAIT狀態 ...

Wed Jun 05 01:02:00 CST 2019 2 1798
TCP time_wait為什么持續2MSL

time_wait timewait先發起close的一端的第二階段: a fin b,b ack a,b fin a 此時a收到b的fin之后,a處於time_wait,a無法確定自己接下來的ack of fin是否被b收到,所以time_wait還是會持續一段時間。接着可能發生兩件事 ...

Thu Apr 11 23:05:00 CST 2019 0 806
什么是2MSL以及TIME_WAIT的作用

TIME_WAIT主要是用來解決以下幾個問題: 1)上面解釋為什么主動關閉方需要進入TIME_WAIT狀態中提到的: 主動關閉方需要進入TIME_WAIT以便能夠重發丟掉的被動關閉方FIN包的ACK。如果主動關閉方不進入TIME_WAIT,那么在主動關閉方對被動關閉方FIN包的ACK丟失 ...

Wed Nov 21 18:34:00 CST 2018 0 3477
TCP釋放連接時為什么time_wait狀態必須等待2MSL時間

為什么上圖中的A在TIME-WAIT狀態必須等待2MSL時間呢? 第一,為了保證A發送的最后一個ACK報文能夠到達B。這個ACK報文段有可能丟失,因而使處在LAST-ACK狀態的B收不到對已發送的FIN+ACK報文段的確認。B會超時重傳這個FIN+ACK報文段,而A就能在2MSL時間內收到這個重傳 ...

Tue Jan 10 03:37:00 CST 2017 1 13360
TCP四次揮手為何需要TIME_WAIT以及為何是2MSL

根據第三版《UNIX網絡編程 卷1》2.7節,TIME_WAIT狀態的主要目的有兩個: 優雅的關閉TCP連接,也就是盡量保證被動關閉的一端收到它自己發出去的FIN報文的ACK確認報文; 處理延遲的重復報文,這主要是為了避免前后兩個使用相同四元組的連接中的前一個連接的報文干擾后一個 ...

Sat Mar 14 01:31:00 CST 2020 0 1004
TCP TIME-WAIT

TIME-WAIT 是 TCP 揮手過程的一個狀態。很多地方都對它有說明,這里只貼兩個圖喚起記憶。下面是 TCP 完整的狀態圖: 來自:http://www.tcpipguide.com/free ...

Sat Apr 13 18:01:00 CST 2019 0 801
為什么是2MSL而不是MSL

進入到TIME_WAIT狀態。Client會設置一個計時器,等待2MSL的時間。如果在該時間內再次收到FIN,那么Clie ...

Wed Mar 02 19:22:00 CST 2016 0 3288
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM