欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于網(wǎng)絡(luò)中間點的網(wǎng)頁響應(yīng)時間被動測量方法及系統(tǒng)的制作方法

文檔序號:7869709閱讀:236來源:國知局
專利名稱:基于網(wǎng)絡(luò)中間點的網(wǎng)頁響應(yīng)時間被動測量方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計算機網(wǎng)絡(luò)流量測量領(lǐng)域,尤其涉及一種基于網(wǎng)絡(luò)中間點的網(wǎng)頁響應(yīng)時間被動測量方法及系統(tǒng)。
背景技術(shù)
隨著萬維網(wǎng)(WWW)的廣泛應(yīng)用,越來越多的應(yīng)用業(yè)務(wù)通過萬維網(wǎng)提供給用戶,如新聞瀏覽、在線視頻、網(wǎng)絡(luò)購物、社交網(wǎng)絡(luò)等等。對于用戶而言,他們希望獲取高質(zhì)量的在線服務(wù),而用戶感知的網(wǎng)頁響應(yīng)時間大小在很大程度上決定著用戶對服務(wù)質(zhì)量的體驗。當(dāng)感知的網(wǎng)頁響應(yīng)時間超過期望閾值時,用戶便會放棄使用當(dāng)前服務(wù)而轉(zhuǎn)向同類型其他服務(wù)。因此網(wǎng)頁響應(yīng)時間的大小在一定程度上決定著業(yè)務(wù)的成敗,對網(wǎng)頁響應(yīng)時間進行實時準(zhǔn)確地測量對于業(yè)務(wù)提供商具有重要的意義,以便他們在網(wǎng)頁響應(yīng)時間出現(xiàn)異常時作出及時反饋并采取措施。另一方面,提供商也面臨著提供區(qū)分服務(wù)的挑戰(zhàn),為了保證不同類型的用戶都能獲得預(yù)先約定的服務(wù)質(zhì)量,網(wǎng)頁響應(yīng)時間不會超過限值,有必要對網(wǎng)頁響應(yīng)時間進行準(zhǔn)確實時地測量,以便根據(jù)測量數(shù)據(jù)動態(tài)調(diào)整提供的網(wǎng)絡(luò)資源。當(dāng)前主要的網(wǎng)頁響應(yīng)時間測量方法有以下幾種(I)主動測量方法。這種方法需要在盡量分散的多個地理位置上部署多個監(jiān)控器,這些監(jiān)控器周期性地主動發(fā)送網(wǎng)頁請求,以部分時間和地點測量的網(wǎng)頁響應(yīng)時間來反映整體的網(wǎng)頁響應(yīng)時間狀況。該方法的缺點是主動測量的流量并不能很好地代表真實網(wǎng)絡(luò)流量,這種粗粒度的時間和空間上的網(wǎng)頁響應(yīng)時間采樣會使得測量結(jié)果有一定偏差。(2)客戶端被動測量方法。被動測量方法不需要監(jiān)控設(shè)備主動發(fā)送網(wǎng)頁請求,而是通過捕獲經(jīng)過 測量點的網(wǎng)絡(luò)數(shù)據(jù)包或監(jiān)聽特定事件來完成測量過程??蛻舳吮粍訙y量方法可以對被測量網(wǎng)站內(nèi)的所有網(wǎng)頁配置客戶端執(zhí)行腳本,在客戶端瀏覽器下載了該網(wǎng)站的網(wǎng)頁之后,任何后續(xù)的點擊鏈接產(chǎn)生的站內(nèi)網(wǎng)頁都會通過客戶端腳本進行被動測量,并且自動將網(wǎng)頁響應(yīng)時間的測量結(jié)果通信給測量服務(wù)器。這種方法的缺點是測量限制太多,并且無法將網(wǎng)頁響應(yīng)時間分解為網(wǎng)絡(luò)部分和服務(wù)器部分。另一種方法是對客戶端瀏覽器進行配置。然而使用這種方法進行大規(guī)模測量時,配置太過復(fù)雜,缺乏擴展性。(3)服務(wù)器端被動測量方法。最初的服務(wù)器端被動測量方法通過跟蹤HTTP請求到達和應(yīng)答完成,進行應(yīng)用級或內(nèi)核級的測量。不過這種方法忽視了 TCP連接建立帶來的延遲,導(dǎo)致測量結(jié)果不準(zhǔn)確。后來ksniffer提出了一套較為完整的網(wǎng)頁響應(yīng)時間的服務(wù)器端被動測量體系,比起應(yīng)用級或內(nèi)核級的測量有了很大改進。只不過ksniffer在測量過程中將所有的HTML類型文件的HTTP請求都作為了網(wǎng)頁首個請求,這種方法在當(dāng)今網(wǎng)頁構(gòu)成十分復(fù)雜的情況下是無法準(zhǔn)確測量網(wǎng)頁響應(yīng)時間的。除此之外,所有的服務(wù)器端被動測量方法都無法測量需要從多個服務(wù)器獲取內(nèi)容的網(wǎng)頁的響應(yīng)時間,也無法測量客戶端附近的活動,如DNS請求與應(yīng)答。(4)離線測量方法。離線測量是通過將捕獲的網(wǎng)絡(luò)數(shù)據(jù)包或數(shù)據(jù)包主要信息記錄到磁盤上,然后對這些數(shù)據(jù)包和信息進行掃描分析,以此來重構(gòu)先前的網(wǎng)頁響應(yīng)時間。比起以上幾種實時測量方法,離線測量的方法即便能夠進行更全面地測量,也由于其實時性差難以滿足現(xiàn)實要求。總之,當(dāng)前存在的網(wǎng)絡(luò)響應(yīng)時間測量方法都存在著一定的缺陷,難以完成對當(dāng)今復(fù)雜度更高的網(wǎng)頁進行準(zhǔn)確、實時、全面地測量。

發(fā)明內(nèi)容
本發(fā)明的發(fā)明目的在于提供一種測量方法及系統(tǒng),能對當(dāng)前構(gòu)成復(fù)雜的網(wǎng)頁的響應(yīng)時間進行準(zhǔn)確、實時、全面、簡單、高效率地測量。為實現(xiàn)上述目的,本發(fā)明提供一種基于網(wǎng)絡(luò)中間點的網(wǎng)頁響應(yīng)時間被動測量方法,該方法包括步驟1,數(shù)據(jù)包獲取數(shù)據(jù)包獲取模塊通過網(wǎng)卡或板卡在網(wǎng)絡(luò)中間點實時捕獲所有用戶與網(wǎng)頁交互的網(wǎng)絡(luò)數(shù)據(jù)包,并將所述網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送給數(shù)據(jù)包分用模塊;步驟2,數(shù)據(jù)包分用數(shù)據(jù)包分用模塊根據(jù)所述網(wǎng)絡(luò)數(shù)據(jù)包的鏈路層、網(wǎng)絡(luò)層和傳輸層協(xié)議對其進行分用處理;步驟3,數(shù)據(jù)包解析數(shù)據(jù)包解析模塊解析所述網(wǎng)絡(luò)數(shù)據(jù)包并提取其IP、TCP和HTTP頭部信息,根據(jù)所述IP、TCP和HTTP頭部信息標(biāo)記網(wǎng)絡(luò)數(shù)據(jù)包類型;步驟4,響應(yīng)時間測量響應(yīng)時間測量模塊對不同類型的網(wǎng)絡(luò)數(shù)據(jù)包進行相應(yīng)處理,測量所有網(wǎng)頁的響應(yīng)時間。進一步的,所述步驟2包括步驟21,將端口號為53的UDP數(shù)據(jù)包交給DNS處理模塊,測量所有DNS查詢的響應(yīng)時間,將端口號為80或8080的TCP數(shù)據(jù)包交給TCP處理模塊,維護用戶與網(wǎng)頁交互過程建立的所有TCP連接的flow信息。進一步的,所述步驟21包括步驟211,如果UDP數(shù)據(jù)包是DNS查詢包,則DNS處理模塊為該次查詢新建dns-record結(jié)構(gòu),記錄查詢開始時間信息并將其插入hash表;如果UDP數(shù)據(jù)包是DNS應(yīng)答包,則DNS處理模塊從所述hash表查找匹配的dns-record結(jié)構(gòu),記錄應(yīng)答結(jié)束時間。所述步驟21還包括步驟221,如果TCP數(shù)據(jù)包是SYN包,則TCP處理模塊創(chuàng)建一個flow結(jié)構(gòu),記錄連接建立開始時間后并將其插入流表;如果TCP數(shù)據(jù)包是其它數(shù)據(jù)包,則TCP處理模塊查找流表確定該數(shù)據(jù)包所在連接的flow結(jié)構(gòu),并更新流表的相關(guān)信息。進一步的,所述步驟4中響應(yīng)時間測量模塊查找所述網(wǎng)絡(luò)數(shù)據(jù)包所屬的http-pair,根據(jù)所述http-pair的Referer、請求文件類型和超時機制判斷記錄網(wǎng)頁請求開始時間和網(wǎng)頁響應(yīng)結(jié)束時間。為實現(xiàn)上述目的,本發(fā)明還提供一種基于網(wǎng)絡(luò)中間點的網(wǎng)頁響應(yīng)時間被動測量系統(tǒng),該系統(tǒng)包括數(shù)據(jù)包獲取模塊,用于通過網(wǎng)卡或板卡在網(wǎng)絡(luò)中間點實時捕獲所有用戶與網(wǎng)頁交互的網(wǎng)絡(luò)數(shù)據(jù)包,并將所述網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送給數(shù)據(jù)包分用模塊;
數(shù)據(jù)包分用模塊,用于根據(jù)所述網(wǎng)絡(luò)數(shù)據(jù)包的鏈路層、網(wǎng)絡(luò)層和傳輸層協(xié)議對其進行分用處理;數(shù)據(jù)包解析模塊,用于解析所述網(wǎng)絡(luò)數(shù)據(jù)包并提取其IP、TCP和HTTP頭部信息,根據(jù)所述IP、TCP和HTTP頭部信息標(biāo)記網(wǎng)絡(luò)數(shù)據(jù)包類型;響應(yīng)時間測量模塊,用于對不同類型的網(wǎng)絡(luò)數(shù)據(jù)包進行相應(yīng)處理,測量所有網(wǎng)頁的響應(yīng)時間。進一步的,所述數(shù)據(jù)包分用模塊包括分用處理模塊,將端口號為53的UDP數(shù)據(jù)包交給DNS處理模塊,測量所有DNS查詢的響應(yīng)時間,將端口號為80或8080的TCP數(shù)據(jù)包交給TCP處理模塊,維護用戶與網(wǎng)頁交互過程建立的所有TCP連接的flow信息。進一步的,所述分用處理模塊包括DNS處理模塊·,如果UDP數(shù)據(jù)包是DNS查詢包,則DNS處理模塊為該次查詢新建dns-record結(jié)構(gòu),記錄查詢開始時間信息并將其插入hash表;如果UDP數(shù)據(jù)包是DNS應(yīng)答包,則DNS處理模塊從所述hash表查找匹配的dns-record結(jié)構(gòu),記錄應(yīng)答結(jié)束時間。所述分用處理模塊還包括TCP處理模塊,如果TCP數(shù)據(jù)包是SYN包,則TCP處理模塊創(chuàng)建一個flow結(jié)構(gòu),記錄連接建立開始時間后并將其插入流表;如果TCP數(shù)據(jù)包是其它數(shù)據(jù)包,則TCP處理模塊查找流表確定該數(shù)據(jù)包所在連接的flow結(jié)構(gòu),并更新流表的相關(guān)信息。進一步的,所述響應(yīng)時間測量模塊中響應(yīng)時間測量模塊查找所述網(wǎng)絡(luò)數(shù)據(jù)包所屬的http-pair,根據(jù)所述http-pair的Referer、請求文件類型和超時機制判斷記錄網(wǎng)頁請求開始時間和網(wǎng)頁響應(yīng)結(jié)束時間。本發(fā)明的有益功效在于,(I)準(zhǔn)確性?;谔岢龅男滦偷木W(wǎng)頁首個HTTP請求的識別方法,我們不僅可以準(zhǔn)確測量簡單網(wǎng)頁的響應(yīng)時間,還可以對當(dāng)今較為復(fù)雜的網(wǎng)頁的響應(yīng)時間進行準(zhǔn)確地測量。(2)實時性。我們采用的是在線的被動測量方法,每一次網(wǎng)頁響應(yīng)結(jié)束后便可將用戶感知的網(wǎng)頁響應(yīng)時間現(xiàn)狀反饋給業(yè)務(wù)提供商,實時性較好。(3)全面性。首先我們對每一個用戶的每次網(wǎng)頁訪問都進行測量,不存在采樣導(dǎo)致的測量結(jié)果的有偏性。其次我們可以對網(wǎng)頁包含的每個對象的請求應(yīng)答過程進行測量,以便在出現(xiàn)性能問題時進行全面而深入的分析。最后我們還能夠測量DNS響應(yīng)時間。(4)簡單性。我們的測量方法無需對網(wǎng)頁、瀏覽器或服務(wù)器進行任何修改,配置簡單。(5)效率高。在進行網(wǎng)頁響應(yīng)時間的測量過程中,我們只檢查TCP/IP和HTTP的頭部信息,不分析HTTP載荷數(shù)據(jù),速度更快。只需訪問一次數(shù)據(jù)包,提取頭部信息處理后便可將其丟棄,節(jié)省了大量保存數(shù)據(jù)包所需的空間??傊景l(fā)明中提出的方法可以有效克服現(xiàn)有網(wǎng)頁響應(yīng)時間測量方法的缺陷,能夠?qū)Ξ?dāng)前構(gòu)成復(fù)雜的網(wǎng)頁的響應(yīng)時間進行準(zhǔn)確、實時、全面、簡單、高效率地測量。以下結(jié)合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。


圖1是本發(fā)明的基于網(wǎng)絡(luò)中間點的網(wǎng)頁響應(yīng)時間被動測量方法流程圖;圖2是本發(fā)明的基于網(wǎng)絡(luò)中間點的網(wǎng)頁響應(yīng)時間被動測量系統(tǒng)示意圖;圖3是本發(fā)明的一實施例的網(wǎng)頁響應(yīng)時間的測量流程圖。
具體實施例方式圖1是本發(fā)明的基于網(wǎng)絡(luò)中間點的網(wǎng)頁響應(yīng)時間被動測量方法流程圖。如圖1所示,該方法包括步驟1,數(shù)據(jù)包獲取數(shù)據(jù)包獲取模塊通過網(wǎng)卡或板卡在網(wǎng)絡(luò)中間點實時捕獲所有用戶與網(wǎng)頁交互的網(wǎng)絡(luò)數(shù)據(jù)包,并將所述網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送給數(shù)據(jù)包分用模塊;步驟2,數(shù)據(jù)包分用數(shù)據(jù)包分用模塊根據(jù)所述網(wǎng)絡(luò)數(shù)據(jù)包的鏈路層、網(wǎng)絡(luò)層和傳輸層協(xié)議對其進行分用處理;步驟3,數(shù)據(jù)包解析數(shù)據(jù)包解析模塊解析所述網(wǎng)絡(luò)數(shù)據(jù)包并提取其IP、TCP和HTTP頭部信息,根據(jù)所述IP、TCP和HTTP頭部信息標(biāo)記網(wǎng)絡(luò)數(shù)據(jù)包類型;步驟4,響應(yīng)時 間測量響應(yīng)時間測量模塊對不同類型的網(wǎng)絡(luò)數(shù)據(jù)包進行相應(yīng)處理,測量所有網(wǎng)頁的響應(yīng)時間。進一步的,所述步驟2包括步驟21,將端口號為53的UDP數(shù)據(jù)包交給DNS處理模塊,測量所有DNS查詢的響應(yīng)時間,將端口號為80或8080的TCP數(shù)據(jù)包交給TCP處理模塊,維護用戶與網(wǎng)頁交互過程建立的所有TCP連接的flow信息。進一步的,所述步驟21包括步驟211,如果UDP數(shù)據(jù)包是DNS查詢包,則DNS處理模塊為該次查詢新建dns-record結(jié)構(gòu),記錄查詢開始時間信息并將其插入hash表;如果UDP數(shù)據(jù)包是DNS應(yīng)答包,則DNS處理模塊從所述hash表查找匹配的dns-record結(jié)構(gòu),記錄應(yīng)答結(jié)束時間。所述步驟21還包括步驟221,如果TCP數(shù)據(jù)包是SYN包,則TCP處理模塊創(chuàng)建一個flow結(jié)構(gòu),記錄連接建立開始時間后并將其插入流表;如果TCP數(shù)據(jù)包是其它數(shù)據(jù)包,則TCP處理模塊查找流表確定該數(shù)據(jù)包所在連接的flow結(jié)構(gòu),并更新流表的相關(guān)信息。進一步的,所述步驟4中響應(yīng)時間測量模塊查找所述網(wǎng)絡(luò)數(shù)據(jù)包所屬的http-pair,根據(jù)所述http-pair的Referer、請求文件類型和超時機制判斷記錄網(wǎng)頁請求開始時間和網(wǎng)頁響應(yīng)結(jié)束時間。為了完成網(wǎng)頁響應(yīng)時間的測量,我們使用了幾種輔助結(jié)構(gòu)。對于每個用戶產(chǎn)生的每次網(wǎng)頁請求,我們使用pageview結(jié)構(gòu)來記錄網(wǎng)頁開始時間,并且通過跟蹤其請求應(yīng)答過程確定網(wǎng)頁響應(yīng)結(jié)束時間。類似地,我們使用http-pair結(jié)構(gòu)來跟蹤某次HTTP請求應(yīng)答過程,使用flow結(jié)構(gòu)來跟蹤某個TCP連接的建立和傳輸過程,使用dns-record結(jié)構(gòu)來跟蹤某次DNS查詢應(yīng)答過程,使用refer-record結(jié)構(gòu)來記錄http-pair和pageview的URL關(guān)聯(lián)。為了實現(xiàn)快速查找,以上所有的結(jié)構(gòu)都分別以hash形式維護在內(nèi)存中,定期進行掃描老化。其中pageview的hash表根據(jù)URL進行hash, http-pair的hash表根據(jù)四元組(源IP、目的IP、源端口、目的端口)hash, flow的hash表(簡稱為流表)同樣根據(jù)四兀組hash,dns-record的hash表根據(jù)域名hash, refer-record的hash表(簡稱為關(guān)聯(lián)記錄hash表)根據(jù)http-pair中的請求URL進行hash?;谏鲜鼋Y(jié)構(gòu),我們便可以展開網(wǎng)頁響應(yīng)時間的測量過程。前面提到的各步驟的具體說明如下(I)數(shù)據(jù)包獲取如果測量點在速度不是很快的鏈路上,該步驟可以使用Libpcap庫通過網(wǎng)卡進行抓包。如果測量點所在的鏈路速度較快,則該步驟應(yīng)該使用抓包效率更高的板卡實時捕獲網(wǎng)絡(luò)數(shù)據(jù)包。無論是采用網(wǎng)卡還是板卡,都將捕獲的數(shù)據(jù)包交給數(shù)據(jù)包分用模塊繼續(xù)處理。(2)數(shù)據(jù)包分用根據(jù)數(shù)據(jù)包的鏈路層、網(wǎng)絡(luò)層和傳輸層協(xié)議依次進行分用。為了完成網(wǎng)頁響應(yīng)時間的測量,我們只需要過濾出端口號為53 (DNS)的UDP數(shù)據(jù)包以及端口號為80和8080 (HTTP)的TCP數(shù)據(jù)包,分別交給DNS處理模塊和TCP處理模塊繼續(xù)處理。(3)DNS處理測量所有用戶產(chǎn)生的所有DNS查詢的響應(yīng)時間。如果到來的數(shù)據(jù)包是DNS查詢包,就為該次查詢新建dns-record結(jié)構(gòu),記錄查詢開始時間等信息后插入hash表。如果到來的數(shù)據(jù)包是DNS應(yīng)答包,就去hash表查找匹配的dns-record結(jié)構(gòu),記錄應(yīng)答結(jié)束時間。這樣DNS響應(yīng)時間測量結(jié)果就存儲在dns-record結(jié)構(gòu)的hash表中,在響應(yīng)時間測量模塊需要時將其傳送出去或通過hash表掃描老化。(4) TCP處理維護 網(wǎng)頁請求與響應(yīng)過程中建立的若干TCP連接的flow信息。如果到來的數(shù)據(jù)包是SYN包,則創(chuàng)建一個新的flow結(jié)構(gòu),記錄連接建立開始時間后插入流表。如果到來的數(shù)據(jù)包是其它數(shù)據(jù)包,則查找流表確定該數(shù)據(jù)包所在連接的flow結(jié)構(gòu),更新相關(guān)信息。流表中記錄了 TCP連接建立信息以及后續(xù)的數(shù)據(jù)傳輸信息,我們將數(shù)據(jù)包和其所在連接的這些flow信息都傳給數(shù)據(jù)包解析模塊進行后續(xù)處理。(5)數(shù)據(jù)包解析主要任務(wù)是解析并提取數(shù)據(jù)包的IP、TCP和HTTP頭部信息,根據(jù)提取的信息標(biāo)記數(shù)據(jù)包類型。在所有類型的數(shù)據(jù)包中,我們將HTTP請求首個數(shù)據(jù)包、后續(xù)數(shù)據(jù)包,HTTP應(yīng)答首個數(shù)據(jù)包、后續(xù)數(shù)據(jù)包的提取信息和flow信息一并交給響應(yīng)時間測量模塊繼續(xù)處理。( 6 )響應(yīng)時間測量該步驟是網(wǎng)頁響應(yīng)時間測量的核心,將測量所有用戶產(chǎn)生的所有網(wǎng)頁的響應(yīng)時間?;跀?shù)據(jù)包解析模塊提取的數(shù)據(jù)包頭部信息,數(shù)據(jù)包所在連接的flow信息以及標(biāo)記的數(shù)據(jù)包類型,該步驟對網(wǎng)頁響應(yīng)時間的測量流程的一個實施例如圖3所示,圖3是本發(fā)明的一實施例的網(wǎng)頁響應(yīng)時間的測量流程圖(a)若提取的信息來自HTTP請求首個數(shù)據(jù)包,則為該請求創(chuàng)建一個新的http-pair,初始化并記錄提取的信息,然后插入到http-pair的hash表中。如果提取的信息中有Host和Uri (在少數(shù)情況下Host不在請求首個數(shù)據(jù)包中,而出現(xiàn)在后續(xù)數(shù)據(jù)包中,這種情況下在Host出現(xiàn)的后續(xù)數(shù)據(jù)包到來時,延遲進行下述處理),使用它們與請求的Referer、時間戳等信息,結(jié)合超時機制初步判斷該HTTP請求是否為網(wǎng)頁首個HTTP請求。如果判定為是,則將該http-pair標(biāo)記為網(wǎng)頁首個HTTP請求的候選,待請求的應(yīng)答到來后根據(jù)Content-Type標(biāo)示的請求文件類型做進一步判斷;如果判定為否,則認(rèn)定該請求為網(wǎng)頁后續(xù)HTTP請求,將請求的http-pair關(guān)聯(lián)到所在的pageview (關(guān)于網(wǎng)頁首個HTTP請求的判斷問題與后續(xù)HTTP請求的關(guān)聯(lián)問題后面會有更詳細的說明)。最后根據(jù)flow信息判斷該請求是否為所在連接的首個HTTP請求,如果為是則根據(jù)Host等信息向DNS處理模塊獲取該請求所在連接建立之前的DNS查詢響應(yīng)時間。(b)若提取的信息來自HTTP請求后續(xù)數(shù)據(jù)包,則使用提取信息中的四元組從http-pair的hash表找到該數(shù)據(jù)包所屬的http-pair,并使用提取信息更新http-pair的相關(guān)信息。如果該http-pair已經(jīng)關(guān)聯(lián)到了所在的pageview,則還需要更新pageview的信
肩、O(c)若提取的信息來自HTTP應(yīng)答首個數(shù)據(jù)包,則首先使用提取信息中的四元組查找該應(yīng)答包所屬的http-pair并更新相關(guān)信息。然后根據(jù)該http-pair是否已經(jīng)標(biāo)記為網(wǎng)頁首個HTTP請求的候選做以下不同的處理如果不是候選,則該http-pair屬于網(wǎng)頁后續(xù)HTTP請求,且已經(jīng)關(guān)聯(lián)到了所在的pageview,我們只需更新pageview的相關(guān)信息,主要是將網(wǎng)頁響應(yīng)結(jié)束時間更新為該應(yīng)答的時間。如果標(biāo)記為候選,則進一步根據(jù)應(yīng)答的Content-Type標(biāo)示的請求文件類型判斷該http-pair是否為網(wǎng)頁首個HTTP請求。如果為HTML類型,則認(rèn)定該http-pair為網(wǎng)頁首個HTTP請求,為該http-pair創(chuàng)建一個新的pageview,初始化相關(guān)信息,主要是將http-pair的開始時間記錄到pageview的網(wǎng)頁請求開始時間,然后將該http-pair和pageview相互關(guān)聯(lián)。如果是其它類型,則認(rèn)定該http-pair屬于網(wǎng)頁后續(xù)HTTP請求,重新將其關(guān)聯(lián)到所在的 pageview。(d)若提取的信息來自HTTP應(yīng)答后續(xù)數(shù)據(jù)包,則同樣使用提取信息中的四元組查找該應(yīng)答包所屬的http-p air并更新相關(guān)信息。此時該http-pair應(yīng)該已經(jīng)關(guān)聯(lián)到了所在的pageview,我們需要更新pageview的信息,將網(wǎng)頁響應(yīng)結(jié)束時間更新為該應(yīng)答的時間。在網(wǎng)頁響應(yīng)結(jié)束之后,pageview的hash表中就存放了該網(wǎng)頁的響應(yīng)時間。我們定期掃描hash表,認(rèn)為30s內(nèi)沒有數(shù)據(jù)包到達更新的pageview所代表的網(wǎng)頁請求的響應(yīng)已經(jīng)結(jié)束,老化導(dǎo)出其網(wǎng)頁響應(yīng)時間,這樣便完成了整個網(wǎng)頁響應(yīng)時間的測量流程。在上述網(wǎng)頁響應(yīng)時間的測量流程中,有以下兩點需要重點說明(I)首先一個是網(wǎng)頁首個HTTP請求的判斷問題。網(wǎng)頁首個HTTP請求不僅決定了網(wǎng)頁請求的開始時間,還關(guān)系著后續(xù)HTTP請求應(yīng)答的關(guān)聯(lián)是否準(zhǔn)確完整,因此也間接影響著網(wǎng)頁響應(yīng)的結(jié)束時間??梢哉f網(wǎng)頁首個HTTP請求的識別是否準(zhǔn)確直接影響著網(wǎng)頁響應(yīng)時間的測量是否準(zhǔn)確。由于當(dāng)今的網(wǎng)頁日益復(fù)雜,以前的方法都不再適用,我們提出了一種結(jié)合Referer、超時機制以及請求文件類型等信息的識別方法。具體做法如下如果HTTP請求的Referer為空,則很有可能為用戶在瀏覽器輸入URL產(chǎn)生的網(wǎng)頁首個HTTP請求,將其標(biāo)記為網(wǎng)頁首個HTTP請求的候選。如果HTTP請求的Referer存在,則使用Referer去關(guān)聯(lián)記錄hash表查找該請求引用的請求所在的pageview的URL,進而到pageview的hash表中查找對應(yīng)的pageview。如果找到并且該HTTP請求與pageview的前一個HTTP請求的時間差小于某一閾值(此處即應(yīng)用超時機制),則認(rèn)定該請求為網(wǎng)頁后續(xù)HTTP請求,將其與該pageview關(guān)聯(lián)。否則該請求有可能為用戶點擊鏈接產(chǎn)生的網(wǎng)頁首個HTTP請求,將其標(biāo)記為網(wǎng)頁首個HTTP請求的候選。待請求的應(yīng)答到來后,對于所有標(biāo)記為候選的請求判斷其應(yīng)答的Content-Type標(biāo)示的請求文件類型是否為HTML類型,如果為是則判定該請求為網(wǎng)頁首個HTTP請求,否則判定該請求為網(wǎng)頁后續(xù)HTTP請求,并重新將該請求與所在的pageview關(guān)聯(lián)。(2)另外一個問題是網(wǎng)頁后續(xù)HTTP請求關(guān)聯(lián)到所在的網(wǎng)頁,只有將所有的網(wǎng)頁后續(xù)HTTP請求及其應(yīng)答都完整地關(guān)聯(lián)到所在的網(wǎng)頁,才能準(zhǔn)確確定網(wǎng)頁響應(yīng)的結(jié)束時間,從而保證網(wǎng)頁響應(yīng)時間測量的準(zhǔn)確性。為了保證測量的效率,我們使用請求的Referer信息來作為關(guān)聯(lián)的依據(jù),將后續(xù)HTTP請求關(guān)聯(lián)到Referer中引用的請求所在的網(wǎng)頁中。由于http-pair的hash表使用四元組進行hash,為了找到請求的Referer引用的請求,必須遍歷整個hash表進行查找,速度較慢。為了提高查找的速度,我們采用了空間換取時間的方法,額外維護了一個前面已經(jīng)提到過的關(guān)聯(lián)記錄hash表,其中每個關(guān)聯(lián)記錄保存了 HTTP請求的URL以及請求所在的網(wǎng)頁的URL等。插入關(guān)聯(lián)記錄時根據(jù)請求URL進行hash,這樣在查找時使用Referer進行hash便可以快速找到Referer引用的請求,進而根據(jù)其關(guān)聯(lián)記錄中的網(wǎng)頁URL快速找到其所在的pageview,完成后續(xù)HTTP請求的關(guān)聯(lián)。在維護關(guān)聯(lián)記錄hash表時,我們還使用了兩個技巧,可以進一步提高查找和關(guān)聯(lián)的效率。首先,我們不必將所有HTTP請求的URL和所在網(wǎng)頁的URL都添加到關(guān)聯(lián)記錄中,因為有些文件類型的HTTP請求是不可能被后續(xù)HTTP請求的Referer引用到的,比如Content-Type為image/xxx的圖片請求等。這樣我們只需維護那些可能被后續(xù)HTTP請求引用的文件類型的請求,從而大大減少所需維護的關(guān)聯(lián)記錄以及hash表的規(guī)模。經(jīng)過實驗發(fā)現(xiàn),只有Content-Type為text/xxx和application/xxx的HTTP請求才可能被后續(xù)HTTP請求引用到。其次,我們在實驗中發(fā)現(xiàn)網(wǎng)頁的首個HTTP請求會在整個網(wǎng)頁請求的過程中頻繁被后續(xù)HTTP請求引用到,這樣在使用鏈表解決hash沖突時,可以將網(wǎng)頁首個HTTP請求的關(guān)聯(lián)記錄優(yōu)先放在鏈表頭部,從而達到更快的查找速度。圖2是本發(fā)明的基于網(wǎng)`絡(luò)中間點的網(wǎng)頁響應(yīng)時間被動測量系統(tǒng)示意圖。如圖2所示,該系統(tǒng)包括數(shù)據(jù)包獲取模塊100,用于通過網(wǎng)卡或板卡在網(wǎng)絡(luò)中間點實時捕獲所有用戶與網(wǎng)頁交互的網(wǎng)絡(luò)數(shù)據(jù)包,并將所述網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送給數(shù)據(jù)包分用模塊;數(shù)據(jù)包分用模塊200,用于根據(jù)所述網(wǎng)絡(luò)數(shù)據(jù)包的鏈路層、網(wǎng)絡(luò)層和傳輸層協(xié)議對其進行分用處理;數(shù)據(jù)包解析模塊300,用于解析所述網(wǎng)絡(luò)數(shù)據(jù)包并提取其IP、TCP和HTTP頭部信息,根據(jù)所述IP、TCP和HTTP頭部信息標(biāo)記網(wǎng)絡(luò)數(shù)據(jù)包類型;響應(yīng)時間測量模塊400,用于對不同類型的網(wǎng)絡(luò)數(shù)據(jù)包進行相應(yīng)處理,測量所有網(wǎng)頁的響應(yīng)時間。進一步的,所述數(shù)據(jù)包分用模塊200包括分用處理模塊210,將端口號為53的UDP數(shù)據(jù)包交給DNS處理模塊,測量所有DNS查詢的響應(yīng)時間,將端口號為80或8080的TCP數(shù)據(jù)包交給TCP處理模塊,維護用戶與網(wǎng)頁交互過程建立的所有TCP連接的flow信息。進一步的,所述分用處理模塊210包括DNS處理模塊2110,如果UDP數(shù)據(jù)包是DNS查詢包,則DNS處理模塊為該次查詢新建dns-record結(jié)構(gòu),記錄查詢開始時間信息并將其插入hash表;如果UDP數(shù)據(jù)包是DNS應(yīng)答包,則DNS處理模塊從所述hash表查找匹配的dns-record結(jié)構(gòu),記錄應(yīng)答結(jié)束時間。所述分用處理模塊210還包括TCP處理模塊2210,如果TCP數(shù)據(jù)包是SYN包,則TCP處理模塊創(chuàng)建一個flow結(jié)構(gòu),記錄連接建立開始時間后并將其插入流表;如果TCP數(shù)據(jù)包是其它數(shù)據(jù)包,則TCP處理模塊查找流表確定該數(shù)據(jù)包所在連接的flow結(jié)構(gòu),并更新流表的相關(guān)信息。進一步的,所述響應(yīng)時間測量模塊400中響應(yīng)時間測量模塊查找所述網(wǎng)絡(luò)數(shù)據(jù)包所屬的http-pair,根據(jù)所述http-pair的Referer、請求文件類型和超時機制判斷記錄網(wǎng)頁請求開始時間和網(wǎng)頁響應(yīng)結(jié)束時間。為了完成網(wǎng)頁響應(yīng)時間的測量,我們使用了幾種輔助結(jié)構(gòu)。對于每個用戶產(chǎn)生的每次網(wǎng)頁請求,我們使用pageview結(jié)構(gòu)來記錄網(wǎng)頁開始時間,并且通過跟蹤其請求應(yīng)答過程確定網(wǎng)頁響應(yīng)結(jié)束時間。類似地,我們使用http-pair結(jié)構(gòu)來跟蹤某次HTTP請求應(yīng)答過程,使用flow結(jié)構(gòu)來跟蹤某個TCP連接的建立和傳輸過程,使用dns-record結(jié)構(gòu)來跟蹤某次DNS查詢應(yīng)答過程,使用refer-record結(jié)構(gòu)來記錄http-pair和pageview的URL關(guān)聯(lián)。為了實現(xiàn)快速查找,以上所有的結(jié)構(gòu)都分別以hash形式維護在內(nèi)存中,定期進行掃描老化。其中pageview的hash表根據(jù)URL進行hash, http-pair的hash表根據(jù)四元組(源IP、目的IP、源端口、目的端口)hash, flow的hash表(簡稱為流表)同樣根據(jù)四兀組hash,dns-record的hash表根據(jù)域名hash, refer-record的hash表(簡稱為關(guān)聯(lián)記錄hash表)根據(jù)http-pair中的請求URL進行hash?;谏鲜鼋Y(jié)構(gòu),我們便可以展開網(wǎng)頁響應(yīng)時間的測量過程。說明如下(I)數(shù)據(jù)包獲取模塊如果測量點在速度不是很快的鏈路上,該模塊可以使用Libpcap庫通過網(wǎng)卡進行抓包。如果測量點所在的鏈路速度較快,則該模塊應(yīng)該使用抓包效率更高的板卡實時捕獲網(wǎng)絡(luò)數(shù)據(jù)包。無論是采用網(wǎng)卡還是板卡,都將捕獲的數(shù)據(jù)包交給數(shù)據(jù)包分用模塊繼續(xù)處理。(2)數(shù)據(jù)包分用模塊該模塊根據(jù)數(shù)據(jù)包的鏈路層、網(wǎng)絡(luò)層和傳輸層協(xié)議依次進行分用。為了完成網(wǎng)頁響應(yīng)時間的測量,我們只需要過濾出端口號為53 (DNS)的UDP數(shù)據(jù)包以及端口號為80和8080 (HTTP)的TCP數(shù)據(jù)包,分別交給DNS處理模塊和TCP處理模塊繼續(xù)處理。(3)DNS處理模塊該模塊測量所有用戶產(chǎn)生的所有DNS查詢的響應(yīng)時間。如果到來的數(shù)據(jù)包是DNS查詢包,就為該次查詢新建dns-record結(jié)構(gòu),記錄查詢開始時間等信息后插入hash表。如果到來的數(shù)據(jù)包是DNS應(yīng)答包,就去hash表查找匹配的dns-record結(jié)構(gòu),記錄應(yīng)答結(jié)束時間。這樣DNS響應(yīng)時間測量結(jié)果就存儲在dns-record結(jié)構(gòu)的hash表中,在響應(yīng)時間測量模塊需要時將其傳送出去或通過hash表掃描老化。(4)TCP處理模塊該模塊維護網(wǎng)頁請求與響應(yīng)過程中建立的若干TCP連接的flow信息。如果到來的數(shù)據(jù)包是SYN包,則倉Il建一個新的flow結(jié)構(gòu),記錄連接建立開始時間后插入流表。如果到來的數(shù)據(jù)包是其它數(shù)據(jù)包,則查找流表確定該數(shù)據(jù)包所在連接的flow結(jié)構(gòu),更新相關(guān)信息。流表中記錄了 TCP連接建立信息以及后續(xù)的數(shù)據(jù)傳輸信息,我們將數(shù)據(jù)包和其所在連接的這些flow信息都傳給數(shù)據(jù)包解析模塊進行后續(xù)處理。(5)數(shù)據(jù)包解析模塊該模塊的主要任務(wù)是解析并提取數(shù)據(jù)包的IP、TCP和HTTP頭部信息,根據(jù)提取的信息標(biāo)記數(shù)據(jù)包類型。在所有類型的數(shù)據(jù)包中,我們將HTTP請求首個數(shù)據(jù)包、后續(xù)數(shù)據(jù)包,HTTP應(yīng)答首個數(shù)據(jù)包、后續(xù)數(shù)據(jù)包的提取信息和flow信息一并交給響應(yīng)時間測量模塊繼續(xù)處理。(6)響應(yīng)時間測量模塊該模塊是網(wǎng)頁響應(yīng)時間測量的核心模塊,將測量所有用戶產(chǎn)生的所有網(wǎng)頁的響應(yīng)時間?;跀?shù)據(jù)包解析模塊提取的數(shù)據(jù)包頭部信息,數(shù)據(jù)包所在連接的flow信息以及標(biāo)記的數(shù)據(jù)包類型,該模塊對網(wǎng)頁響應(yīng)時間的測量流程的一個實施例的一個實施例如圖3所示,圖3是本發(fā)明的一實施例的網(wǎng)頁響應(yīng)時間的測量流程圖(a)若提取的信息來自HTTP請求首個數(shù)據(jù)包,則為該請求創(chuàng)建一個新的http-pair,初始化并記錄提取的信息,然后插入到http-pair的hash表中。如果提取的信息中有Host和Uri (在少數(shù)情況下Host不在請求首個數(shù)據(jù)包中,而出現(xiàn)在后續(xù)數(shù)據(jù)包中,這種情況下在Host出現(xiàn)的后續(xù)數(shù)據(jù)包到來時,延遲進行下述處理),使用它們與請求的Referer、時間戳等信息,結(jié)合超時機制初步判斷該HTTP請求是否為網(wǎng)頁首個HTTP請求。如果判定為是,則將該http-pair標(biāo)記為網(wǎng)頁首個HTTP請求的候選,待請求的應(yīng)答到來后根據(jù)Content-Type標(biāo)示的請求文件類型做進一步判斷;如果判定為否,則認(rèn)定該請求為網(wǎng)頁后續(xù)HTTP請求,將請求的http-pair關(guān)聯(lián)到所在的pageview (關(guān)于網(wǎng)頁首個HTTP請求的判斷問題與后續(xù)HTTP請求的關(guān)聯(lián)問題后面會有更詳細的說明)。最后根據(jù)flow信息判斷該請求是否為所在連接的首個HTTP請求,如果為是則根據(jù)Host等信息向DNS處理模塊獲取該請求所在連接建立之前的DNS查詢響應(yīng)時間。(b)若提取的信息來自HTTP請求后續(xù)數(shù)據(jù)包,則使用提取信息中的四元組從http-pair的hash表找到該數(shù)據(jù)包所屬的http-pair,并使用提取信息更新http-pair的相關(guān)信息。如果該http-pair已經(jīng)關(guān)聯(lián)到了所在的pageview,則還需要更新pageview的信
肩、O(c)若提取的信息來自HTTP應(yīng)答首個數(shù)據(jù)包,則首先使用提取信息中的四元組查找該應(yīng)答包所屬的http-pair并更新相關(guān)信息。然后根據(jù)該http-pair是否已經(jīng)標(biāo)記為網(wǎng)頁首個HTTP請求的候選做以下不同的處理如果不是候選,則該http-pair屬于網(wǎng)頁后續(xù)HTTP請求,且已經(jīng)關(guān)聯(lián)到了所在的pageview,我們只需更新pageview的相關(guān)信息,主要是將網(wǎng)頁響應(yīng)結(jié)束時間更新為該應(yīng)答的時間。如果標(biāo)記為候選,則進一步根據(jù)應(yīng)答的Content-Type標(biāo)示的請求文件類型判斷該http-pair是否為網(wǎng)頁首個HTTP請求。如果為HTML類型,則認(rèn)定該http-pair為網(wǎng)頁首個HTTP請求,為該http-pair創(chuàng)建一個新的pageview,初始化相關(guān)信息,主要是將http-pair的開始時間記錄到pageview的網(wǎng)頁請求開始時間,然后將該http-pair和pageview相互關(guān)聯(lián)。如果是其它類型,則認(rèn)定該http-pair屬于網(wǎng)頁后續(xù)HTTP請求,重新將其關(guān)聯(lián)到所在的 pageview。(d)若提取的信息來自HTTP應(yīng)答后續(xù)數(shù)據(jù)包,則同樣使用提取信息中的四元組查找該應(yīng)答包所屬的http-pair并更新相關(guān)信息。此時該http-pair應(yīng)該已經(jīng)關(guān)聯(lián)到了所在的pageview,我們需要更新pageview的信息,將網(wǎng)頁響應(yīng)結(jié)束時間更新為該應(yīng)答的時間。 在網(wǎng)頁響應(yīng)結(jié)束之后,pageview的hash表中就存放了該網(wǎng)頁的響應(yīng)時間。我們定期掃描hash表,認(rèn)為30s內(nèi)沒有數(shù)據(jù)包到達更新的pageview所代表的網(wǎng)頁請求的響應(yīng)已經(jīng)結(jié)束,老化導(dǎo)出其網(wǎng)頁響應(yīng)時間,這樣便完成了整個網(wǎng)頁響應(yīng)時間的測量流程。
在上述網(wǎng)頁響應(yīng)時間的測量流程中,有以下兩點需要重點說明(I)首先一個是網(wǎng)頁首個HTTP請求的判斷問題。網(wǎng)頁首個HTTP請求不僅決定了網(wǎng)頁請求的開始時間,還關(guān)系著后續(xù)HTTP請求應(yīng)答的關(guān)聯(lián)是否準(zhǔn)確完整,因此也間接影響著網(wǎng)頁響應(yīng)的結(jié)束時間??梢哉f網(wǎng)頁首個HTTP請求的識別是否準(zhǔn)確直接影響著網(wǎng)頁響應(yīng)時間的測量是否準(zhǔn)確。由于當(dāng)今的網(wǎng)頁日益復(fù)雜,以前的方法都不再適用,我們提出了一種結(jié)合Referer、超時機制以及請求文件類型等信息的識別方法。具體做法如下如果HTTP請求的Referer為空,則很有可能為用戶在瀏覽器輸入URL產(chǎn)生的網(wǎng)頁首個HTTP請求,將其標(biāo)記為網(wǎng)頁首個HTTP請求的候選。如果HTTP請求的Referer存在,則使用Referer去關(guān)聯(lián)記錄hash表查找該請求引用的請求所在的pageview的URL,進而到pageview的hash表中查找對應(yīng)的pageview。如果找到并且該HTTP請求與pageview的前一個HTTP請求的時間差小于某一閾值(此處即應(yīng)用超時機制),則認(rèn)定該請求為網(wǎng)頁后續(xù)HTTP請求,將其與該pageview關(guān)聯(lián)。否則該請求有可能為用戶點擊鏈接產(chǎn)生的網(wǎng)頁首個HTTP請求,將其標(biāo)記為網(wǎng)頁首個HTTP請求的候選。待請求的應(yīng)答到來后,對于所有標(biāo)記為候選的請求判斷其應(yīng)答的Content-Type標(biāo)示的請求文件類型是否為HTML類型,如果為是則判定該請求為網(wǎng)頁首個HTTP請求,否則判定該請求為網(wǎng)頁后續(xù)HTTP請求,并重新將該請求與所在的pageview關(guān)聯(lián)。(2)另外一個問題是網(wǎng)頁后續(xù)HTTP請求關(guān)聯(lián)到所在的網(wǎng)頁,只有將所有的網(wǎng)頁后續(xù)HTTP請求及其應(yīng)答都完整地關(guān)聯(lián)到所在的網(wǎng)頁,才能準(zhǔn)確確定網(wǎng)頁響應(yīng)的結(jié)束時間,從而保證網(wǎng)頁響應(yīng)時間測量的準(zhǔn)確性。為了保證測量的效率,我們使用請求的Referer信息來作為關(guān)聯(lián)的依據(jù),將后續(xù)HTTP請求關(guān)聯(lián)到Referer中引用的請求所在的網(wǎng)頁中。由于http-pair的hash表使用四元組進行hash,為了找到請求的Referer引用的請求,必須遍歷整個hash表進行查找,速度較慢。為了提高查找的速度,我們采用了空間換取時間的方法,額外維護了一個前面已經(jīng)提到過的關(guān)聯(lián)記錄hash表,其中每個關(guān)聯(lián)記錄保存了 HTTP請求的URL以及請求所在的網(wǎng)頁的URL等。插入關(guān)聯(lián)記錄時根據(jù)請求URL進行hash,這樣在查找時使用Referer進行hash便可以快速找到Referer引用的請求,進而根據(jù)其關(guān)聯(lián)記錄中的網(wǎng)頁URL快速找到其所在的pageview,完成后續(xù)HTTP請求的關(guān)聯(lián)。在維護關(guān)聯(lián)記錄hash表時,我們還使用了兩個技巧,可以進一步提高查找和關(guān)聯(lián)的效率。首先,我們不必將所有HTTP請求的URL和所在網(wǎng)頁的URL都添加到關(guān)聯(lián)記錄中,因為有些文件類型的HTTP請求是不可能被后續(xù)HTTP請求的Referer引用到的,比如Content-Type為image/xxx的圖片請求等。這樣我們只需維護那些可能被后續(xù)HTTP請求引用的文件類型的請求,從而大大減少所需維護的關(guān)聯(lián)記錄以及hash表的規(guī)模。經(jīng)過實驗發(fā)現(xiàn),只有Content-Type為text/xxx和application/xxx的HTTP請求才可能被后續(xù)HTTP請求引用到。其次,我們在實驗中發(fā)現(xiàn)網(wǎng)頁的首個HTTP請求會在整個網(wǎng)頁請求的過程中頻繁被后續(xù)HTTP請求引用到,這樣在使用鏈表解決hash沖突時,可以將網(wǎng)頁首個HTTP請求的關(guān)聯(lián)記錄優(yōu)先放在鏈表頭部,從而達到更快的查找速度。當(dāng)然,本發(fā)明還可有其它多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本 發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。
權(quán)利要求
1.一種基于網(wǎng)絡(luò)中間點的網(wǎng)頁響應(yīng)時間被動測量方法,其特征在于,包括 步驟1,數(shù)據(jù)包獲取數(shù)據(jù)包獲取模塊通過網(wǎng)卡或板卡在網(wǎng)絡(luò)中間點實時捕獲所有用戶與網(wǎng)頁交互的網(wǎng)絡(luò)數(shù)據(jù)包,并將所述網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送給數(shù)據(jù)包分用模塊; 步驟2,數(shù)據(jù)包分用數(shù)據(jù)包分用模塊根據(jù)所述網(wǎng)絡(luò)數(shù)據(jù)包的鏈路層、網(wǎng)絡(luò)層和傳輸層協(xié)議對其進行分用處理; 步驟3,數(shù)據(jù)包解析數(shù)據(jù)包解析模塊解析所述網(wǎng)絡(luò)數(shù)據(jù)包并提取其IP、TCP和HTTP頭部信息,根據(jù)所述IP、TCP和HTTP頭部信息標(biāo)記網(wǎng)絡(luò)數(shù)據(jù)包類型; 步驟4,響應(yīng)時間測量響應(yīng)時間測量模塊對不同類型的網(wǎng)絡(luò)數(shù)據(jù)包進行相應(yīng)處理,測量所有網(wǎng)頁的響應(yīng)時間。
2.如權(quán)利要求1所述的網(wǎng)頁響應(yīng)時間被動測量方法,其特征在于,所述步驟2包括 步驟21,數(shù)據(jù)包分用模塊將端口號為53的UDP數(shù)據(jù)包交給DNS處理模塊測量所有DNS查詢的響應(yīng)時間,將端口號為80或8080的TCP數(shù)據(jù)包交給TCP處理模塊,維護用戶與網(wǎng)頁交互過程建立的所有TCP連接的flow信息。
3.如權(quán)利要求2所述的網(wǎng)頁響應(yīng)時間被動測量方法,其特征在于,所述步驟21包括 步驟211,如果UDP數(shù)據(jù)包是DNS查詢包,則DNS處理模塊為該次查詢新建dns_record結(jié)構(gòu),記錄查詢開始時間信息并將其插入hash表; 如果UDP數(shù)據(jù)包是DNS應(yīng)答包,則DNS處理模塊從所述hash表查找匹配的dns_record結(jié)構(gòu),記錄應(yīng)答結(jié)束時間。
4.如權(quán)利要求2所述的網(wǎng)頁響應(yīng)時間被動測量方法,其特征在于,所述步驟21包括 步驟221,如果TCP數(shù)據(jù)包是SYN包,則TCP處理模塊創(chuàng)建一個flow結(jié)構(gòu),記錄連接建立開始時間后并將其插入流表; 如果TCP數(shù)據(jù)包是其它數(shù)據(jù)包,則TCP處理模塊查找流表確定該數(shù)據(jù)包所在連接的flow結(jié)構(gòu),并更新流表的相關(guān)信息。
5.如權(quán)利要求1所述的網(wǎng)頁響應(yīng)時間被動測量方法,其特征在于,所述步驟4中 響應(yīng)時間測量模塊查找所述網(wǎng)絡(luò)數(shù)據(jù)包所屬的http-pair,根據(jù)所述http-pair的Ref erer、請求文件類型和超時機制判斷記錄網(wǎng)頁請求開始時間和網(wǎng)頁響應(yīng)結(jié)束時間。
6.一種基于網(wǎng)絡(luò)中間點的網(wǎng)頁響應(yīng)時間被動測量系統(tǒng),其特征在于,包括 數(shù)據(jù)包獲取模塊,用于通過網(wǎng)卡或板卡在網(wǎng)絡(luò)中間點實時捕獲所有用戶與網(wǎng)頁交互的網(wǎng)絡(luò)數(shù)據(jù)包,并將所述網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送給數(shù)據(jù)包分用模塊; 數(shù)據(jù)包分用模塊,用于根據(jù)所述網(wǎng)絡(luò)數(shù)據(jù)包的鏈路層、網(wǎng)絡(luò)層和傳輸層協(xié)議對其進行分用處理,獲得所述網(wǎng)絡(luò)數(shù)據(jù)包的flow信息; 數(shù)據(jù)包解析模塊,用于解析所述網(wǎng)絡(luò)數(shù)據(jù)包并提取其IP、TCP和HTTP頭部信息,根據(jù)所述IP、TCP和HTTP頭部信息標(biāo)記網(wǎng)絡(luò)數(shù)據(jù)包類型; 響應(yīng)時間測量模塊,用于對不同類型的網(wǎng)絡(luò)數(shù)據(jù)包進行相應(yīng)處理,測量所有網(wǎng)頁的響應(yīng)時間。
7.如權(quán)利要求6所述的網(wǎng)頁響應(yīng)時間被動測量系統(tǒng),其特征在于,所述數(shù)據(jù)包分用模塊包括 分用處理模塊,將端口號為53的UDP數(shù)據(jù)包交給DNS處理模塊測量所有DNS查詢的響應(yīng)時間,將端口號為80或8080的TCP數(shù)據(jù)包交給TCP處理模塊,維護用戶與網(wǎng)頁交互過程建立的所有TCP連接的flow信息。
8.如權(quán)利要求6所述的網(wǎng)頁響應(yīng)時間被動測量系統(tǒng),其特征在于,所述分用處理模塊包括 DNS處理模塊,如果UDP數(shù)據(jù)包是DNS查詢包,則DNS處理模塊為該次查詢新建dns-record結(jié)構(gòu),記錄查詢開始時間信息并將其插入hash表; 如果UDP數(shù)據(jù)包是DNS應(yīng)答包,則DNS處理模塊從所述hash表查找匹配的dns-record結(jié)構(gòu),記錄應(yīng)答結(jié)束時間。
9.如權(quán)利要求6所述的網(wǎng)頁響應(yīng)時間被動測量系統(tǒng),其特征在于,所述分用處理模塊包括 TCP處理模塊,如果TCP數(shù)據(jù)包是SYN包,則TCP處理模塊創(chuàng)建一個flow結(jié)構(gòu),記錄連接建立開始時間后并將其插入流表; 如果TCP數(shù)據(jù)包是其它數(shù)據(jù)包,則TCP處理模塊查找流表確定該數(shù)據(jù)包所在連接的flow結(jié)構(gòu),并更新流表的相關(guān)信息。
10.如權(quán)利要求6所述的網(wǎng)頁響應(yīng)時間被動測量系統(tǒng),其特征在于,所述響應(yīng)時間測量模塊中 響應(yīng)時間測量模塊查找所述網(wǎng)絡(luò)數(shù)據(jù)包所屬的http-pair,根據(jù)所述http-pair的Ref erer、請求文件類型和超時機制判斷記錄網(wǎng)頁請求開始時間和網(wǎng)頁響應(yīng)結(jié)束時間。
全文摘要
本發(fā)明提供一種基于網(wǎng)絡(luò)中間點的網(wǎng)頁響應(yīng)時間被動測量方法及系統(tǒng),該方法包括步驟1,數(shù)據(jù)包獲取數(shù)據(jù)包獲取模塊通過網(wǎng)卡或板卡在網(wǎng)絡(luò)中間點實時捕獲所有用戶與網(wǎng)頁交互的網(wǎng)絡(luò)數(shù)據(jù)包,并將所述網(wǎng)絡(luò)數(shù)據(jù)包發(fā)送給數(shù)據(jù)包分用模塊;步驟2,數(shù)據(jù)包分用數(shù)據(jù)包分用模塊根據(jù)所述網(wǎng)絡(luò)數(shù)據(jù)包的鏈路層、網(wǎng)絡(luò)層和傳輸層協(xié)議對其進行分用處理;步驟3,數(shù)據(jù)包解析數(shù)據(jù)包解析模塊解析所述網(wǎng)絡(luò)數(shù)據(jù)包并提取其IP、TCP和HTTP頭部信息,根據(jù)所述IP、TCP和HTTP頭部信息標(biāo)記網(wǎng)絡(luò)數(shù)據(jù)包類型;步驟4,響應(yīng)時間測量響應(yīng)時間測量模塊對不同類型的網(wǎng)絡(luò)數(shù)據(jù)包進行相應(yīng)處理,測量所有網(wǎng)頁的響應(yīng)時間。本發(fā)明的測量準(zhǔn)確、實時、全面、高效。
文檔編號H04L12/26GK103036746SQ201210563218
公開日2013年4月10日 申請日期2012年12月21日 優(yōu)先權(quán)日2012年12月21日
發(fā)明者徐翔, 張廣興, 謝高崗 申請人:中國科學(xué)院計算技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
琼海市| 柳林县| 开阳县| 谢通门县| 垦利县| 若尔盖县| 沧源| 皋兰县| 宾川县| 高尔夫| 师宗县| 讷河市| 满洲里市| 高雄县| 招远市| 元阳县| 怀来县| 鞍山市| 大余县| 青岛市| 邳州市| 铜山县| 镇原县| 蓬溪县| 郧西县| 威海市| 香港 | 卓尼县| 邻水| 牙克石市| 潼南县| 甘孜| 开鲁县| 焦作市| 融水| 称多县| 化州市| 宁明县| 绵竹市| 弥勒县| 全椒县|