python-網(wǎng)絡(luò)-tcp的幾種狀態(tài)介紹(二)

本文作者:黎智煊,叩丁狼高級(jí)講師逊笆。原創(chuàng)文章癣缅,轉(zhuǎn)載請(qǐng)注明出處厨剪。

tcp的4次揮手(分手)協(xié)議

叩丁狼教育.png

通俗的4次揮手講解

  1. 第一次揮手:雙方交流的差不多了,此時(shí)客戶端也已經(jīng)結(jié)尾了友存,接下來(lái)要斷開通信連接祷膳,所以告訴服務(wù)端“我說(shuō)完了(FIN)”,此時(shí)自身形成等待結(jié)束連接的狀態(tài)屡立。

  2. 第二次揮手:服務(wù)端知道客戶端已經(jīng)沒話說(shuō)了直晨,服務(wù)端此時(shí)還有兩句心里話要給客戶端說(shuō),“我知道你說(shuō)完了(ACK),我再給你說(shuō)兩句勇皇,&*……%¥”罩句。

  3. 第三次揮手:此時(shí)客戶端洗耳恭聽繼續(xù)處于等待結(jié)束的狀態(tài),服務(wù)器端也說(shuō)完了敛摘,自身此時(shí)處于等待關(guān)閉連接的狀態(tài)门烂,并對(duì)告訴客戶端,“我說(shuō)完了着撩,咱們斷了吧(FIN)”诅福。

  4. 第四次揮手:客戶端收知道服務(wù)端也說(shuō)完了,也要告訴服務(wù)端一聲(ACK)拖叙,因?yàn)檫B接和斷開要雙方都按下關(guān)閉操作才能斷開氓润,客戶端同時(shí)又為自己定義一個(gè)定時(shí)器,因?yàn)椴恢绖偛耪f(shuō)的這句話能不能準(zhǔn)確到達(dá)服務(wù)端(網(wǎng)絡(luò)不穩(wěn)定或者其他因素引起的網(wǎng)絡(luò)原因)薯鳍,默認(rèn)時(shí)間定為兩個(gè)通信的最大時(shí)間之和咖气,超出這個(gè)時(shí)間就默認(rèn)服務(wù)器端已經(jīng)接收到了自己的確認(rèn)信息,此時(shí)客戶端就關(guān)閉自身連接挖滤,服務(wù)器端一旦接收到客戶端發(fā)來(lái)的確定通知就立刻關(guān)閉服務(wù)器端的連接崩溪。

到此為止雙方整個(gè)通信過(guò)程就此終結(jié)。這里要聲明一下:斷開鏈接不一定就是客戶端斩松,誰(shuí)都可以先發(fā)起斷開指令伶唯,另外客戶端和服務(wù)端是沒有固定標(biāo)準(zhǔn)的,誰(shuí)先發(fā)起請(qǐng)求誰(shuí)就是客戶端惧盹。

詳細(xì)的介紹

假設(shè)Client端發(fā)起中斷連接請(qǐng)求乳幸,也就是發(fā)送FIN報(bào)文。Server端接到FIN報(bào)文后钧椰,意思是說(shuō)"我Client端沒有數(shù)據(jù)要發(fā)給你了"粹断,但是如果你還有數(shù)據(jù)沒有發(fā)送完成,則不必急著關(guān)閉Socket嫡霞,可以繼續(xù)發(fā)送數(shù)據(jù)瓶埋。所以你先發(fā)送ACK,"告訴Client端诊沪,你的請(qǐng)求我收到了养筒,但是我還沒準(zhǔn)備好,請(qǐng)繼續(xù)你等我的消息"端姚。這個(gè)時(shí)候Client端就進(jìn)入FIN_WAIT狀態(tài)闽颇,繼續(xù)等待Server端的FIN報(bào)文。當(dāng)Server端確定數(shù)據(jù)已發(fā)送完成寄锐,則向Client端發(fā)送FIN報(bào)文,"告訴Client端,好了橄仆,我這邊數(shù)據(jù)發(fā)完了剩膘,準(zhǔn)備好關(guān)閉連接了"。Client端收到FIN報(bào)文后盆顾,"就知道可以關(guān)閉連接了怠褐,但是他還是不相信網(wǎng)絡(luò),怕Server端不知道要關(guān)閉您宪,所以發(fā)送ACK后進(jìn)入TIME_WAIT狀態(tài)奈懒,如果Server端沒有收到ACK則可以重傳∠芫蓿“磷杏,Server端收到ACK后,"就知道可以斷開連接了"捏卓。Client端等待了2MSL后依然沒有收到回復(fù)极祸,則證明Server端已正常關(guān)閉,那好怠晴,我Client端也可以關(guān)閉連接了遥金。Ok,TCP連接就這樣關(guān)閉了蒜田!

數(shù)據(jù)傳輸結(jié)束后稿械,通信的雙方都可釋放連接,A和B都處于ESTABLISHED狀態(tài)冲粤。(A美莫、B連接建立狀態(tài)ESTABLISHED——A終止等待1狀態(tài)FIN-WAIT-1——B關(guān)閉等待狀態(tài)CLOSE-WAIT——A終止等待2狀態(tài)FIN-WAIT-2——B最后確認(rèn)狀態(tài)LAST-ACK——A時(shí)間等待狀態(tài)TIME-WAIT——B、A關(guān)閉狀態(tài)CLOSED)

  1. A的應(yīng)用進(jìn)程先向其TCP發(fā)出連接釋放報(bào)文段(FIN=1色解,序號(hào)seq=u)茂嗓,并停止再發(fā)送數(shù)據(jù),主動(dòng)關(guān)閉TCP連接科阎,進(jìn)入FIN-WAIT-1(終止等待1)狀態(tài)述吸,等待B的確認(rèn)。
  2. B收到連接釋放報(bào)文段后即發(fā)出確認(rèn)報(bào)文段锣笨,(ACK=1蝌矛,確認(rèn)號(hào)ack=u+1,序號(hào)seq=v)错英,B進(jìn)入CLOSE-WAIT(關(guān)閉等待)狀態(tài)入撒,此時(shí)的TCP處于半關(guān)閉狀態(tài),A到B的連接釋放椭岩。
  3. A收到B的確認(rèn)后茅逮,進(jìn)入FIN-WAIT-2(終止等待2)狀態(tài)璃赡,等待B發(fā)出的連接釋放報(bào)文段。
  4. B沒有要向A發(fā)出的數(shù)據(jù)献雅,B發(fā)出連接釋放報(bào)文段(FIN=1碉考,ACK=1,序號(hào)seq=w挺身,確認(rèn)號(hào)ack=u+1)侯谁,B進(jìn)入LAST-ACK(最后確認(rèn))狀態(tài),等待A的確認(rèn)章钾。
  5. A收到B的連接釋放報(bào)文段后墙贱,對(duì)此發(fā)出確認(rèn)報(bào)文段(ACK=1,seq=u+1贱傀,ack=w+1)惨撇,A進(jìn)入TIME-WAIT(時(shí)間等待)狀態(tài)。此時(shí)TCP未釋放掉窍箍,需要經(jīng)過(guò)時(shí)間等待計(jì)時(shí)器設(shè)置的時(shí)間2MSL后串纺,A才進(jìn)入CLOSED狀態(tài)。

想獲取更多技術(shù)干貨椰棘,請(qǐng)前往叩丁狼官網(wǎng):http://www.wolfcode.cn/all_article.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末纺棺,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子邪狞,更是在濱河造成了極大的恐慌祷蝌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件帆卓,死亡現(xiàn)場(chǎng)離奇詭異巨朦,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)剑令,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門糊啡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人吁津,你說(shuō)我怎么就攤上這事棚蓄。” “怎么了碍脏?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵梭依,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我典尾,道長(zhǎng)役拴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任钾埂,我火速辦了婚禮河闰,結(jié)果婚禮上科平,老公的妹妹穿的比我還像新娘。我一直安慰自己姜性,他們只是感情好匠抗,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著污抬,像睡著了一般。 火紅的嫁衣襯著肌膚如雪绳军。 梳的紋絲不亂的頭發(fā)上印机,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音门驾,去河邊找鬼射赛。 笑死,一個(gè)胖子當(dāng)著我的面吹牛奶是,可吹牛的內(nèi)容都是我干的楣责。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼聂沙,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼秆麸!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起及汉,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤沮趣,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后坷随,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體房铭,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年温眉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了缸匪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡类溢,死狀恐怖凌蔬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情豌骏,我是刑警寧澤龟梦,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站窃躲,受9級(jí)特大地震影響计贰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蒂窒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一躁倒、第九天 我趴在偏房一處隱蔽的房頂上張望荞怒。 院中可真熱鬧,春花似錦秧秉、人聲如沸褐桌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)荧嵌。三九已至,卻和暖如春砾淌,著一層夾襖步出監(jiān)牢的瞬間啦撮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工汪厨, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赃春,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓劫乱,卻偏偏與公主長(zhǎng)得像织中,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子衷戈,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

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