日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从Wireshark看TCP连接的建立与关闭

發布時間:2025/3/15 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从Wireshark看TCP连接的建立与关闭 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

TCP是一種面向連接、可靠的協議。TCP連接的建立與斷開,都是需要經過通信雙方的協商。用一句話概括就是:三次握手say hello(建立連接);四次握手say goodbye(斷開連接)。要了解TCP連接的建立與斷開,就不得不需要了解TCP頭的內容。然而,TCP頭及其復雜,概括而言,我們需要了解以下內容:

Sequence Number(Seq):序號。表示一個TCP片段,用于保證數據沒有丟失

Acknowledgment Number(Ack):確認號。用于表示希望從對方得到的下一個數據包的序號。舉例來說A發送了一個數據包給B,Ack = 1000;那么就表示A希望從B那接收到的下一個數據包的序號為1000。也就是說,B應該發送一個數據包給A,Seq = 1000。后面會有更詳細的例子

Flags:標志。用于標記TCP數據包的類型。TCP連接的建立與斷開,會用到以下標記:SYN,ACK,FIN

  • SYN = Synchronize sequence numbers
  • ACK = Acknowledgment
  • FIN = Finish

三次握手的示意圖如下:

使用Wireshark捕獲TCP三次握手的過程,從下圖我們也能很清楚的知道Seq以及Ack變化的過程:

  • Client -> Server: Seq = 3691127924(X) (Flags = SYN)
  • Server -> Client: Seq = 233779340(Y), Ack = 3691127925(X+1) (Flags = SYN&ACK)
  • Client -> Server: Seq = 3691127925(X+1), 233779341(Y+1) (Flags = SYN&ACK)

四次握手的示意圖如下:

使用Wireshark捕獲TCP四次次握手的過程,從下圖我們也能很清楚的知道Seq以及Ack變化的過程:

  • Client -> Server: Seq = 822643295(X), Ack = 2079380537(Y) (Flags = FIN&ACK)
  • Server -> Client: Seq = 2079380537(Y), Ack = 822643296(X+1) (Flags = ACK)
  • Server -> Client: Seq = 2079380537(Y), Ack = 822643296(X+1) (Flags = FIN&ACK)
  • Client -> Server: Seq = 822643296(X+1), Ack = 2079380537(Y+1) (Flags = ACK)

上述的Wireshark并不是我在實踐中捕獲的數據包,而是《Wireshark數據包分析實戰》這本書中附帶的數據包文件。在我實際的抓包分析中,捕獲的四次握手的過程似乎有些不一樣(只有三次握手就斷開連接了,希望通過后續學習能解開這個疑惑)

三次握手:

四次握手:

轉載于:https://www.cnblogs.com/jonathanlin/p/4282582.html

總結

以上是生活随笔為你收集整理的从Wireshark看TCP连接的建立与关闭的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。