利用wireshark學習tcp的連結建立與釋放
阿新 • • 發佈:2019-01-24
參考文章
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)
結合這張圖
客戶端點選斷開連線