計算機網絡實驗: 應用層和傳輸層網絡協議分析

實驗名稱

應用層和傳輸層網絡協議分析

實驗介紹

實驗使用 Wireshark 工具對網絡數據包進行抓取,並針對應用層和傳輸層封裝的網絡封包進行詳細分析,通過實踐觀察加深對應用層HTTP協議以及傳輸層TCP協議具體實現過程的理解。
在這個實驗中,我們將探討 HTTP 協議的幾個方面:基本/響應交互,HTTP 消息格式,檢索大型 HTML 文件,檢索 HTML 文件嵌入對象,HTTP 身份驗證和安全。

實驗目的

(1) 理解和掌握 Wireshark 等工具的使用方法;
(2) 利用 Wireshark 工具對應用層 HTTP 協議和傳輸層 TCP 協議進行分析。

背景知識和準備

HTTP協議以及TCP協議的理論知識。

HTTP協議

HTTP概述

HTTP是超文本傳輸協議,是Web的核心。它包括兩個部分:客戶及程序、服務器程序。它們分別運行在不同的端系統中,通過交換HTTP報文進行會話。HTTP協議定義了報文的格式以及客戶機和服務器交換報文的方式。
用戶請求一個Web頁(如點擊一個超鏈接),瀏覽器向服務器發出對該頁所含對象的“HTTP請求報文”。服務器接受請求,回發包含請求對象的“HTTP響應報文”。
在這裏插入圖片描述

HTTP連接

HTTP連接包括非持續HTTP連接、持續HTTP連接兩種,默認方式下使用持續連接。對於持續連接,服務器在發送響應後保持該TCP連接,相同客戶機與服務器之間的後續請求和響應報文通過相同的連接進行傳送。此外,一個TCP連接上可以傳送多個Web對象。

HTTP請求報文

在這裏插入圖片描述

HTTP響應報文

在這裏插入圖片描述

TCP協議

TCP概述
i. 端到端

一個發送方, 一個接收方,連接狀態與端系統有關,不爲路由器所知。

ii. 可靠、有序的字節流
iii. 流水線

TCP擁塞和流量控制設置滑動窗口協議。

iv. 發送和接收緩衝區
v. 全雙工網絡

同一連接上的雙向數據流。

vi. 面向連接

在進行數據交換前,初始化發送方與接收方狀態,進行握手(交換控制信息)。

vii. 流量控制

發送方不能淹沒接收方。

viii. 擁塞控制

抑止發送方速率來防止過分佔用網絡資源。

可靠數據傳輸

TCP在IP不可靠服務的基礎上創建可靠數據傳輸服務。

TCP報文段結構

在這裏插入圖片描述

實驗過程

1. 瞭解Wireshark工具的工作原理及使用方法

2. 對HTTP協議進行分析

在這個實驗中,我們將探討 HTTP 協議的幾個方面:基本/響應交互,HTTP 消息格式,檢索大型 HTML 文件,檢索 HTML 文件嵌入對象,HTTP 身份驗證和安全。

基本的HTTP請求/響應

a) 啓動web瀏覽器,以Microsoft Edge爲例。
在這裏插入圖片描述
b) 啓動Wireshark 的數據包嗅探器,然後輸入“http”(不帶引號)。
在這裏插入圖片描述
c) 稍等片刻,然後按下開始按鈕,開始捕獲 Wireshark 的數據包。
在這裏插入圖片描述
現在,正在進行捕獲。
在這裏插入圖片描述
d) 在瀏覽器中輸入以下網址:
http://gaia.cs.umass.edu/wireshark-labs/HTTP-wireshark-file1.html
在這裏插入圖片描述
e) 停止 Wireshark 捕獲數據包,Wireshark獲取數據如下圖:
在這裏插入圖片描述
f) 觀察到上面捕獲了較多的數據包,是不符合預期的,這不方便我們進行分析。推測原因在於,從捕獲開始到捕獲結束的這段時間內,除了訪問指定網址以外,有其他應用程序(如QQ、網易雲音樂等)傳遞的HTTP消息被同時捕獲到。同時正在訪問的其他網頁對我們的捕獲也產生了影響。因此,我關閉了其他應用程序,只訪問指定的網頁,快速地訪問網頁,之後馬上停止捕獲。此次的捕獲結果爲:
在這裏插入圖片描述
按下Ctrl+S,保存該報文。
在這裏插入圖片描述
g) 觀察到HTTP響應狀態爲“304 Not Modified”,而不是“200 OK”,推測原因在於先前已經訪問該網站,再次訪問只起到了“刷新”的作用。我查了一下“304 Not Modified”的含義:
當客戶端緩存了目標資源但不確定該緩存資源是否是最新版本的時候, 就會發送一個條件請求。在進行條件請求時,客戶端會提供給服務器一個If-Modified-Since請求頭,其值爲服務器上次返回響應頭中Last-Modified值,還會提供一個If-None-Match請求頭,值爲服務器上次返回的ETag響應頭的值。
服務器會讀取到這兩個請求頭中的值,判斷出客戶端緩存的資源是否是最新的,如果是的話,服務器就會返回HTTP/304 Not Modified響應頭, 但沒有響應體.客戶端收到304響應後,就會從本地緩存中讀取對應的資源。 所以:當訪問資源出現304訪問的情況下其實就是先在本地緩存了訪問的資源。
清除已緩存的數據:
在這裏插入圖片描述
再次嘗試抓包,成功。
在這裏插入圖片描述
響應報文狀態爲200 OK。查閱資料得知,HTTP 200 OK成功狀態響應碼指示請求已成功。200響應默認是可緩存的。Wireshark 獲取到的請求報文如下圖:
在這裏插入圖片描述
Wireshark 獲取到的響應報文如下圖:
在這裏插入圖片描述
按下Ctrl+S,保存該報文。

HTTP條件請求/響應(file 2)

下次更新,不知道有人看嗎?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章