TCP三次握手與四次揮手
TCP三次握手
一、什么是三次握手
三次握手(Three-way Handshake),是指建立一個TCP連接時,需要客戶端和服務器總共發送3個包。
二、三次握手的目的
三次握手的目的是連接服務器指定端口,建立TCP連接,并同步連接雙方的序列號和確認號并交換 TCP 窗口大小信息??蛻舳藞绦羞B接請求時。將觸發三次握手。
三、三次握手過程
第一次握手:
客戶端發送一個TCP的SYN標志位置1的包指明客戶打算連接的服務器的端口,以及初始序號X,保存在包頭的序列號(Sequence Number)字段里。
第二次握手:
服務器發回確認包(ACK)應答。即SYN標志位和ACK標志位均為1同時,將確認序號(Acknowledgement Number)設置為客戶的ISN加1以.即X+1。
第三次握手.
客戶端再次發送確認包(ACK) SYN標志位為0,ACK標志位為1。如果正確則連接建立成功,客戶端和服務器進入ESTABLISHED狀態,完成三次握手,隨后客戶端與服務器之間可以開始傳輸數據了。把服務器發來ACK的序號字段+1,放在確定字段中發送給對方.并且在數據段放寫ISN的+1。
TCP四次揮手
一、什么是四次揮手
TCP的連接的拆除需要發送四個包,因此稱為四次揮手(four-way handshake)。客戶端或服務器均可主動發起揮手動作,任何一方執行close操作即可產生揮手操作。
二、四次揮手過程
第一次揮手:
客戶端發送一個FIN,用來關閉客戶端到服務器的數據傳送,客戶機進入FIN_WAIT_1狀態。
第二次揮手:
服務器收到FIN后,發送一個ACK給客戶端,確認序號為收到序號+1(與SYN相同,一個FIN占用一個序號),服務器進入CLOSE_WAIT狀態。
第三次揮手:
服務器發送一個FIN,用來關閉服務器到客戶端的數據傳送,服務器進入LAST_ACK狀態。
第四次揮手:
客戶端收到FIN后,客戶端進入TIME_WAIT狀態,接著發送一個ACK給服務器,確認序號為收到序號+1,服務器進入CLOSED狀態,完成四次揮手。
11、CLOSING 雙方同時嘗試關閉傳輸連接,等待對方確認
附加問題:
原創文章,作者:Light Yagami,如若轉載,請注明出處:http://www.www58058.com/85976