TCP/IP的三向交握和四次放手

來源:互聯網
上載者:User

標籤:

  • 一開始個人對於三向交握和四次揮手這個東西還是有時候會忘記,可能理解的不是非常深刻,所以今天就自己動手來記錄一下這個知識點,方便以後查看。總結完之後發現總結的還是可以的哈哈。

  • 三向交握建立串連
    •   第一次:用戶端和伺服器端一開始都是關閉的。①:當想建立串連的時候,用戶端首先主動開啟,然後伺服器端被動開啟。
      ②:伺服器首先得先建立好需要的pcb傳輸控制塊(參照socket編程中的,先得建立一些伺服器所需要的資訊,包括通訊端之類的,建立通訊端,綁定通訊端,),之後進入listen狀態,等待用戶端來串連自己。用戶端也得建立好自己的PCB結構(建立通訊端)。
      ③:第一次串連開始:用戶端發出串連請求,發出請求報文(SYN:握手訊號=1,ACK:確認機制=0,SEQ:串連序列=隨機數X),
      用戶端狀態:SYN-SENT(同步已發送)
    •   第二次:同意串連,發送同意報文(SYN:握手訊號=1,ACK:確認機制=1,ack:確認訊號=X+1,SEQ:串連序號=隨機數Y),這裡有重新產生一個序號Y,伺服器狀態:SYN-RCVD(同步已收到)
    •   第三次:用戶端收到伺服器的串連確認後,必須返回確認串連訊號給伺服器(ACK:確認機制=1,    ack:確認訊號=Y+1, SEQ:串連序號=隨機數X+1(在上一條請求訊號的基礎上加1))
      用戶端狀態:ESTAB-LISHED(串連已建立)。當伺服器收到之後,伺服器狀態:ESTAB-LISHED(串連已建立)

      注意:第三向交握的意義:為了防止已經失效的串連請求報文段突然又傳送到了B。



  • 四次揮手釋放串連
    •   第一次:用戶端首先發送串連釋放報文段(FIN:終止串連標誌=1,seq:序號=X),FIN=1向伺服器提出分手。用戶端狀態:FIN-WAIT-1(終止串連等待狀態1)
    •   第二次:因TCP的串連是全雙工系統的雙向串連,關閉也是要從兩邊關閉;當伺服器收到用戶端發來的FIN=1的標誌位後,伺服器不會立刻向用戶端發送FIND=1的請求關閉資訊,而是先向用戶端發送一個ACK=1的應答資訊,表示:你請求關閉的請求我已經收到,但我可能還有資料沒有完成傳送,你再等下,等我資料轉送完成了我就告訴你;確認報文(ACK:確認機制=1,ack:確認訊號=X+1,seq:序號=Y)
      伺服器狀態:CLOSE-WAIT(關閉等待),這樣用戶端伺服器端的串連就釋放了
      用戶端狀態:FIN-WAIT-2(終止串連等待狀態2)
    •   第三次:伺服器端資料轉送完成,沒有動洗傳輸了,伺服器這邊提出釋放串連要求(FIN:終止串連標誌=1,ACK:確認機制=1,seq:序號=Z,ack:確認訊號=X+1)
      伺服器狀態:LAST-ACK(最後確認)
    •   第四次:host1收到FIN=1後,host1還是怕由於網路不穩定的原因,怕host2不知道他要中斷連線,於是向host2發送ACK=1確認資訊進行確認,把自己設定成TIME_WAIT狀態並啟動定時器,如果host2沒有收到ACK,host2端TCP的定時器到達後,會要求host1重新發送ACK,當host2收到ACK後,host2就中斷連線;當host1等待2MLS(2倍報文最大存留時間)後,沒有收到host2的重傳請求後,他就知道host2已收到了ACK,所以host1此時才關閉自己的串連。這一點我覺得設計得非常巧妙




TCP/IP的三向交握和四次放手

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.