您好,登錄后才能下訂單哦!
第一次握手:Client將標志位SYN置為1,隨機產生一個值seq=J,并將該數據包發送給Server,Client進入SYN_SENT狀態,等待Server確認。
第二次握手: Server 收到數據包后由標志位 SYN=1 知道 Client 請求建立連接, Server 將標志位 SYN 和 ACK 都置為 1 , ack=J+1 ,隨機產生一個值 seq=K ,并將該數據包發送給 Client 以確認連接請求, Server 進入 SYN_RCVD 狀態。
第三次握手: Client 收到確認后,檢查 ack 是否為 J+1 , ACK 是否為 1 ,如果正確則將標志位 ACK 置為 1 , ack=K+1 ,并將該數據包發送給 Server , Server 檢查 ack 是否為 K+1 , ACK 是否為 1 ,如果正確則連接建立成功, Client 和 Server 進入 ESTABLISHED 狀態,完成三次握手,隨后 Client 與 Server 之間可以開始傳輸數據了。
簡單來說,就是
建立連接時,客戶端發送SYN包(SYN=i)到服務器,并進入到SYN-SEND狀態,等待服務器確認。
服務器收到 SYN 包,必須確認客戶的 SYN ( ack=i+1 ) , 同時自己也發送一個 SYN 包( SYN=k ) , 即 SYN+ACK 包,此時服務器進入 SYN-RECV 狀態。
客戶端收到服務器的 SYN+ACK 包,向服務器發送確認報 ACK ( ack=k+1 ) , 此包發送完畢,客戶端和服務器進入 ESTABLISHED 狀態,完成三次握手,客戶端與服務器開始傳送數據。
第一次揮手:Client發送一個FIN,用來關閉Client到Server的數據傳送,Client進入FIN_WAIT_1狀態。
第二次揮手: Server 收到 FIN 后,發送一個 ACK 給 Client ,確認序號為收到序號 +1 (與 SYN 相同,一個 FIN 占用一個序號), Server 進入 CLOSE_WAIT 狀態。
第三次揮手: Server 發送一個 FIN ,用來關閉 Server 到 Client 的數據傳送, Server 進入 LAST_ACK 狀態。
第四次揮手: Client 收到 FIN 后, Client 進入 TIME_WAIT 狀態,接著發送一個 ACK 給 Server ,確認序號為收到序號 +1 , Server 進入 CLOSED 狀態,完成四次揮手。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。