//……關於TCP三次握手與四次揮手

TCP的概述

  TCP把鏈接做爲最基本的對象,每一條TCP鏈接都有兩個端點,這種斷點咱們叫做套接字(socket),它的定義爲端口號拼接到IP地址即構成了套接字,例如,若IP地址爲192.3.4.16 而端口號爲80,那麼獲得的套接字爲192.3.4.16:80。服務器

TCP鏈接的創建(三次握手)

 

第一次握手:創建鏈接時,客戶端發送syn包(syn=j)到服務器,並進入SYN_SENT狀態,等待服務器確認;SYN:同步序列編號(Synchronize Sequence Numbers)。

第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時本身也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;

第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED(TCP鏈接成功)狀態,完成三次握手。

socket

TCP鏈接的釋放(四次揮手)

    

第一次揮手:Client發送一個FIN,用來關閉Client到Server的數據傳送,Client進入FIN_WAIT_1狀態tcp

第二次揮手:Server收到FIN後,發送一個ACK給Client,確認序號爲收到序號+1(與SYN相同,一個FIN佔用一個序號),Server進入CLOSE_WAIT狀態
第三次揮手:Server發送一個FIN,用來關閉Server到Client的數據傳送,Server進入LAST_ACK狀態。
第四次揮手:Client收到FIN後,Client進入TIME_WAIT狀態,接着發送一個ACK給Server,確認序號爲收到序號+1Server進入CLOSED狀態,完成四次揮手。
spa

相關文章
相關標籤/搜索