歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 關於tcp/ip三次握手的理解和詳細分析

關於tcp/ip三次握手的理解和詳細分析

日期:2017/2/28 15:44:52   编辑:Linux教程

實例,通過http文件下載來分析tcp/ip三次握手的機制

在百度裡面搜索QQ,進行下載,然後對數據包流程進行分析

抓包數據如下,

三次握手過程分析

(此處為描述方便,將A=192.168.0.152,B=61.158.251.62)

三次握手流程原理

  1. 1. (A) –> [SYN] –> (B)
  2. 客戶機A和服務器B通訊. 當A要和B通信時,A首先向B發一個SYN (Synchronize) 標記的包,告訴B請求建立連接.
  3. 注意: 一個 SYN包就是僅SYN標記設為1的TCP包(參見TCP包頭Resources). 認識到這點很重要,只有當B受到A發來的SYN包,才可建立連接,除此之外別無他法。因此,如果你的防火牆丟棄所有的發往外網接口的SYN包,那麼你將不能讓外部任何主機主動建立連接。
  4. 2. (B) <– [SYN/ACK] <–(A)
  5. 接著,B收到後會發一個對SYN包的確認包(SYN/ACK)回去,表示對第一個SYN包的確認,並繼續握手操作.
  6. 注意: SYN/ACK包是僅SYN 和 ACK 標記為1的包.
  7. 3. (A) –> [ACK] –> (B)
  8. A收到SYN/ACK 包,A發一個確認包(ACK),通知B連接已建立。至此,三次握手完成,一個TCP連接完成
  9. Note: ACK包就是僅ACK 標記設為1的TCP包. 需要注意的是當三此握手完成、連接建立以後,TCP連接的每個包都會設置ACK位
Copyright © Linux教程網 All Rights Reserved