哈工大 計算機網絡 實驗四 利用 Wireshark 進行協議分析


計算機網絡實驗代碼與文件可見github:計算機網絡實驗整理
實驗名稱 利用 Wireshark 進行協議分析
實驗目的:
本次實驗的主要目的。
熟悉並掌握Wireshark的基本操作,了解網絡協議實體間進行交互以及報文交換的情況。
實驗內容:
概述本次實驗的主要內容,包含的實驗項等。

  1. 學習 Wireshark 的使用
  2. 利用 Wireshark 分析 HTTP 協議
  3. 利用 Wireshark 分析 TCP 協議
  4. 利用 Wireshark 分析 IP 協議
  5. 利用 Wireshark 分析 Ethernet 數據幀
    選做內容:
    a) 利用 Wireshark 分析 DNS 協議
    b) 利用 Wireshark 分析 UDP 協議
    c) 利用 Wireshark 分析 ARP 協議
    實驗過程:
    學習 Wireshark 的使用
    基本介紹:
    Wireshark 是一種可以運行在 Windows,UNIX,Linux 等操作系統上的分組分析器。 Wireshark(前稱 Ethereal)是一個網絡封包分析軟件。網絡封包分析軟件的功能是擷取網絡封包,並盡可能顯示出最為詳細的網絡封包資料。Wireshark使用WinPCAP作為接口,直接與網卡進行數據報文交換。
    使用簡介:
    (1) 啟動 Wireshark 軟件,打開瀏覽器,選擇網絡接口 WLAN;
    在這里插入圖片描述

(2) 瀏覽器輸入網址,Wireshark 抓包,並篩選 HTTP 協議報文:
(3) 詳細用戶界面:命令菜單、俘獲分組列表、分組頭部明細、分組內容窗口、篩選俘獲分組等信息與實驗指導書中給出的基本一致,不再展示。
利用 Wireshark 分析 HTTP 協議
瀏覽器中輸入的網址為:http://today.hit.edu.cn,Wireshark抓包結果如下:
在這里插入圖片描述

HTTP GET/response 交互
a)瀏覽器運行的是HTTP1.1,服務器運行的HTTP版本號為HTTP1.1
在這里插入圖片描述

HTTP請求報文——瀏覽器的HTTP協議版本
在這里插入圖片描述

HTTP響應報文——服務器的HTTP協議版本
b)瀏覽器向服務器指出可接受的語言版本為zh_CN,也就是簡體中文。
在這里插入圖片描述

接受的語言版本
c)本機IP地址為:172.20.171.118,服務器的IP地址為:202.118.254.117
在這里插入圖片描述

源IP地址與目的IP地址
d)瀏覽器返回的狀態代碼為200:
在這里插入圖片描述

服務器返回狀態碼
HTTP 條件GET/response 交互
a) 第一個 GTE 請求在請求報文中無 IF-MODIFIED-SINCE。
在這里插入圖片描述

無該請求行
b) 服務器明確返回了文件內容,可以通過狀態碼和數據段感知。
在這里插入圖片描述

服務器返回的狀態碼
在這里插入圖片描述

服務器返回的數據
c) 向發出的較晚 GET 請求中,有該行:IF-MODIFIED-SINCE,且該行后的信息是本地緩存文件中 Last-Modified 字段的最后修改時間;
在這里插入圖片描述

響應報文中出現IF-MODIFIED-SINCE字段
d) 服務器對較晚的 HTTP GET 請求的響應中的 HTTP 狀態代碼是304。服務器並為返回了文件的內容。這是因為客戶端在找到本地緩存之后,經過請求報文向服務器端確定這一份緩存是最新的,那么服務器端就不再向客戶端發送這一份數據,客戶端直接使用緩存的數據段。
利用 Wireshark 分析 TCP 協議
在這里插入圖片描述

上傳數據
瀏覽追蹤信息:
a)向 gaia.cs.umass.edu 服務器傳送文件的客戶端主機的 IP 地址是172.20.171.118, TCP 端口號是3144。
b) Gaia.cs.umass.edu 服務器的 IP 地址是128.119.245.12。對這一連接,它用來發送和接收 TCP 報文的端口號是80。
在這里插入圖片描述

服務器端與客戶端IP地址與端口號
TCP 基礎:
a)客戶服務器之間用於初始化 TCP 連接的 TCP SYN 報文段的序號是0x01 62 09 a4,在該報文段中,是用SYN標志位是否為1標示該報文段是 SYN 報文段的。
在這里插入圖片描述

SYN報文端序號
在這里插入圖片描述

標志此報文段為SYN報文段
b)服務器向客戶端發送的 SYNACK 報文段序號是0x03 e6 93 fa;該報文段中, Acknowledgement 字段的值是0x01 62 09 a5;Gaia.cs.umass.edu 服務器是將SYN報文段序號+1確定的這個值?在該報文段中,可以通過 SYN 和 ACK標志位都為1標識該報文段:
在這里插入圖片描述

設置ACK以及SYN字段為1
c)可以分析出三次握手,具體信息如下:

三次握手具體信息
d)包含 POST 命令的 TCP 報文段序號為8f f9 76 67:
在這里插入圖片描述

包含POST命令的TCP報文段
e)那么該 TCP 連接上的第六個報文段的序號是8f f9 8d de;發送時間:該報文段於 TCP 三次握手之后(作為第 9 個 TCP 報文段發送),四次揮手之前發送的;該報文段所對應的ACK是在第三次握手的時候接收的。
在這里插入圖片描述

6個報文段
在這里插入圖片描述

該報文段序號
在這里插入圖片描述

該報文段發送時間
f)前六個 TCP 報文段的長度各是681,1414,1414,1414,1414,1414。
在這里插入圖片描述

六個報文段長度
g)在整個跟蹤過程中,接收端公示的最小的可用緩存空間是28960;限制發送端的傳輸以后,可以發現接收端的可用緩存空間在很多時候都是在遞增的,最終可用緩存為132096。可以發現當限制了發送方的傳輸之后,接收端的緩存空間不斷增大到132096。由此可見,接收端的緩存是足夠的。
在這里插入圖片描述

接收端公示的最小緩存空間為28960
在這里插入圖片描述

最終可用緩存為132096
h)在跟蹤文件中沒有重傳的報文段,進行判斷的依據是通過觀察客戶端的分組序號,可以發現分組序號是一直在增長,沒有出現過重復的序號的,因此可以判斷沒有重傳的報文段。
在這里插入圖片描述

部分序列號
i)TCP 連接的 throughput是:50083.59Bps;請寫出你的計算過程:152935B/3.053595=50083.59Bps
在這里插入圖片描述

連接開始創建時間
在這里插入圖片描述

連接結束時間
利用 Wireshark 分析 IP 協議
通過執行traceroute執行捕獲數據包:
使用www.hit.edu.cn作為分析的網站。
對捕獲的數據包進行分析:
分析主機發出的第一個ICMP echo Request請求:
1)主機的IP地址是172.20.171.118
在這里插入圖片描述

本主機IP地址
2)在IP數據包頭中,上層協議字段的值是1,表示ICMP協議。
在這里插入圖片描述

上層協議字段
3) IP頭有20字節;該IP數據包的凈載為36字節;確定方式為:IP 分組總長度-IP首部長度。
在這里插入圖片描述

頭部長度與總長度
4) 該IP數據包未分片;由於標志位全 0,表示允許分片但是未分片;
在這里插入圖片描述

數據包未分片
分析源主機發出的一系列報文:
1)本主機發出的一系列ICMP消息中IP數據報中以下字段總在發生改變:標識ID,TTL,首部校驗和,數據域。
2)除了上述四個數據段以外的數據必須保持常值。上述四個字段總要發生改變的原因:標識ID對於每個數據包來說唯一,因此每個數據包的這個字段都不一樣;由於是ICMP的ping探測,因此TTL在不斷變大;由於上述兩個字段不斷變化,因此首部校驗和也需要變化;由於數據域中封裝有ICMP的報文,而ICMP的頭部信息不斷變化,因此IP數據報的數據域也需要不斷變化。
3)我看到的IP數據包Identification字段值的形式:每個報文有一個唯一的16字節的數值,且不斷+1遞增。
在這里插入圖片描述
在這里插入圖片描述

Identification字段
分析第一跳返回的ICMP消息:
1)Identification字段值為0x6a7a,TTL字段為124。
2)最近的路由器(第一跳)返回給你主機的ICMP Time-to-live exceeded消息中TTL保持不點,ID字段不斷改變,原因是:第一跳路由器設置TTL字段為RFC指定的值,因此始終保持不變;而ID值標識每一個IP字段,是唯一的,因此不斷改變。
分析將包改為2000字節之后主機發送的第一個ICMP Echo Request消息:
1)該消息被分解為2個數據包
2)標志位MF被置為1標識后面還有分片,該分片的數據域大小為1450B,IP總長度為1500B。
在這里插入圖片描述

分為兩個數據包
在這里插入圖片描述

標志位MF被置為1
在這里插入圖片描述

總長度1500B,頭部長度20B,數據長度1480B
分析將包改為3500字節之后主機發送的第一個ICMP Echo Request消息:
1)原始數據包被分成了3片。
2)這些分片中IP數據報頭部標志位MF變化、片偏移變化。第一個和第二個分片標志位MF為1標識后面還有分片,第一個分片的片偏移為0,第二個為185,第三個是370。
利用 Wireshark 分析 Ethernet 數據幀
1)訪問的網頁為www.hit.edu.cn
2)本主機IP:172.20.171.118,目的主機IP:61.167.60.70
在這里插入圖片描述

本主機IP與目的主機IP
3)本主機發送的第一條HTTP報文的以太網幀結構等裝了上層的IP數據,IP封裝了上層的TCP數據報,TCP數據報封裝了上層的HTTP數據。
4) 以太網幀結構如下:
目的MAC、源MAC地址(各6B):若網卡的MAC地址與收到的幀的目的MAC地址匹配,或者幀的目的 MAC 地址為廣播地址(FF-FF-FF-FF-FF-FF),則網卡接收該幀,並將其封裝的網絡層分組交給相應的網絡層協議;否則,網卡丟棄(不接收)該幀;
類型 Type2B:指示幀中封裝的是哪種高層協議的分組 (如,IP 數據報、Novell IPX 數據報、AppleTalk 數據報等);
數據(Data)(46-1500B): 指上層協議載荷;
CRC(4B): 循環冗余校驗碼,丟棄差錯幀
在這里插入圖片描述

以太網幀結構
5)本主機MAC地址:50:eb:71:2d:e0:56,目的主機MAC地址:44:ec:ce:d2:ff:c2;類型是 IPv4
在這里插入圖片描述

主機MAC地址
6)發送報文的數據域長度范圍為46B-1500B,以太網幀MTU為1500B,所以數據域最大為1500B;數據域最小值計算過程:R=10Mbps,RTTmax=512us,Lmin/R=RTTmax,則Lmin=64B,則Datamin=Lmin-18=46B。
選做內容:
利用 Wireshark 分析 ARP 協議
(1)說明 ARP 緩存中每一列的含義是什么?
ARP緩存中第一列指的是ARP協議的緩存的IP地址,第二列是MAC地址,第三列是類型,即表示是動態類型還是靜態類型。
在這里插入圖片描述

ARP緩存內容
(2) ARP數據包的格式是怎樣的?由幾部分構成,各個部分所占的字節數是多少?
格式如下,9 部分組成,分別是:硬件類型 2B、協議類型 2B、硬件地址長度 1B、協議地址長度 1B、OP2B、源 MAC 地址 6B、源 IP 地址 4B、目的 MAC 地址 6B、目的 IP 地址 4B;
在這里插入圖片描述

ARP請求和應答的分組格式
(3)如何判斷一個ARP數據是請求包還是應答包?
當 OP 值為 1 時是請求包,當 OP 值為 2 時是應答包。
在這里插入圖片描述

請求ARP
在這里插入圖片描述

響應ARP
(4)為什么ARP查詢要在廣播幀中傳送,而ARP響應要在一個有着明確目的局域網地址的幀中傳送?
查詢ARP不知道目的IP對應的MAC地址,因此需要廣播查詢;ARP響應的時候已經從查詢ARP中找到了源MAC地址,因此ARP響應可以有一個明確的目的地址。
利用 Wireshark 分析 UDP 協議
1)消息是基於UDP的還是TCP的?UDP
2)你的主機ip地址是什么?目的主機ip地址是什么?
本主機IP:172.20.171.118,目的主機IP:202.118.224.100。
在這里插入圖片描述

IP地址
3)你的主機發送QQ消息的端口號和QQ服務器的端口號分別是多少?
我主機發送消息的端口號為 4003,服務器端口號為 8000。
在這里插入圖片描述

端口號信息
4)數據報的格式是什么樣的?都包含哪些字段,分別占多少字節?
數據報格式:源端口號2B,目的端口號2B,UDP 段長度2B,校驗和2B
5) 為什么你發送一個ICQ數據包后,服務器又返回給你的主機一個ICQ數據包?這UDP的不可靠數據傳輸有什么聯系?對比前面的TCP協議分析,你能看出UDP是無連接的嗎?
服務器返回ICQ用於確認。這是由於UDP提供的是不可靠的無連接的傳輸服務,客戶端無法確認服務器是否接收到信息,因此需要一個ICQ報文表示收到。可以看出UDP是無連接的。這是因為TCP需要三次握手來建立連接,而UDP沒有這個過程。同時UDP首部也沒有標志位用於客戶端與服務器端之間互相確認傳輸情況。
利用 Wireshark 分析 DNS 協議
1)本主機IP:172.20.171.118,目的主機IP:202.118.224.100。
在這里插入圖片描述

IP地址
2)DNS消息包括消息頭部中的ID,flags等和消息體,具體格式如下:
在這里插入圖片描述

DNS消息格式
3) DNS 的下層協議是 UDP 協議,是不可靠無連接的傳輸服務
在這里插入圖片描述

DNS基於UDP協議
4)DNS使用Transaction ID來標識一次查詢和響應報文,長度是2B,可以發現請求和相應的響應報文的ID是一致的。
在這里插入圖片描述

請求報文ID
在這里插入圖片描述

響應報文ID
5)請求體內容:Name表示請求域名,Type表示請求類型,Class一般為IN。
在這里插入圖片描述

請求體內容

6)DNS記錄的不同形式如下圖所示:
在這里插入圖片描述

DNS記錄類型
7) DNS查詢分為遞歸查詢與迭代查詢。
實驗結果:
實驗結果在上一部分基本展示,這一部分展示對於上述實驗中出現的協議的認識。
HTTP協議:
1.簡介:HTTP協議(超文本傳輸協議),它是基於TCP協議的應用層傳輸協議,簡單來說就是客戶端和服務端進行數據傳輸的一種規則。
2.HTTP特點:a)無連接: 每進行一次HTTP通信,都要斷開一次TCP連接。b)無狀態:HTTP 協議無法根據之前的狀態進行本次的請求處理。c)靈活性:HTTP 允許傳輸任意類型的數據對象。正在傳輸的類型由 Content-Type加以標記d)簡單快速:客戶向服務器請求服務時,只需傳送請求方法和路徑。請求方法常用的有 GET、HEAD、POST。每種方法規定了客戶與服務器聯系的類型不同。由於 HTTP 協議簡單,使得 HTTP 服務器的程序規模小,因而通信速度很快。
3.HTTP請求狀態行:請求行由請求Method, URL 字段和HTTP Version三部分構成, 總的來說請求行就是定義了本次請求的請求方式, 請求的地址, 以及所遵循的HTTP協議版本。
4.HTTP響應狀態行:狀態行由三部分組成,包括HTTP協議的版本,狀態碼,以及對狀態碼的文本描述。
在這里插入圖片描述

HTTP請求報文
在這里插入圖片描述

HTTP響應報文
TCP協議:
1.TCP 是面向連接的運輸層協議。應用程序在使用 TCP 協議之前,必須先建立 TCP 連接。在傳送數據完畢后,必須釋放已經建立的 TCP 連接。
2.每一條 TCP 連接只能有兩個端點,每一條 TCP 連接只能是點對點的(一對一)。
3.TCP 提供可靠交付的服務。通過 TCP 連接傳送的數據,無差錯、不丟失、不重復,並且按序到達。
4.TCP 提供全雙工通信。TCP 允許通信雙方的應用進程在任何時候都能發送數據。TCP 連接的兩端都設有發送緩存和接受緩存,用來臨時存放雙向通信的數據。
5.面向字節流。TCP 中的“流”指的是流入到進程或從進程流出的字節序列。
在這里插入圖片描述

TCP報文格式
IP協議:
1.主要內容:IP協議是TCP/IP協議族的核心協議,其主要包含兩個方面:a)IP頭部信息。IP頭部信息出現在每個IP數據報中,用於指定IP通信的源端IP地址、目的端IP地址,指導IP分片和重組,以及指定部分通信行為。b)IP數據報的路由和轉發。IP數據報的路由和轉發發生在除目標機器之外的所有主機和路由器上。它們決定數據報是否應該轉發以及如何轉發。
2.特點:IP協議是TCP/IP協議族的動力,它為上層協議提供無狀態、無連接、不可靠的服務。
3.任務:負責對數據包進行路由選擇和存儲轉發。
4.IP協議:逐跳發送模式;根據數據包的目的地 IP 地址決定數據如何發送;如果數據包不能直接發送至目的地,IP 協議負責尋找一個合適的下一跳路由器,並將數據包交付給該路由器轉發;
在這里插入圖片描述

IP協議
Ethernet協議:
1.定義:Ethernet以太網協議,用於實現鏈路層的數據傳輸和地址封裝(MAC),由DIX聯盟(Digital、Intel、Xero)開發
2.任務:兩個相鄰節點之間傳送數據時,數據鏈路層將網絡層交下來的 IP 數據報組裝成幀,在兩個相鄰的鏈路上傳送幀(frame)。每一幀包括數據和必要的控制信息。
在這里插入圖片描述

以太網幀格式
ARP協議:
簡介:ARP協議是地址解析協議(Address Resolution Protocol)是通過解析IP地址得到MAC地址的,是一個在網絡協議包中極其重要的網絡傳輸協議,它與網卡有着極其密切的關系,在TCP/IP分層結構中,把ARP划分為網絡層,為什么呢,因為在網絡層看來,源主機與目標主機是通過IP地址進行識別的,而所有的數據傳輸又依賴網卡底層硬件,即鏈路層,那么就需要將這些IP地址轉換為鏈路層可以識別的東西,在所有的鏈路中都有着自己的一套尋址機制,如在以太網中使用MAC地址進行尋址,以標識不同的主機,那么就需要有一個協議將IP地址轉換為MAC地址,由此就出現了ARP協議。
在這里插入圖片描述

ARP報文格式
UDP協議:
簡介:UDP是一個簡單的面向消息的傳輸層協議,盡管UDP提供標頭和有效負載的完整性驗證(通過校驗和),但它不保證向上層協議提供消息傳遞,並且UDP層在發送后不會保留UDP 消息的狀態。因此,UDP有時被稱為不可靠的數據報協議。如果需要傳輸可靠性,則必須在用戶應用程序中實現。UDP是基於IP的簡單協議,不可靠的協議。
UDP的優點:簡單,輕量化。
UDP的缺點:沒有流控制,沒有應答確認機制,不能解決丟包、重發、錯序問題。
在這里插入圖片描述

UDP報文格式
DNS協議:
簡介:DNS 是一個應用層協議,域名系統 (DNS) 的作用是將人類可讀的域名 (如, www.example.com) 轉換為機器可讀的 IP 地址 (如,192.0.2.44)。 DNS 協議建立在 UDP 或 TCP 協議之上,默認使用 53 號端口。當前,對於每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。DNS協議是用來將域名轉換為IP地址(也可以將IP地址轉換為相應的域名地址)。
在這里插入圖片描述

DNS報文格式
問題討論:
對實驗過程中的思考問題進行討論或回答。
實驗過程中遇到了關於ICMP協議的相關內容,在此對ICMP協議進行一定的展示。ICMP(Internet Control Message Protocol)Internet控制報文協議。它是TCP/IP協議簇的一個子協議,用於在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息雖然並不傳輸用戶數據,但是對於用戶數據的傳遞起着重要的作用。
事實上ICMP是IP的一個組成部分,與 IP 協議、ARP 協議、RARP 協議及 IGMP 協議共同構成 TCP/IP 模型中的網絡層。
心得體會:
結合實驗過程和結果給出實驗的體會和收獲。

  1. 對於計算機網絡模型有了更加深入的認識。
  2. 尤其是對於應用層、傳輸層、網絡層、鏈路層的一些協議有了更加深入的了解。通過對這些協議報文的抓包分析,對於其結構與工作原理的認識更加深刻。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM