為了準確無誤地把數(shù)據(jù)送達目標處,TCP協(xié)議采用了三次握手策略。
1 TCP 三次握手漫畫圖解
如下圖所示,下面的兩個機器人通過3次握手確定了對方能正確接收和發(fā)送消息(圖片來源網(wǎng)絡(luò))。
簡單示意圖:
-
客戶端–發(fā)送帶有 SYN 標志的數(shù)據(jù)包–一次握手–服務(wù)端
-
服務(wù)端–發(fā)送帶有 SYN/ACK 標志的數(shù)據(jù)包–二次握手–客戶端
-
客戶端–發(fā)送帶有帶有 ACK 標志的數(shù)據(jù)包–三次握手–服務(wù)端
2 為什么要三次握手
三次握手的目的是建立可靠的通信信道,說到通訊,簡單來說就是數(shù)據(jù)的發(fā)送與接收,而三次握手最主要的目的就是雙方確認自己與對方的發(fā)送與接收是正常的。
第一次握手:Client 什么都不能確認;Server 確認了對方發(fā)送正常,自己接收正常
第二次握手:Client 確認了:自己發(fā)送、接收正常,對方發(fā)送、接收正常;Server 確認了:對方發(fā)送正常,自己接收正常
第三次握手:Client 確認了:自己發(fā)送、接收正常,對方發(fā)送、接收正常;Server 確認了:自己發(fā)送、接收正常,對方發(fā)送、接收正常
所以三次握手就能確認雙發(fā)收發(fā)功能都正常,缺一不可。
3 為什么要四次揮手
斷開一個 TCP 連接則需要“四次揮手”:
-
客戶端-發(fā)送一個 FIN,用來關(guān)閉客戶端到服務(wù)器的數(shù)據(jù)傳送
-
服務(wù)器-收到這個 FIN,它發(fā)回一 個 ACK,確認序號為收到的序號加1 。和 SYN 一樣,一個 FIN 將占用一個序號
-
服務(wù)器-關(guān)閉與客戶端的連接,發(fā)送一個FIN給客戶端
-
客戶端-發(fā)回 ACK 報文確認,并將確認序號設(shè)置為收到序號加1文章來源:http://www.zghlxwxcb.cn/news/detail-835555.html
任何一方都可以在數(shù)據(jù)傳送結(jié)束后發(fā)出連接釋放的通知,待對方確認后進入半關(guān)閉狀態(tài)。當另一方也沒有數(shù)據(jù)再發(fā)送的時候,則發(fā)出連接釋放通知,對方確認后就完全關(guān)閉了TCP連接。文章來源地址http://www.zghlxwxcb.cn/news/detail-835555.html
到了這里,關(guān)于TCP 三次握手和四次揮手的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!