一、 網頁訪問介紹
在網絡管理工作中,網絡管理人員經常會遇到局域網內主機之間訪問速度正常,而通過瀏覽器訪問網頁(通常所講的上網)速度慢的情況。要弄清并解決此類問題,需要對網頁的加載過程進行詳細分析。
標準的網頁訪問(HTTP)使用TCP 80端口,并通過C/S模式進行工作。
客戶端向HTTP服務器發送一個TCP連接的SYN請求(1),HTTP服務器在收到此請求后使用一個SYN/ACK的數據包對客戶端進行響應(2),而客戶端在收到此響應后再次向HTTP服務器發送一個ACK數據包進行確認(3),此時,TCP連接成功建立。在連接建立后,客戶端立即使用請求方法(通常為GET或POST)向服務器請求數據(4),一般情況下HTTP服務器會向客戶端回應其相應的HTTP報頭和數據(5),但在某些情況下(腳本比較復雜,需耗費大量時間執行)開始的時候只能返回HTTP的報頭,而數據(6、7、N)可能會在相隔一段時間后再單獨地分組進行傳輸,當數據傳輸完后,客戶端發送FIN數據包關閉連接。
科來網絡分析系統5.0中,對于每個數據包都可查看相對時間(設定某個數據包為基準)和時間差,在遇到訪問網頁速度慢的情況時,捕獲HTTP的訪問并查看相應的時間,即可確定訪問速度慢的原因并排查故障。
二、 查找訪問網頁慢的原因
內部網中訪問網頁速度很慢,我們使用科來網絡分析系統對訪問該網頁的數據包進行跟蹤分析,以找出原因。
1. 1-3的三個數據包是客戶端與HTTP服務器的三次握手數據包,所用的時間是2367毫秒左右,其中HTTP服務器返回給客戶端的SYN/ACK數據包的時間差較大,為2367毫秒左右;
2. 第4個數據包是客戶端向HTTP服務器發起GET請求,HTTP服務器在第6個數據包對它進行響應,所用的時間是1641毫秒;
3. 從第7個數據包到結束,HTTP服務器端開始向客戶端傳送請求的數據,所用的時間是71183毫秒,即71秒左右;
從上面的分析可知,客戶端訪問網頁速度慢的原因主要有兩點:
1. 客戶端與HTTP服務器距離太遠。客戶端與HTTP服務器三次握手的時間太長,表示兩者這間的路由太多,數據包傳送時的路徑太遠,引起速度慢。
2. HTTP服務器腳本響應時間太長。可能是請求的頁面中存在過多的腳本或圖片等信息,造成響應的時間長,引起速度慢。
通過上面對訪問網頁的抓包分析,我們便快速地找到了訪問網頁慢的原因。對于提供對外Web服務的管理人員,通過這種方法,可以有效檢測出自己網站的訪問速度,并及時對需要調整的參數進行優化,以使網站提供最佳的訪問。
注意:在傳送一個網頁時,Web服務器會同時打開多個TCP連接,如每一張圖片都單獨使用一個TCP連接進行傳送。所以圖2中出現了多次的三次握手數據包是正常的,這是因為服務器使用了多個TCP連接打開客戶端請求的頁面。