七字真言解讀TCP三次握手

古美領導人3次握手

三次握手所謂的「三次握手」即對每次發送的數據量是怎樣跟蹤進行協商使的發送和接收同步,根據所接收到的數據量而肯定的數據確認數及數據發送、接收完畢後什麼時候撤消聯繫,並創建虛鏈接。服務器

1、七字真言解讀三次握手

2、爲何須要三次握手?

主機創建鏈接爲何須要三次握手?爲了防止已是失效鏈接忽然又從新回到了服務端而產生的錯誤。「好比一個客戶端發出一個鏈接請求報文雖然沒有丟失,可是因爲一些緣由在在某個網絡節點中長時間滯留,以致於在斷開鏈接後纔到達服務端。這自己就是一個已經失效的報文。可是服務器誤覺得是客戶端的又一個新的請求。假設沒有三次握手那麼只要服務端發出確認連接就創建了。因爲客戶端也沒有給服務端發請求,所以也不回覆服務端的確認。可是服務端確認爲新的鏈接開始了,等待客戶端發數據。這樣就容易形成服務端的資源的浪費。採用三次握手能夠防止這種狀況發生。網絡

3、圖解三次握手、四次揮手

  • 三次握手
    第一次握手:客戶端申請鏈接(SYN=1),發送seq=j的數據包
    第二次握手:服務器端申請鏈接(SYN=1),確認收到客戶端的申請(ACK=1).;服務器指望下次收到J+1數據包(ack=j+1),發送seq=k的數據包
    第三次握手:客戶端確認收到請求(SYN=1),發送服務器指望的數據包(j+1).完成鏈接

  • 四次揮手
    第一次揮手:客戶端請求斷開鏈接(FIN=1),發送序號爲j的數據(seq=u)
    第二次揮手:確認收到請求(ACK=1),我指望收到u+1d的數據包(ack=u+1),發送序號爲k的數據(seq=k)
    第三次揮手:服務器申請斷開鏈接(FIN=1),確認收到你以前的請求(ACK=1);指望收到u+1的數據(ack=u+1),發送序號爲v的數據
    第四次揮手:確認收到請求(ACK=1),發送序號爲u+1的數據(seq=u+1)。斷開鏈接

4、爲何握手三次,揮手四次?

  • 三次握手
    由於要保證信道的可靠,就須要雙方溝通而且達成一致。而要解決這個文件3次是最小值。因此三次握手並非真對TCP來講的,而是爲了保證信道的可靠。
    我的理解:三次握手並不許確,準確的說是雙方各一次握手,各確認一次。中間第二次是握手與確認合併在一塊兒tcp

  • 爲何揮手比握手多一次
    由於tcp鏈接是全雙工的,所以每一個方向都必須單獨的斷開鏈接客戶端申請斷開鏈接,只是再也不發送數據,還能接收數據。須要等待服務端將數據發送完畢後,等待服務端申請斷開鏈接。blog

相關文章
相關標籤/搜索