一、3次握手過程
客戶端向服務(wù)端發(fā)送一個表示建立連接的SYN報(bào)文段,服務(wù)端從IP數(shù)據(jù)報(bào)中提取出TCP SYN報(bào)文段,為該TCP連接分配需要的緩存和變量,并向客戶端發(fā)送表示允許連接的報(bào)文段ACK??蛻舳嗽谑盏紸CK報(bào)文段之后,也要給該連接分配緩存和變量,客戶端向服務(wù)器再發(fā)送一個報(bào)文段ACK,表示對允許連接的報(bào)文段進(jìn)行了確認(rèn)。
自此完成一次TCP連接。
二、3次握手的必要性
1.確認(rèn)雙方的發(fā)送和接收能力:通過3次握手,客戶端和服務(wù)器可以確認(rèn)彼此都具備發(fā)送和接收數(shù)據(jù)的能力。這是建立可靠連接的基礎(chǔ)。
2.同步初始序列號:TCP協(xié)議通過序列號來標(biāo)識發(fā)送的數(shù)據(jù)包,確保數(shù)據(jù)的順序性和完整性。在3次握手過程中,雙方會交換初始序列號,以便后續(xù)的數(shù)據(jù)傳輸能夠正確地進(jìn)行。
3.避免已失效的連接請求報(bào)文段突然又傳送到了服務(wù)端:這種情況可能發(fā)生在網(wǎng)絡(luò)擁堵或者延遲較大的情況下。通過3次握手,服務(wù)端可以確認(rèn)客戶端的請求是有效的,而不是一個過時的請求。
第3次握手可以避免由于客戶端延遲的連接請求,使得服務(wù)端無故再次建立連接。
致力于C、C++、Java、Kotlin、Android、Shell、JavaScript、TypeScript、Python等編程技術(shù)的技巧經(jīng)驗(yàn)分享。文章來源:http://www.zghlxwxcb.cn/news/detail-859197.html
若作品對您有幫助,請關(guān)注、分享、點(diǎn)贊、收藏、在看、喜歡。您的支持是我們?yōu)槟峁椭淖畲髣恿Α?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-859197.html
到了這里,關(guān)于TCP為什么需要3次握手?的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!