2.第二次握手:B收到連接請求報文段後,如同意建立連接,則向A發送確認報文(SYN=1,ACK=1,確認號ack=x+1,初始序號seq=y),B進程進入SYN-RCVD(同步收到)狀態,A進入ESTABLISHED(已建立連接)。
3.第三次握手:A收到B的確認後,要向B發送確認收到確認的報文段(ACK=1,確認號ack=y+1,序號seq=x+1,初始為seq=x,第二個報文段所以要+1),ACK報文段可以攜帶數據,不攜帶數據則不消耗序號,TCP連接已經建立,當B收到A的確認後,也進入ESTABLISHED狀態。
可以看到,三次握手過程中,A的狀態變化為 CLOSED->SYN-SEND->ESTABLISHED。B的狀態變化為(CLOSED)LISTEN->SYNC-RECEIVED->ESTABLISHED,兩者都經過3次狀態變化。
為何需要最後的客戶端應答(為什麽需要第三次握手)?