1. 程式人生 > >TCP3次握手學習筆記

TCP3次握手學習筆記

TCP(Transmission Control Protocol) 傳輸控制協議

三次握手

TCP是主機對主機層的傳輸控制協議,提供可靠的連線服務,採用三次握手確認建立一個連線:

1.    主機A首先將標誌位SYN設定為1同時產生一個隨機數seqnumber = 123的資料包,將資料包傳送到B,這時候進入SYN_SEND狀態。

2.    主機B收到資料包後發現標誌位SYN = 1,從而知道A要建立聯機。如果B同意,則將標誌位ACK設定為1同時設定ack number = 124(主機A seq number +1)。由於B也需要和A聯機,所以B也要將標誌位SYN設定為1,同時產生一個隨機數seqnumber = 234. (跟第一步一樣).B將資料包發出,這時候進入SYN_RECV狀態。

3.    主機A收到資料包後檢查標誌位ACK是否為1,為1表示主機B同意,並且檢視ack number是否正確。如果正確,主機A設定ACK = 1並且傳送ack number = 235(主機B的seq + 1). 主機B收到後確認seq值和ACK = 1. 則連線建立成功。進入ESTABLISHED狀態。

四次揮手

  • 當主機A完成資料傳輸後,將控制位FIN置1,提出停止TCP連線的請求
  • 主機B收到FIN後對其作出響應,確認這一方向上的TCP連線將關閉,將ACK置1
  • 由B 端再提出反方向的關閉請求,將FIN置1
  • 主機A對主機B的請求進行確認,將ACK置1,雙方向的關閉結束。