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