目錄
一、ARP
二、DNS
三、TCP
TCP的總過程:
?TCP三次握手:
?TCP四次揮手:
?四、HTTP
一、ARP
1.ARP(Address Resolution Protocol),是根據(jù)IP地址獲取物理地址的一個(gè)TCP/IP協(xié)議。
我們要抓ARP 同網(wǎng)段內(nèi)的訪問網(wǎng)關(guān)的情況。
先cmd執(zhí)行 arp -a 命令,從ARP表中查看本網(wǎng)段內(nèi)有哪些主機(jī)
然后 arp -d 清空ARP表
cmd執(zhí)行 arp -a,驗(yàn)證ARP表已被清空(ARP的自主學(xué)習(xí))
2.Ping本網(wǎng)段內(nèi)任意主機(jī)
1)cmd執(zhí)行下面這條命令獲取局域網(wǎng)內(nèi)所有主機(jī):
命令的意思是:ping 10.200.1.xxx到 10.200.1.255 之間的所有IP,注意將IP地址改成自己的網(wǎng)段。
for /L %i IN (1,1,254) DO ping -w 2 -n 1 10.200.1.%i
ipconfig -all 查看本機(jī)IP及MAC地址:
全部ping網(wǎng)段 或者ping網(wǎng)關(guān)或某個(gè)ip
3.過濾ARP協(xié)議的數(shù)據(jù)包
顯示過濾器中輸入:arp,過濾ARP協(xié)議的數(shù)據(jù)包。
?
兩個(gè)數(shù)據(jù)包,第一個(gè)包是ARP請求包,第二個(gè)包是ARP響應(yīng)包。
先看第一個(gè)數(shù)據(jù)包,源地址(Source字段)是我自己的MAC地址(8d:e4:71)。
目標(biāo)地址(Destination字段)是 Broadcast,就是廣播的意思。
Info 字段,是對當(dāng)前動(dòng)作的描述。
總結(jié)一下第一個(gè)數(shù)據(jù)包做了什么:
我的電腦,發(fā)送了一個(gè)廣播,廣播的內(nèi)容是 “誰是10.200.1.8?告訴10.200.1.36”
10.200.1.36是我電腦的IP,意思就是:呼叫10.200.1.8,收到請回復(fù)我。
第二個(gè)數(shù)據(jù)包的目的地址(Destination 字段)是我電腦的MAC地址
結(jié)合 Info 字段的信息,總結(jié)一下第二個(gè)數(shù)據(jù)包做了什么:
有個(gè)主機(jī),向我的電腦發(fā)送了一個(gè)信息,信息的內(nèi)容是 “10.200.1.36 是 c0-25-a5-8d-e4-71”
這個(gè)主機(jī)把MAC地址告訴了我的電腦。
結(jié)論:
ARP地址解析協(xié)議就像一個(gè)隊(duì)內(nèi)語音,他會向局域網(wǎng)內(nèi)所有主機(jī)廣播請求,索要目標(biāo)IP的MAC地址;知道的主機(jī)就會響應(yīng)具體的MAC地址。
4.數(shù)據(jù)包內(nèi)容分析
接下來我們根據(jù)包的數(shù)據(jù)分析一下,這兩個(gè)包是怎么做的:
1)第一個(gè)包的數(shù)據(jù):
- 第一處:ARP后面的括號里是 request,說明這是個(gè)請求包
- 第二處:源IP、源MAC、目標(biāo)IP都有值,目標(biāo)MAC卻全是0,意思就是告訴他們:我不知道這個(gè)IP的MAC地址。
?
2)第二個(gè)包的數(shù)據(jù):
- 第一處:ARP后面的括號里是 reply,說明這是個(gè)響應(yīng)包
- 第二處:源IP、源MAC、目標(biāo)IP、目標(biāo)MAC都有值,接收方可以從這里獲取IP對應(yīng)的MAC地址。
?
5.ARP自主學(xué)習(xí)
再次使用 arp -a 查看ARP表
可以發(fā)現(xiàn),表中添加了我們剛才 ping 的IP,以及對應(yīng)的MAC地址,這就是ARP的學(xué)習(xí)能力:解析成功的MAC地址會被臨時(shí)緩存,以節(jié)約資源。
?
第六步:再次訪問
1)Wireshark開啟抓包,重新訪問這個(gè)主機(jī)
?
2)查看ARP請求包的目的MAC地址
?
由于是第二次訪問,ARP表中已經(jīng)緩存了MAC地址,所以這次ARP請求不再廣播,而是直接從ARP表中獲取。
二、DNS
????????DNS是一個(gè)應(yīng)用層協(xié)議,基于TCP/IP傳輸,一般的DNS報(bào)文傳輸層是UDP報(bào)文。查詢的時(shí)候一般請求DNS服務(wù)器的53端口號。
????????啟動(dòng)wireshark,在瀏覽器輸入www.xiaomi.com
,訪問小米的官網(wǎng)。(ps:網(wǎng)址會自動(dòng)跳轉(zhuǎn)到www.mi.com
,這是因?yàn)樾∶坠倬W(wǎng)做了域名重定向。)
?ping www.xiaomi.com?
??
?
?請求報(bào)文:
172.16.7.1(DNS服務(wù)器地址)
?
響應(yīng)報(bào)文:?
?
可以看到,經(jīng)過DNS查詢,得到了IP地址123.125.103.192
?和111.202.1.202
三、TCP
????????傳輸控制協(xié)議(TCP,Transmission Control Protocol)是一種面向連接的、可靠的、基于字節(jié)流的傳輸層通信協(xié)議,由IETF的RFC?793?[1]??定義。
wireshark數(shù)據(jù)包詳細(xì)欄每個(gè)字段對應(yīng)的分層。
TCP的總過程:
TCP三次握手:
TCP三次握手示意圖?
?
?
1)第一次握手:
可以看到,客戶端發(fā)起一個(gè)SYN請求,初始序列號為0
2)第二次握手
服務(wù)端返回SYN+ACK,并且包含服務(wù)端的一個(gè)初始序列號seq=0,同時(shí)返回一個(gè)確認(rèn)號ack=1
?3) 第三次握手
客戶端返回一個(gè)ACK,并且返回一個(gè)確認(rèn)號ack=1,并且將自己的序列號seq更新為1
??到此,TCP三次握手就結(jié)束了??蛻舳伺c服務(wù)端之間已經(jīng)成功建立起連接。
?TCP四次揮手:
?TCP四次揮手示意圖
?第一次揮手:客戶端發(fā)起一個(gè)FIN,表示客戶端希望斷開連接。
?第二次揮手:服務(wù)端返回一個(gè)ACK,表示對客戶端斷開請求的應(yīng)答。
?第三次揮手:服務(wù)端發(fā)起一個(gè)FIN,表示服務(wù)端希望斷開連接。
?第四次揮手:客戶端返回一個(gè)ACK,表示對服務(wù)端斷開請求的應(yīng)答。
?1)第一次揮手
????????客戶端發(fā)起一個(gè)FIN請求(表示客戶端希望斷開連接),
序列號seq=1,應(yīng)答號ack=1。注意這里的應(yīng)答是上一次數(shù)據(jù)通信過程中的應(yīng)答。
2)第二次
????????服務(wù)端返回一個(gè)ACK(表示對客戶端斷開請求的應(yīng)答)?
應(yīng)答號ack=2,序列號seq=1
?3)第三次揮手
?????????服務(wù)端返回一個(gè)ACK(表示對客戶端斷開請求的應(yīng)答)+FIN(表示服務(wù)端希望發(fā)起斷開請求)
應(yīng)答號ack=2,序列號seq=1? ? ??
4)第四次揮手
?????????客戶端返回一個(gè)ACK(表示對服務(wù)端斷開請求的應(yīng)答)
應(yīng)答號ack=2,序列號seq=2
附:
訪問www.xiaomi.com的TCP總過程:?
?四、HTTP
?????????超文本傳輸協(xié)議(Hyper Text?Transfer Protocol,HTTP)是一個(gè)簡單的請求-響應(yīng)協(xié)議,它通常運(yùn)行在TCP之上。
HTTP報(bào)文由三部分組成,開始行、首部行和實(shí)體主體,如圖。
在請求報(bào)文中,開始行就是請求行。
以超星學(xué)習(xí)通為例吧:
因?yàn)楝F(xiàn)在大部分網(wǎng)站都是用https加密了。
超星
鯊魚抓包:
?200的響應(yīng)碼:
小米的 mi.com:
?TLS協(xié)議Client Hello
?服務(wù)端發(fā)出的Server Hello
文章來源:http://www.zghlxwxcb.cn/news/detail-494499.html
?到此,TLS的握手過程就結(jié)束了,后面可以加密傳輸消息了。文章來源地址http://www.zghlxwxcb.cn/news/detail-494499.html
到了這里,關(guān)于Wireshark抓包分析(ARP TCP DNS HTTP)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!