Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析
Wireshark抓包分析TCP建立/釋放鏈接的過程以及狀態(tài)變遷分析
一、介紹計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)
1.計(jì)算機(jī)的網(wǎng)絡(luò)體系結(jié)構(gòu)
在抓包分析TCP建立鏈接之前首先了解下計(jì)算機(jī)的網(wǎng)絡(luò)通信的模型,我相信學(xué)習(xí)過計(jì)算機(jī)網(wǎng)絡(luò)的都比較熟悉,如下圖所示是一個(gè)OSI七層模型、TCP/IP四層模型以及五層模型的對(duì)比圖。(此圖來源于計(jì)算機(jī)網(wǎng)絡(luò)第七版-謝希仁版本書)。
其中OSI模型以及TCP/IP的模型大伙都應(yīng)該熟悉,至于說五層模型,就是講網(wǎng)絡(luò)接口層分成 數(shù)據(jù)鏈路層、和物理層,關(guān)于這個(gè)問題,謝老這么解釋的
2.計(jì)算機(jī)網(wǎng)絡(luò)模型每層所包含的信息內(nèi)容
內(nèi)容介紹
- 物理層?
- 通過線路傳送原始的比特流
- 只完成一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn)的傳送
- 數(shù)據(jù)鏈路層?
- 通過物理網(wǎng)絡(luò)傳送包(這里的包指的是數(shù)據(jù)報(bào))
- 只完成一個(gè)節(jié)點(diǎn)到另一個(gè)節(jié)點(diǎn)的傳送
- 實(shí)現(xiàn)點(diǎn)到點(diǎn)的可靠傳輸
- 網(wǎng)絡(luò)層?
- 把包里面的目的地址拿出來,進(jìn)行路由選擇,決定要往哪個(gè)方向傳輸
- 負(fù)責(zé)從源通過路由選擇到目的地的過程,達(dá)到從源主機(jī)傳輸數(shù)據(jù)到目標(biāo)主機(jī)的目的
- 傳輸層?
- 網(wǎng)絡(luò)層只是把數(shù)據(jù)送到主機(jī),但不會(huì)送到進(jìn)程,傳輸層負(fù)責(zé)進(jìn)程與主機(jī)間的傳輸,主機(jī)到主機(jī)的傳輸交由網(wǎng)絡(luò)層負(fù)責(zé)
- 傳輸層實(shí)現(xiàn)端到端的可靠傳送
- 會(huì)話層?
- 通過數(shù)據(jù)流建立會(huì)話關(guān)系
- 展示層?
- 數(shù)據(jù)壓縮、解壓、加密、解密、數(shù)據(jù)類型、格式變換等一切與數(shù)據(jù)展示有關(guān)的操作
- 應(yīng)用層?
- 專門針對(duì)某些應(yīng)用提供服務(wù)
- 物理層?
針對(duì)以上內(nèi)容展現(xiàn)一個(gè)圖例
此圖來源于https://www.jianshu.com/p/c793a279f698 不定非常準(zhǔn)確,參考
二、使用抓包工具分析TCP鏈接過程
1.安裝Wireshark(自己百度下載安裝)
我使用版本Version 1.4.9 ,工具有好多比如Sniffer等等,這個(gè)工具自己解決
2.開啟wireshark
雙擊打開本軟件--點(diǎn)擊接口列表或者單擊這個(gè)圖標(biāo)? ,彈出網(wǎng)卡監(jiān)聽的界面對(duì)話框,可以選擇對(duì)應(yīng)的網(wǎng)卡監(jiān)聽、鼠標(biāo)點(diǎn)擊ip地址可以從IPV4與IPV6相互切換,點(diǎn)擊開始即可。
點(diǎn)擊開始即可監(jiān)聽該網(wǎng)卡所流經(jīng)過的數(shù)據(jù)
我使用倆臺(tái)機(jī)器來測(cè)試抓取報(bào)文 如下圖所示,服務(wù)開啟端口為4455,客戶端隨機(jī)開啟一個(gè)? 我測(cè)試過程中的為40183
?
可以看到頭部的Filter 過濾規(guī)則、如果為空白,則會(huì)將流經(jīng)本網(wǎng)卡的所有數(shù)據(jù)均監(jiān)聽采集上來,為了方便抓取我們所需要的數(shù)據(jù)包,我們需要過濾掉無關(guān)的消息
3.輸入過濾規(guī)則進(jìn)行過濾
過濾規(guī)則
- tcp->只顯示TCP協(xié)議的記錄;
- http->只看HTTP協(xié)議的記錄;
- ip.src ==192.168.0.110 ->顯示源地址為192.168.0.110的記錄;
- ip.dst==192.168.0.1120 ->目標(biāo)地址為192.168.0.120的記錄;
- ip.addr == 42.121.252.58 ->只顯示與某主機(jī)的通信;
- tcp.port ==80->端口為80的;
- tcp.srcport == 80 ->只顯示TCP協(xié)議的源端口為80的;
- http.request.method=="GET" ?->只顯示HTTP GET方法的;
- eth.type == 0x806->只顯示ARP報(bào)文,這個(gè)字段的值表示是ARP報(bào)文,如果是ip報(bào)文此值為0x8000
- 注:Type后面的值記不住的話,可以在Expression中選擇,
例如:ip.src == 192.168.0.109 or ip.dst == 192.168.0.109 and tcp? 表示ip地址來源是192.168.0.120 或者ip地址目的為192.168.0.120并且通信協(xié)議是tcp
我輸入的是:tcp.srcport == 4455 or tcp.dstport == 4455 表示只查看目的端口和來源端口為4455的信息
過濾報(bào)文如下
?過濾規(guī)則也有說明打擊表達(dá)式可以查看別的規(guī)則語法
查看具體抓到的數(shù)據(jù)包對(duì)應(yīng)的協(xié)議層
4.TCP的鏈接建立
TCP的三次握手
包數(shù)據(jù)
TCP的三次握手建立鏈接圖(此圖依然來源于計(jì)算機(jī)網(wǎng)絡(luò)-謝希仁)
由上圖可以看出TCP的鏈接三次握手信號(hào)的過程 A為客戶端,B為服務(wù)器
建立過程的描述請(qǐng)看謝老的講述、以及報(bào)文抓取截圖中的信號(hào)
?
5.數(shù)據(jù)的發(fā)送
6.TCP的鏈接釋放
TCP鏈接釋放報(bào)文交互信息
TCP鏈接釋放的過程,也就是通常說的四次揮手
7.TCP的有限狀態(tài)機(jī)
為了能夠更加清晰的看清楚TCP鏈接過程的狀態(tài)變化情況,以及狀態(tài)之間的關(guān)系下圖介紹了TCP的有限狀態(tài)機(jī)
6.TCP建立鏈接和斷開所用到的工具
開啟客戶端和服務(wù)端程序并且啟動(dòng)服務(wù)的監(jiān)聽
開啟服務(wù)端
?
開啟客戶端
TCP測(cè)試工具下載地址?
?
轉(zhuǎn)載于:https://www.cnblogs.com/JiYF/p/9284239.html
總結(jié)
以上是生活随笔為你收集整理的Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 腐蚀函数cvErode 和 膨胀函数cv
- 下一篇: cvMorphology形态学原理解析及