TCP 三次握手和四次揮手

對tcp三次握手和四次揮手做個筆記。

先來張配圖(圖片來自于網絡)

0_131271823564Rx.gif.jpeg

TCP三次握手

所謂三次握手(Three-way Handshake),是指建立一個TCP連接時,需要客戶端和服務器總共發送3個包。


100327002629.png

1.第一次握手客戶端主動,發送SYN標志報文,相當于通知服務器:我想連接你,不知可否。
2.第二次握手服務器主動,返回確認包ACK標志報文。相當于服務器反饋客戶端:可以,你連接吧。
3.第三次握手客戶端主動,再次發送報文 - ACK標志報文,告訴服務器:好嘞,我這就開始連接。

三次握手的目的是連接服務器指定端口,建立TCP連接,并同步連接雙方的序列號和確認號并交換 TCP 窗口大小信息.在socket編程中,客戶端執行connect()時。將觸發三次握手。

TCP四次揮手

TCP的連接的拆除需要發送四個包,因此稱為四次揮手(four-way handshake)。客戶端或服務器均可主動發起揮手動作,在socket編程中,任何一方執行close()操作即可產生揮手操作。


100327022731.jpg

關閉TCP連接,任意一方均可主動。
假設客戶端主動:
1.第一次揮手,客戶端發送FIN標志+ACK標志報文,通知服務器如果沒有數據了我想關閉連接。
2.第二次揮手,服務器發送ACK標志報文,客戶端收到報文之后等待服務器的關閉通知,相當于服務器告訴客戶端:稍等一下,容我檢查檢查。
3.第三次揮手,服務器發送關閉通知 - FIN標志+ACK標志報文,告訴客戶端:OK,關閉吧沒啥事了。
4.第四次揮手,客戶端收到關閉通知,給服務器發送反饋ACK標志報文,告訴服務器:OK,我關了哈,下次再見。

結束。

筆者能力有限,不足之處歡迎指出!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容