自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

TCP連接為什么是三次握手,而不是兩次握手,也不是四次握手?

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
我們先來(lái)說(shuō)一下,為什么必須是三次握手,而不是兩次握手,也不是四次握手呢?

文本轉(zhuǎn)載自公眾號(hào):程序員喬戈里(ID:CXYqiaogeli)如需轉(zhuǎn)載請(qǐng)聯(lián)系原公眾號(hào)。

[[265124]]

 

 

喬哥:你說(shuō)“喂喂喂,能聽(tīng)到我說(shuō)話嗎?”,是***次握手,也就是說(shuō)小萌你的發(fā)送消息的能力沒(méi)有問(wèn)題,然后我回了你一句“小萌,我可以聽(tīng)到你說(shuō)話,你能聽(tīng)到我說(shuō)話嗎?”這是第二次握手,我回了你一句,說(shuō)明了我可以聽(tīng)到你說(shuō)話(說(shuō)明了我具有接受消息的能力),我對(duì)你說(shuō)了“你能聽(tīng)到我說(shuō)話嗎”也說(shuō)明了我這里也有可以發(fā)送消息的能力。到第二次握手結(jié)束,說(shuō)明了我具有發(fā)送消息和接受消息的能力,小萌你具有發(fā)送消息的能力。然后你說(shuō)“喬哥,我聽(tīng)到你說(shuō)話了”,這是第三次握手,你聽(tīng)到我說(shuō)話,也就是說(shuō)明小萌你的接受消息的能力沒(méi)有問(wèn)題。這樣就可以進(jìn)行通話了(建立了TCP連接)

 

 

小萌:“喂,喬哥聽(tīng)得到嗎?”

喬哥:“喬哥聽(tīng)得到呀,小萌你聽(tīng)得到喬哥嗎?”

小萌:“小萌能聽(tīng)到喬哥,喬哥能聽(tīng)到小萌嗎?”

 

小萌:1.兩次握手,這個(gè)我想是因?yàn)榉?wù)器收到了客戶端的消息,服務(wù)器知道了客戶端是可以發(fā)送消息的,但由于沒(méi)有第三次握手,所以服務(wù)器不知道客戶端是否具有接受消息的能力;

2.客戶端從服務(wù)器接受到了消息,客戶端知道了服務(wù)器接受到了我的消息才回復(fù),說(shuō)明服務(wù)器的接受消息能力和發(fā)送消息的能力沒(méi)問(wèn)題(服務(wù)器發(fā)送出了消息);

3.綜上所述,客戶端確保了服務(wù)器的接受發(fā)送沒(méi)問(wèn)題,但是服務(wù)器僅僅只知道客戶端的發(fā)送消息沒(méi)問(wèn)題,這并不是可靠的,所以兩次握手不可以。


 

 

喬戈里:這里舉個(gè)例子,假設(shè)客戶端和服務(wù)器進(jìn)行TCP連接,然后***次發(fā)送的TCP連接請(qǐng)求發(fā)生了阻塞。

 

于是由于客戶端沒(méi)有收到服務(wù)器的應(yīng)答報(bào)文,客戶端認(rèn)為這個(gè)TCP連接請(qǐng)求丟失了,于是重新發(fā)送了TCP連接請(qǐng)求。這次沒(méi)有阻塞,成功連接了,因?yàn)槭怯懻摰膬纱挝帐郑灾贿M(jìn)行兩次連接就可以進(jìn)行通信了。

 

通信結(jié)束,然后就斷開(kāi)了連接。

 

這時(shí)候最開(kāi)始的阻塞的連接請(qǐng)求A客戶端以為丟失了,但是沒(méi)有丟失,只是阻塞了而已,阻塞一段時(shí)間網(wǎng)絡(luò)又暢通了,于是TCP連接請(qǐng)求A成功到達(dá)了服務(wù)器,服務(wù)器又以為是客戶端又要進(jìn)行數(shù)據(jù)傳輸,于是服務(wù)器就又對(duì)這個(gè)連接請(qǐng)求進(jìn)行應(yīng)答,兩次握手,于是又成功建立了TCP連接。

 

但是由于客戶端它以為這個(gè)連接請(qǐng)求已經(jīng)丟失了,所以不會(huì)利用這個(gè)建立的連接請(qǐng)求進(jìn)行數(shù)據(jù)通信,雖然服務(wù)器分配給了資源給客戶端,但是客戶端并不進(jìn)行數(shù)據(jù)傳輸,這樣就白白浪費(fèi)了服務(wù)器的資源,試想一下如果網(wǎng)絡(luò)很擁堵,那么等網(wǎng)絡(luò)變暢通以后,服務(wù)器豈不是浪費(fèi)了一堆資源,可能對(duì)于正常的連接請(qǐng)求都無(wú)法處理了!

 

 

 

 

服務(wù)器過(guò)了很長(zhǎng)時(shí)間(規(guī)定好的時(shí)間和客戶端)都沒(méi)有收到回復(fù),于是也不會(huì)為客戶端分配資源,這次連接就放棄了。

作者:?jiǎn)谈昀?,百度工程師。個(gè)人微信公眾號(hào):程序員喬戈里(IDCXYqiaogeli

 

責(zé)任編輯:武曉燕 來(lái)源: 程序員喬戈里
相關(guān)推薦

2024-10-16 08:38:37

TCP編號(hào)信息

2021-04-30 13:32:17

TCP三次握手網(wǎng)絡(luò)協(xié)議

2021-12-02 09:20:33

TCPLinux三次握手

2019-05-05 05:39:23

TCP三次握手網(wǎng)絡(luò)協(xié)議

2015-10-13 09:42:52

TCP網(wǎng)絡(luò)協(xié)議

2019-06-12 11:26:37

TCP三次握手四次揮手

2021-05-28 09:08:20

TCP連接序列號(hào)

2024-01-12 08:23:11

TCPACK服務(wù)器

2021-07-26 08:08:56

TCPIP網(wǎng)絡(luò)協(xié)議

2023-10-24 15:22:09

TCPUDP

2020-02-17 10:10:43

TCP三次握手四次揮手

2023-09-07 16:46:54

TCP數(shù)據(jù)傳遞

2021-07-03 17:47:25

TCP控制協(xié)議

2021-01-29 06:11:08

TCP通信三次握手

2019-02-01 09:38:16

2021-05-18 12:27:40

TCP控制協(xié)議

2017-09-25 21:27:07

TCP協(xié)議數(shù)據(jù)鏈

2020-06-29 14:50:47

TCP狀態(tài)ACK

2015-11-09 09:58:56

2023-10-28 09:07:57

TCP面試三次握手
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)