1. 程式人生 > >利用wireshark學習tcp的連結建立與釋放

利用wireshark學習tcp的連結建立與釋放

參考文章

http://www.cnblogs.com/Jessy/p/3535612.html

http://blog.csdn.net/whuslei/article/details/6667471/


利用wireshark軟體可以很清晰地理解tcp建立和釋放的過程。

我們用TCP/UDP Socket除錯工具 來模擬tcp的傳送。

兩臺電腦,一臺作為客戶端,ip為192.168.1.100

另一臺作為伺服器,ip為192.168.134.248

伺服器的監聽埠設為8101,開始監聽。


在客戶端機器上開啟wireshark軟體,開啟監聽,並且規則設定成 tcp.port==8101 點選Apply應用,這樣軟體就能幫我們過濾掉很多不關心的內容,只剩下相應的8101埠的tcp包。

點選客戶端的tcp工具的連線按鈕,發現wireshark監控介面,出現三條記錄,即三次握手。



簡單分析下:

1)1.100向134.248發起請求,標誌位SYN置1,Seq=0

2)134.248向1.100傳送確認資訊,標誌位SYN和ACK置1,Seq=0,Ack=1(0+1)

3) 1.100想134.248傳送訊息,標誌位ACK置1,Seq=1 Ack=1

結合這張圖看


用客戶端傳送幾條資料


對應的包


1)客戶端傳送“1212” 傳送的長度為4, 標誌位PSH置1,ACK置1,Seq=1,Ack=1,客戶端視窗大小win=64240

2)伺服器收到,傳送確認資訊,標誌位ACK置1,Seq=1,ACK=5(1+4-1+1),告訴客戶端,伺服器的視窗大小為64240(資料以消化)

3)客戶端再次傳送“12”

4)伺服器收到,傳送確認資訊,訊息未消化,快取視窗大小為64238(64240-2)

結合這張圖


客戶端點選斷開連線