三次握手是 TCP 連接的建立過程。在握手之前,主動打開連接的客戶端結束 CLOSE 階段,被動打開的服務器也結束 CLOSE 階段,并進入 LISTEN 階段。隨后進入三次握手階段:
客戶端向服務器發送一個 SYN 包,并等待服務器確認。
其中:標志位為 SYN,表示請求建立連接;序號為 Seq = x(x 一般取隨機數);隨后客戶端進入 SYN-SENT 階段。
服務器接收到客戶端發來的 SYN 包后,對該包進行確認后結束 LISTEN 階段,并返回一段 TCP 報文。
其中: 標志位為 SYN 和 ACK,表示確認客戶端的報文 Seq 序號有效,服務器能正常接收客戶端發送的數據,并同意創建新連接; 序號為 Seq = y;確認號為 Ack = x + 1,表示收到客戶端的序號 Seq 并將其值加 1 作為自己確認號 Ack 的值,隨后服務器端進入 SYN-RECV 階段。
客戶端接收到發送的 SYN + ACK 包后,明確了從客戶端到服務器的數據傳輸是正常的,從而結束 SYN-SENT 階段,并返回最后一段報文。
其中: 標志位為 ACK,表示確認收到服務器端同意連接的信號;序號為 Seq = x + 1,表示收到服務器端的確認號 Ack,并將其值作為自己的序號值;確認號為 Ack= y + 1,表示收到服務器端序號 seq,并將其值加 1 作為自己的確認號 Ack 的值。隨后客戶端進入 ESTABLISHED。
當服務器端收到來自客戶端確認收到服務器數據的報文后,得知從服務器到客戶端的數據傳輸是正常的,從而結束 SYN-RECV 階段,進入 ESTABLISHED 階段,從而完成三次握手。
回答所涉及的環境:聯想天逸510S、Windows 10。
三次握手是 TCP 連接的建立過程。在握手之前,主動打開連接的客戶端結束 CLOSE 階段,被動打開的服務器也結束 CLOSE 階段,并進入 LISTEN 階段。隨后進入三次握手階段:
客戶端向服務器發送一個 SYN 包,并等待服務器確認。
其中:標志位為 SYN,表示請求建立連接;序號為 Seq = x(x 一般取隨機數);隨后客戶端進入 SYN-SENT 階段。
服務器接收到客戶端發來的 SYN 包后,對該包進行確認后結束 LISTEN 階段,并返回一段 TCP 報文。
其中: 標志位為 SYN 和 ACK,表示確認客戶端的報文 Seq 序號有效,服務器能正常接收客戶端發送的數據,并同意創建新連接; 序號為 Seq = y;確認號為 Ack = x + 1,表示收到客戶端的序號 Seq 并將其值加 1 作為自己確認號 Ack 的值,隨后服務器端進入 SYN-RECV 階段。
客戶端接收到發送的 SYN + ACK 包后,明確了從客戶端到服務器的數據傳輸是正常的,從而結束 SYN-SENT 階段,并返回最后一段報文。
其中: 標志位為 ACK,表示確認收到服務器端同意連接的信號;序號為 Seq = x + 1,表示收到服務器端的確認號 Ack,并將其值作為自己的序號值;確認號為 Ack= y + 1,表示收到服務器端序號 seq,并將其值加 1 作為自己的確認號 Ack 的值。隨后客戶端進入 ESTABLISHED。
當服務器端收到來自客戶端確認收到服務器數據的報文后,得知從服務器到客戶端的數據傳輸是正常的,從而結束 SYN-RECV 階段,進入 ESTABLISHED 階段,從而完成三次握手。
回答所涉及的環境:聯想天逸510S、Windows 10。