TCP的三次握手與四次揮手

TCP(Transmission Control Protocol)協(xié)議是一種面向連接的懈凹、相對(duì)可靠的傳輸控制協(xié)議(雖說是面向連接蜀变,其實(shí)也就是通信雙方保持一個(gè)‘連接’狀態(tài))

三次握手和四次揮手是TCP協(xié)議中比較重要的部分,它們都是為數(shù)據(jù)傳輸而服務(wù)的介评,一個(gè)是在數(shù)據(jù)傳輸開始之前建立連接库北,一個(gè)是在數(shù)據(jù)傳輸結(jié)束之后關(guān)閉連接,接下來就簡(jiǎn)單說一下這個(gè)過程:


TCP傳輸

關(guān)于各種狀態(tài)以及發(fā)送的報(bào)文信息们陆,上圖已經(jīng)表現(xiàn)的很清楚寒瓦,就不詳述了

三次握手

必須是client先發(fā)起請(qǐng)求

  1. Client向Server發(fā)起建立請(qǐng)求信息,“我想給你發(fā)數(shù)據(jù)棒掠,可以嗎孵构?”
    (此步是為了讓Server端知道Client能夠發(fā)送數(shù)據(jù))
  2. Server端確認(rèn)Client發(fā)來的請(qǐng)求信息,同時(shí)向Client返回確認(rèn)信息烟很,“可以颈墅,你什么時(shí)候發(fā)?”
    (此步是為了讓Client知道Server既能接收到數(shù)據(jù)也能發(fā)送數(shù)據(jù))
  3. Client收到Server的確認(rèn)信息雾袱,并向Server發(fā)送確認(rèn)信息恤筛,“我現(xiàn)在就發(fā),你接著吧芹橡!”
    (此步是為了讓Server知道Client能夠接收數(shù)據(jù))

經(jīng)過上面的三次握手毒坛,會(huì)讓Client和Server確認(rèn)彼此雙方既能接收數(shù)據(jù)又能發(fā)送數(shù)據(jù),然后便可以進(jìn)入數(shù)據(jù)傳輸進(jìn)程了,一般來說煎殷,握手次數(shù)達(dá)到3就可以保證通信信息被正確傳達(dá)屯伞。


網(wǎng)上發(fā)現(xiàn)一個(gè)形象化的圖例
四次揮手

誰先發(fā)起請(qǐng)求都可以

因?yàn)镃lient和Server都能發(fā)起請(qǐng)求,所以我們此處用A和B替代通訊雙方

  1. A發(fā)起請(qǐng)求結(jié)束信號(hào)(A表示自己不會(huì)再傳輸數(shù)據(jù)了豪直,請(qǐng)求斷開)
  2. B向A發(fā)送確認(rèn)收到A發(fā)起的結(jié)束請(qǐng)求的確認(rèn)信號(hào)(B知道了A的請(qǐng)求劣摇,但是還有數(shù)據(jù)要處理,暫時(shí)還不能斷開)
  3. B向A發(fā)送請(qǐng)求結(jié)束信號(hào)(數(shù)據(jù)發(fā)送完成弓乙,B同意斷開)
  4. A向B發(fā)送確認(rèn)結(jié)束信號(hào)(A同意斷開末融,很愉快的中斷這次TCP連接)

由于TCP是全雙工的協(xié)議,也就是說兩端可以同時(shí)進(jìn)行數(shù)據(jù)傳輸暇韧,所以勾习,TCP連接的關(guān)閉在兩端都關(guān)閉之后才正式關(guān)閉。


網(wǎng)上發(fā)現(xiàn)一個(gè)形象化的圖例

相關(guān)疑問點(diǎn):

  • 建立連接的第二次握手為什么要傳回SYN懈玻?
    接收端傳回發(fā)送端所發(fā)送的SYN是為了告訴發(fā)送端巧婶,我接收到的信息確實(shí)就是你所發(fā)送的信號(hào)了。
  • 傳了SYN酪刀,為啥還要傳ACK粹舵?
    雙方通信無誤必須是兩者互相發(fā)送信息都無誤。傳了SYN骂倘,證明發(fā)送方到接收方的通道沒有問題,但是接收方到發(fā)送方的通道還需要ACK信號(hào)來進(jìn)行驗(yàn)證巴席。
  • 為什么要三次握手历涝?
    為了防止已失效的連接請(qǐng)求報(bào)文段突然又傳送到了服務(wù)端,導(dǎo)致服務(wù)器端的一直等待而浪費(fèi)資源漾唉。
    引用書中一個(gè)例子:

“已失效的連接請(qǐng)求報(bào)文段”的產(chǎn)生在這樣一種情況下:client發(fā)出的第一個(gè)連接請(qǐng)求報(bào)文段并沒有丟失荧库,而是在某個(gè)網(wǎng)絡(luò)結(jié)點(diǎn)長(zhǎng)時(shí)間的滯留了,以致延誤到連接釋放以后的某個(gè)時(shí)間才到達(dá)server赵刑。本來這是一個(gè)早已失效的報(bào)文段分衫。但server收到此失效的連接請(qǐng)求報(bào)文段后,就誤認(rèn)為是client再次發(fā)出的一個(gè)新的連接請(qǐng)求般此。于是就向client發(fā)出確認(rèn)報(bào)文段蚪战,同意建立連接。假設(shè)不采用“三次握手”铐懊,那么只要server發(fā)出確認(rèn)邀桑,新的連接就建立了。由于現(xiàn)在client并沒有發(fā)出建立連接的請(qǐng)求科乎,因此不會(huì)理睬server的確認(rèn)壁畸,也不會(huì)向server發(fā)送數(shù)據(jù)。但server卻以為新的運(yùn)輸連接已經(jīng)建立,并一直等待client發(fā)來數(shù)據(jù)捏萍。這樣太抓,server的很多資源就白白浪費(fèi)掉了。采用“三次握手”的辦法可以防止上述現(xiàn)象發(fā)生令杈。例如剛才那種情況腻异,client不會(huì)向server的確認(rèn)發(fā)出確認(rèn)。server由于收不到確認(rèn)这揣,就知道client并沒有要求建立連接悔常。”

最后編輯于
?著作權(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)離奇詭異柑蛇,居然都是意外死亡芥挣,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門耻台,熙熙樓的掌柜王于貴愁眉苦臉地迎上來空免,“玉大人,你說我怎么就攤上這事盆耽√Q猓” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵摄杂,是天一觀的道長(zhǎng)坝咐。 經(jīng)常有香客問我,道長(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)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了槽驶?” 一聲冷哼從身側(cè)響起责嚷,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬榮一對(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
  • 我被黑心中介騙來泰國(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