WireShark抓包分析TCP/IP三次握手與四次揮手
Wireshark介紹:
Wireshark(前稱Ethereal)是一個網路封包分析軟體。功能十分強大,是一個可以在多個作業系統平臺上的開源網路協議分析工具軟體,其主要作用是嘗試捕獲資料包,顯示包的詳細情況。
TCP三次握手(建立連線):
-
- 原理如圖:
-
- 資料包的分析(tcp三次握手):
我們以192.168.239.133的49936號埠為例分析tcp三次握手和四次揮手
第一次握手:
由圖可知:192.168.239.133用埠號為49936的埠向218.195.47.39的8080號埠傳送了一個連線請求,這個請求包序號為0,SYN=1
第二次握手:
由圖可知:從第二次握手可以看到,218.195.47.39用埠號8080的埠向客戶端192.168.239.133的49936號埠確認剛才的連線請求。這個報文段的序號為0,確認號為上圖中客戶端發起的報文段序列號加一(即0+1=1),且SYN=1,ACK=1。如下圖:
第三次握手:
由圖可知:可以看到客戶端192.168.239.133傳送了一個帶序號的報文對伺服器218.195.47.39剛才傳送的報文進行確認,這次傳送的報文的序號為1,確認號為上圖中伺服器218.195.47.39傳送的報文段序號加1(即0+1=1),SYN=0,ACK=1,如下圖:
TCP四次揮手(斷開連線):
-
- 原理如圖
-
- 資料包的分析(tcp四次揮手):
我們以192.168.239.133的49936號埠為例分析tcp三次握手和四次揮手
第一次揮手:
由圖可知:客戶端192.168.239.133用埠號為49936的埠對伺服器218.195.47.39的8080埠傳送一個序號為1387的FIN報文,FIN=1,ACK=1,如下圖所示:
第二次揮手:
由圖可知:伺服器218.195.47.39用埠號為8080的埠對客戶端192.168.239.133的49936號埠傳送一個序列號為461540的確認報文,確認號為上圖中伺服器192.168.239.133傳送的報文段序號加1(即1387+1)
第三次揮手:
由圖可知:伺服器218.195.47.39用8080埠對客戶端192.168.239.133的49936埠傳送了一個序號為461540的確認報文,確認號為第二步中客戶端192.168.239.133傳送的報文段序號加1(即1387+1)
第四次揮手:
由圖可知:客戶端192.168.239.139使用49936埠向伺服器218.195.47.39傳送一個序號為1388的確認報文,它的Ack序號為461541(461540+1),ACK=1,如下圖所示: