網(wǎng)絡--四次揮手

TCP的連接釋放

為更好了解揮手過程源祈,你需要理解握手過程虫溜。點這里
1. 過程簡單描述

數(shù)據(jù)傳輸結(jié)束后合敦,通信的雙方都可以釋放連接,此時豌汇,客戶機A和服務器B都處在ESTABLLISHED(已建立連接)狀態(tài)幢炸。
①. A的應用進程先向TCP發(fā)出連接釋放報文段,并停止發(fā)送數(shù)據(jù)瘤礁,主動關(guān)閉TCP連接阳懂。A連接釋放報文段首部的 FIN 置 1梅尤,其序號 seq = u柜思,它等于前面已傳送過的數(shù)據(jù)的最后一個字節(jié)的序號加 1。這時巷燥,A進入FIN-WAIT-1(終止等待1)狀態(tài)赡盘,等待服務器B的確認。
TCP規(guī)定缰揪,FIN報文段即使不攜帶數(shù)據(jù)陨享,也會消耗一個序號。)
②. B收到連接釋放報文段后即發(fā)出確認钝腺,確認號為ack = u+1,而這個報文段自己的序號是 v抛姑,等于 B 前面已傳送過的數(shù)據(jù)的最后一個字節(jié)的序號加 1。之后B就進入CLOSE-WAIT(關(guān)閉等待)狀態(tài)艳狐。——>這時定硝,TCP服務器進程應通知高層應用進程,因而從AB這個方向的連接就釋放了毫目,TCP連接此時處于半關(guān)閉(half-close)狀態(tài)蔬啡,即A已經(jīng)沒有數(shù)據(jù)要發(fā)送了,但B若發(fā)送數(shù)據(jù)镀虐,A仍要接收箱蟆。也就是說,從BA這個方向的連接并沒有關(guān)閉刮便。
③. A收到來自B的確認后空猜,進入FIN-WAIT-2(終止等待2)狀態(tài),等待B發(fā)出的連接釋放報文段恨旱。
B已經(jīng)沒有要向A發(fā)送的數(shù)據(jù)辈毯,其應用進程就通知TCP釋放連接。——>這時窖杀,B發(fā)出的連接釋放報文段必須使FIN = 1漓摩,假定B的序號為 w(在半關(guān)閉狀態(tài)B可能又發(fā)送了一些數(shù)據(jù)),B還必須重復上傳已發(fā)送過的確認號ack = u+1入客。——>這時管毙,B進入LAST-ACK(最后確認)狀態(tài)腿椎,等待A的確認。
④. A在收到B的連接釋放報文段后夭咬,必須對此發(fā)出確認啃炸。在確認報文段中把ACK 置 1 ,確認號 ack = w+1卓舵,而自己的序號是 seq = u+1(注:TCP標準南用,前面發(fā)送過的FIN報文段要消耗一個序號)——>此時,A進入TIME-WAIT(時間等待)狀態(tài)掏湾。注意裹虫,現(xiàn)在 TCP 連接還沒有釋放掉。必須經(jīng)過 時間等待計時器(TIME-WAIT timer)設置的時間 2MSL 后融击,A 才進入CLOSED 狀態(tài)筑公。(:時間 MSL 叫做最長報文段壽命RFC 793建議設置為2分鐘尊浪,對于如今的網(wǎng)絡來說匣屡,2分鐘太長了,因此TCP允許不同的實現(xiàn)可以根據(jù)具體的情況使用更小的MSL 值拇涤。)——>所以捣作,從A進入TIME-WAIT狀態(tài)后,要經(jīng)過4分鐘才能進入CLOSED狀態(tài)鹅士,才能開始建立下一個新的連接券躁。——>A撤銷了相應的傳輸控制塊TCB后,就結(jié)束了這次的TCP連接如绸。


B只要收到了A發(fā)出的確認嘱朽,就進入了CLOSED狀態(tài),同樣怔接,B在撤銷相應的傳輸控制塊TCB后搪泳,就結(jié)束了這次的TCP連接。B 結(jié)束TCP連接的時間比 A 要早一些扼脐。

上述的 TCP 連接釋放過程就是四次揮手岸军,也可以看成是兩個二次揮手。



那么問題來了:

為什么 A 在 TIME-WAIT 狀態(tài)必須等待 2MSL 的時間瓦侮?

理由: 第一艰赞,為了保證A發(fā)送的最后一個 ACK報文段能過到達B。這個ACK報文段可能丟失肚吏,因而使處在 LAST-ACK狀態(tài)下的B收不到對已發(fā)送的 FIN+ACK報文段的確認方妖。B超時重傳這個FIN+ACK報文段,而A就能在 2MSL時間內(nèi)收到這個重傳的 FIN+ACK報文段罚攀。接著党觅, A 重傳一次確認雌澄,重新啟動 2MSL計時器。最后杯瞻,AB 就能都正常的進入CLOSED狀態(tài)镐牺。如果ATIME-WAIT狀態(tài)下不等待一段時間,而是在發(fā)送完ACK報文段之后立即釋放連接魁莉,那么無法收到B重傳的FIN+ACK睬涧,因而也不會再發(fā)送一次確認報文段,那么旗唁。B就無法按照正常的步驟進入CLOSED狀態(tài)畦浓。
第二,為了防止“已失效的連接請求報文段”出現(xiàn)逆皮。A在發(fā)送完最后一個ACK報文段后宅粥,經(jīng)過時間2MSL后参袱,就可以使本連續(xù)的時間內(nèi)所產(chǎn)生的所有報文段(包括舊的連接請求報文段)都從網(wǎng)絡上消失电谣。

了解:什么是保活計時器抹蚀?

服務器每收到一次客戶的數(shù)據(jù)剿牺,就重新設置保活計時器环壤,時間的設置通常是 兩小時晒来。若兩小時沒有收到客戶的數(shù)據(jù),服務器就發(fā)送一個探測報文段郑现。以后則每隔75 分鐘發(fā)送一次湃崩,若一連發(fā)送 10個探測報文段后仍無客戶的響應,服務器就會認為客戶端除了故障接箫,接著關(guān)閉了連接攒读。所以說,毙劣眩活計時器就是為了處理在客戶端出了故障的時候薄扁,讓服務器不再白白等下去而浪費資源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末废累,一起剝皮案震驚了整個濱河市邓梅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌邑滨,老刑警劉巖日缨,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異掖看,居然都是意外死亡匣距,警方通過查閱死者的電腦和手機诈铛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來墨礁,“玉大人幢竹,你說我怎么就攤上這事《骶玻” “怎么了焕毫?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長驶乾。 經(jīng)常有香客問我邑飒,道長,這世上最難降的妖魔是什么级乐? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任疙咸,我火速辦了婚禮风科,結(jié)果婚禮上撒轮,老公的妹妹穿的比我還像新娘。我一直安慰自己贼穆,他們只是感情好题山,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著故痊,像睡著了一般顶瞳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上愕秫,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天慨菱,我揣著相機與錄音,去河邊找鬼戴甩。 笑死符喝,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的等恐。 我是一名探鬼主播洲劣,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼课蔬!你這毒婦竟也來了囱稽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤二跋,失蹤者是張志新(化名)和其女友劉穎战惊,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體扎即,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡吞获,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年况凉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片各拷。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡刁绒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出烤黍,到底是詐尸還是另有隱情知市,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布速蕊,位于F島的核電站嫂丙,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏规哲。R本人自食惡果不足惜跟啤,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望唉锌。 院中可真熱鬧隅肥,春花似錦、人聲如沸糊秆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽痘番。三九已至,卻和暖如春平痰,著一層夾襖步出監(jiān)牢的瞬間汞舱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工宗雇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留昂芜,地道東北人。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓赔蒲,卻偏偏與公主長得像泌神,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子舞虱,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351

推薦閱讀更多精彩內(nèi)容