一種調(diào)度http請求的方法和瀏覽器裝置制造方法
【專利摘要】本發(fā)明實(shí)施例提供一種調(diào)度HTTP請求的方法和瀏覽器裝置,瀏覽器中包括HTML解析單元,各個待發(fā)送請求位于隊列中;方法包括:對于每個正在訪問的Web服務(wù)器,讀取并發(fā)的TCP連接的資源狀態(tài),已發(fā)送但尚未響應(yīng)的請求的請求列表與連接分發(fā)信息;根據(jù)資源狀態(tài),請求列表與連接分發(fā)信息,來自HTML解析單元的各個待發(fā)送請求的優(yōu)先級,形成并輸出決策結(jié)果;根據(jù)決策結(jié)果,對從隊列中選定的待發(fā)送請求執(zhí)行決策結(jié)果中的調(diào)度操作。利用傳輸層的擁塞檢測與控制信息,獲取資源狀態(tài),請求列表與連接分發(fā)信息;輔助應(yīng)用層HTTP請求在單連接/多連接的瀏覽器上實(shí)現(xiàn)并發(fā)動態(tài)決策,根據(jù)決策結(jié)果,調(diào)整來自HTML解析單元的待發(fā)送請求的隊列。
【專利說明】一種調(diào)度HTTP請求的方法和瀏覽器裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)技術(shù),特別是指一種調(diào)度HTTP請求的方法和瀏覽器裝置。
【背景技術(shù)】
[0002]移動用戶訪問無線互聯(lián)網(wǎng)應(yīng)用的過程中,接近四分之三流量為傳輸控制協(xié)議(TCP)實(shí)現(xiàn),TCP是基于IP協(xié)議提供的無連接的端到端的報文傳輸服務(wù)為基礎(chǔ),通過數(shù)據(jù)分段、發(fā)送編號、接收確認(rèn)、超時重傳、亂序重組、丟棄重復(fù)包、流量控制等機(jī)制向應(yīng)用層提供面向連接的、可靠的字節(jié)流服務(wù)。TCP對所傳輸?shù)臄?shù)據(jù)都做了序號標(biāo)記,序號是按照字節(jié)數(shù)來增長的,TCP的接收方在接到數(shù)據(jù)后發(fā)出一個確認(rèn)(ACK)給對端,ACK里面包含一個序列號,這個序列號η表示序號在η之前的數(shù)據(jù)已經(jīng)全部收到了,現(xiàn)在期待序號為η的數(shù)據(jù)到來。由于網(wǎng)絡(luò)中路由器處理能力限制、鏈路錯誤等原因都會導(dǎo)致數(shù)據(jù)包的丟棄。TCP對發(fā)出去的數(shù)據(jù)包都保留有計時器,如果計時器到還沒有收到確認(rèn)時,會進(jìn)行重傳。TCP使用確認(rèn)和超時重傳機(jī)制保障了數(shù)據(jù)的可靠性傳輸。結(jié)合接收端本地對于亂序包的重組和重復(fù)包的丟棄,確保了遞交給應(yīng)用層的是一個可靠的數(shù)據(jù)流。由于數(shù)據(jù)的發(fā)送方和接收方并不一定有相同的數(shù)據(jù)處理能力,為了避免數(shù)據(jù)發(fā)送過快而超過對方的接收能力,TCP采用了流量控制機(jī)制,接收方在TCP的包頭里通告發(fā)送方自己的接收窗口。
[0003]當(dāng)網(wǎng)絡(luò)中存在過多的報文時,網(wǎng)絡(luò)的性能會相應(yīng)下降而出現(xiàn)擁塞。如圖1所示,當(dāng)負(fù)載較小時,吞吐量的增長與負(fù)載相比基本呈線性關(guān)系,如圖1所示的響應(yīng)時間(縱坐標(biāo))會緩慢增長,但是當(dāng)負(fù)載超過拐點(diǎn)(Knee)后,吞吐量增長十分緩慢,但是延遲卻增長較快,當(dāng)負(fù)載超過網(wǎng)絡(luò)的最大負(fù)載點(diǎn)(Cliff)之后,吞吐量就急劇下降,響應(yīng)時間急劇上升,網(wǎng)絡(luò)的整體性能就大打折扣。而負(fù)載在Knee點(diǎn)附近時網(wǎng)絡(luò)的使用效率是最高的,此時吞吐量高,響應(yīng)時間也比較快。對于多個并發(fā)的TCP連接而言,網(wǎng)絡(luò)資源有限時會相互爭搶可用帶寬,出現(xiàn)網(wǎng)絡(luò)擁塞后造成可用帶寬成比例降低。因此對于針對應(yīng)用層同一會話而言,是否建立多個并發(fā)TCP連接,如何在多個并發(fā)TCP連接之間調(diào)度請求,均可通過參照連接層擁塞控制狀態(tài)來進(jìn)行優(yōu)化協(xié)調(diào)。
[0004]現(xiàn)有技術(shù)存在如下問題:在傳輸控制協(xié)議的擁塞控制機(jī)制中,HTTP協(xié)議不考慮實(shí)際可用的帶寬而盲目執(zhí)行并發(fā)請求/響應(yīng)行為,這會帶來不必要的抖動現(xiàn)象,甚至造成用戶體驗下降的負(fù)面效應(yīng)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明要解決的技術(shù)問題是提供一種調(diào)度HTTP請求的方法和瀏覽器裝置,用于解決在傳輸層協(xié)議TCP的擁塞控制機(jī)制中,HTTP協(xié)議不考慮實(shí)際可用的帶寬而盲目執(zhí)行并發(fā)請求/響應(yīng)行為所帶來的不必要的抖動現(xiàn)象。
[0006]為解決上述技術(shù)問題,本發(fā)明的實(shí)施例提供一種調(diào)度HTTP請求的方法,應(yīng)用于瀏覽器,瀏覽器中包括HTML解析單元,各個待發(fā)送請求位于隊列中;方法包括:步驟一,對于每個正在訪問的Web服務(wù)器,讀取并發(fā)的TCP連接的資源狀態(tài),已發(fā)送但尚未響應(yīng)的請求的請求列表與連接分發(fā)信息;步驟二,根據(jù)所述資源狀態(tài),請求列表與連接分發(fā)信息,來自HTML解析單元的各個待發(fā)送請求的優(yōu)先級,形成并輸出決策結(jié)果;步驟三,根據(jù)所述決策結(jié)果,對從所述隊列中選定的所述待發(fā)送請求執(zhí)行所述決策結(jié)果中的調(diào)度操作。
[0007]所述的方法中,步驟二具體包括:當(dāng)所述資源狀態(tài)表明當(dāng)前沒有已建立的TCP連接時,形成的決策結(jié)果包括:為待發(fā)送請求新建立一個TCP連接。
[0008]所述的方法中,步驟二具體包括:當(dāng)所述資源狀態(tài)表明當(dāng)前沒有可用的已建立的TCP連接,且請求列表與連接分發(fā)信息表明并發(fā)的TCP連接的數(shù)目未到配置上限時,形成的決策結(jié)果包括:為待發(fā)送請求新建立一個TCP連接。
[0009]所述的方法中,步驟二具體包括:當(dāng)所述待發(fā)送請求的優(yōu)先級為預(yù)先定義的高優(yōu)先級,形成的決策結(jié)果包括:關(guān)閉一個已建立的TCP連接,為待發(fā)送請求新建立一個TCP連接。
[0010]所述的方法中,步驟二具體包括:當(dāng)所述待發(fā)送請求的優(yōu)先級為預(yù)先定義的低優(yōu)先級,形成的決策結(jié)果包括:跳過所述待發(fā)送請求,并轉(zhuǎn)入所述隊列中的下一個待發(fā)送請求。
[0011]所述的方法中,步驟二具體包括:當(dāng)所述請求列表與連接分發(fā)信息表明一個已建立的TCP連接的狀態(tài)更新為可用時,形成的決策結(jié)果包括:利用所述TCP連接發(fā)送所述隊列中位于隊頭的請求。
[0012]所述的方法中,步驟二具體包括:當(dāng)所述資源狀態(tài)表明存在一條可用的TCP連接,形成的決策結(jié)果包括:將待發(fā)送請求調(diào)度在可用的TCP連接上發(fā)送;當(dāng)所述資源狀態(tài)表明存在多條可用的TCP連接,形成的決策結(jié)果包括:根據(jù)各個可用的TCP連接的擁塞狀態(tài)選擇其中一個發(fā)送所述待發(fā)送請求。
[0013]所述的方法中,所述當(dāng)前沒有可用的已建立TCP連接中,判決一個TCP連接可用的依據(jù)包括:所述TCP連接未被Web服務(wù)器報告零窗口錯誤;且該TCP連接的Web服務(wù)器的擁塞狀態(tài)為慢啟動或擁塞避免;且該TCP連接上所述已發(fā)送但尚未響應(yīng)的請求的個數(shù)未達(dá)到流水配置上限;且該TCP連接上待發(fā)送請求的流水封包未達(dá)到TCP設(shè)置的MTU上限。
[0014]所述的方法中,關(guān)閉一個已建立的TCP連接的依據(jù)包括:所述TCP連接上所有所述已發(fā)送但尚未響應(yīng)的請求的優(yōu)先級均低于當(dāng)前的所述待發(fā)送請求;所述TCP連接上其他的待發(fā)送請求的優(yōu)先級低于當(dāng)前的所述待發(fā)送請求。
[0015]一種瀏覽器裝置,包括HTML解析單元,還包括:狀態(tài)監(jiān)測單元,用于對于每個正在訪問的Web服務(wù)器,讀取并發(fā)的TCP連接的資源狀態(tài),已發(fā)送但尚未響應(yīng)的請求的請求列表與連接分發(fā)信息;綜合決策單元,用于根據(jù)所述資源狀態(tài),請求列表與連接分發(fā)信息,來自HTML解析單元的各個待發(fā)送請求的優(yōu)先級,形成并輸出決策結(jié)果;請求分派單元,用于根據(jù)所述決策結(jié)果,對所述待發(fā)送請求所在的隊列中各個所述待發(fā)送請求執(zhí)行對應(yīng)的調(diào)度操作。
[0016]所述的裝置中,綜合決策單元包括:第一決策模塊,用于當(dāng)前沒有已建立的TCP連接時,為待發(fā)送請求新建立一個TCP連接;第二決策模塊,用于當(dāng)前沒有可用的已建立TCP連接時,且并發(fā)TCP連接的數(shù)目未到配置上限,為待發(fā)送請求新建立一個TCP連接;第三決策模塊,用于待調(diào)度的待發(fā)送請求的優(yōu)先級為預(yù)先定義的高優(yōu)先級時,關(guān)閉一個已建立的TCP連接,為待發(fā)送請求新建立一個TCP連接;第四決策模塊,用于待調(diào)度的待發(fā)送請求的優(yōu)先級為預(yù)先定義的低優(yōu)先級時,跳過待發(fā)送請求,并調(diào)度隊列中的下一個待發(fā)送請求;第五決策模塊,用于等待一個已建立TCP連接狀態(tài)更新為可用后,利用所述TCP連接發(fā)送所述隊列中位于隊頭的請求;第六決策模塊,用于當(dāng)所述資源狀態(tài)表明存在一條可用的TCP連接時,將待發(fā)送請求調(diào)度在可用的TCP連接上發(fā)送;第七決策模塊,用于當(dāng)資源狀態(tài)表明存在多條可用的TCP連接時,根據(jù)各個可用的TCP連接的擁塞狀態(tài)選擇其中一個發(fā)送所述待發(fā)送請求。
[0017]所述的裝置中,綜合決策單元包括:TCP連接判決模塊,與第二決策模塊連接,用于根據(jù)如下依據(jù)判決一個TCP連接可用:所述TCP連接未被Web服務(wù)器報告零窗口錯誤;且該TCP連接的擁塞狀態(tài)為慢啟動或擁塞避免;且該TCP連接上所述已發(fā)送但尚未響應(yīng)的請求的個數(shù)未達(dá)到流水配置上限;且該TCP連接上待發(fā)送請求的流水封包未達(dá)到TCP設(shè)置MTU上限。
[0018]所述的裝置中,綜合決策單元包括:TCP連接關(guān)閉模塊,與第三決策模塊連接,用于根據(jù)如下依據(jù)判決關(guān)閉一個已建立的TCP連接:所述TCP連接上所有所述已發(fā)送但尚未響應(yīng)的請求的優(yōu)先級均低于當(dāng)前的所述待發(fā)送請求;所述TCP連接上其他的待發(fā)送請求的優(yōu)先級低于當(dāng)前的所述待發(fā)送請求。
[0019]本發(fā)明的上述技術(shù)方案的有益效果如下:利用傳輸層的擁塞檢測與控制信息,獲取資源狀態(tài),請求列表與連接分發(fā)信息;輔助應(yīng)用層HTTP請求在單連接/多連接的瀏覽器上實(shí)現(xiàn)并發(fā)動態(tài)決策,根據(jù)決策結(jié)果,調(diào)整來自HTML解析單元的待發(fā)送請求的隊列,由于考慮了優(yōu)先級,因而能根據(jù)資源請求優(yōu)先級動態(tài)調(diào)整后續(xù)請求的提交次序,實(shí)現(xiàn)關(guān)鍵內(nèi)容的優(yōu)先請求和響應(yīng);避免了應(yīng)用層的并發(fā)請求所導(dǎo)致的網(wǎng)絡(luò)擁塞。
【專利附圖】
【附圖說明】
[0020]圖1表不網(wǎng)絡(luò)中的負(fù)載與響應(yīng)時間之間的關(guān)系不意圖;
[0021]圖2表示瀏覽器與Web服務(wù)器之間的工作原理示意圖;
[0022]圖3表示一種調(diào)度HTTP請求的方法流程示意圖;
[0023]圖4表示一種瀏覽器裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0024]為使本發(fā)明要解決的技術(shù)問題、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例進(jìn)行詳細(xì)描述。
[0025]如圖2所示,用戶通過瀏覽器的人機(jī)交互單元訪問其指定的網(wǎng)頁地址URL,人機(jī)交互單元通過數(shù)據(jù)通信單元405構(gòu)建對應(yīng)的HTTP請求消息,數(shù)據(jù)通信單元405調(diào)用底層的TCP協(xié)議棧建傳輸連接,發(fā)送HTTP請求以及接收響應(yīng)數(shù)據(jù)。
[0026]來自服務(wù)器的第一個響應(yīng)數(shù)據(jù)被數(shù)據(jù)通信單元405寫入臨時數(shù)據(jù)存儲區(qū),響應(yīng)數(shù)據(jù)包含了 HTML語言編寫的頁面信息;HTML語言解釋單元404通過解析第一個響應(yīng)數(shù)據(jù),了解到網(wǎng)頁的組成對象的信息:對應(yīng)URI和所在服務(wù)器域名。HTML語言解釋單元404隨即向數(shù)據(jù)通信單元405發(fā)送針對頁面組成對象的請求發(fā)送控制指令,數(shù)據(jù)通信單元405為每個頁面對象生成對應(yīng)的HTTP請求,并實(shí)施后續(xù)數(shù)據(jù)發(fā)送和接收工作,接收到的對象將通過HTML語言解釋單元404提交給Web頁面顯示單元,Web頁面顯示單元最終交給人機(jī)交互單元并呈現(xiàn)在用戶打開的網(wǎng)頁中。
[0027]本發(fā)明中結(jié)合傳輸層的擁塞檢測狀態(tài),HTTP協(xié)議客戶端在與同一服務(wù)器之間的多條并發(fā)TCP連接之間,考察當(dāng)前網(wǎng)絡(luò)狀態(tài)、TCP連接狀態(tài)、請求優(yōu)先級等信息,進(jìn)行動態(tài)HTTP請求綜合調(diào)度。
[0028]本發(fā)明實(shí)施例提供一種調(diào)度HTTP請求的方法,如圖3所示,應(yīng)用于瀏覽器,所述瀏覽器中包括HTML解析單元404 ;
[0029]方法包括:
[0030]步驟301 (步驟一),對于每個正在訪問的Web服務(wù)器,讀取并發(fā)的TCP連接的資源狀態(tài),已發(fā)送但尚未響應(yīng)的請求的請求列表與連接分發(fā)信息;
[0031]步驟302(步驟二),根據(jù)所述資源狀態(tài),請求列表與連接分發(fā)信息,來自HTML解析單元404的各個待發(fā)送請求的優(yōu)先級,形成并輸出決策結(jié)果;
[0032]步驟303(步驟三),根據(jù)所述決策結(jié)果,對從所述隊列中選定的所述待發(fā)送請求執(zhí)行所述決策結(jié)果中的調(diào)度操作。
[0033]應(yīng)用所提供的技術(shù)方案,利用傳輸層的擁塞檢測與控制信息,獲取資源狀態(tài),請求列表與連接分發(fā)信息;輔助應(yīng)用層HTTP請求在單連接/多連接的瀏覽器上實(shí)現(xiàn)并發(fā)動態(tài)決策,根據(jù)決策結(jié)果,調(diào)整來自HTML解析單元404的待發(fā)送請求的隊列,由于考慮了優(yōu)先級,因而能根據(jù)資源請求優(yōu)先級動態(tài)調(diào)整后續(xù)請求的提交次序,實(shí)現(xiàn)關(guān)鍵內(nèi)容的優(yōu)先請求和響應(yīng);避免了應(yīng)用層的并發(fā)請求所導(dǎo)致的網(wǎng)絡(luò)擁塞。
[0034]瀏覽器中,HTML解析單元404與數(shù)據(jù)通信單元405之間通過連接關(guān)系傳輸各種數(shù)據(jù)。
[0035]在一個優(yōu)選實(shí)施例中,步驟二具體包括:
[0036]當(dāng)所述資源狀態(tài)表明當(dāng)前沒有已建立的TCP連接時,形成的決策結(jié)果包括:為待發(fā)送請求新建立一個TCP連接。
[0037]在一個優(yōu)選實(shí)施例中,步驟二具體包括:
[0038]當(dāng)所述資源狀態(tài)表明當(dāng)前沒有可用的已建立TCP連接,且所述請求列表與連接分發(fā)信息表明并發(fā)TCP連接的數(shù)目未到配置上限時,形成的決策結(jié)果包括:為待發(fā)送請求新建立一個TCP連接。
[0039]資源狀態(tài)表明當(dāng)前有已建立的TCP連接,但是所有的已建立的TCP連接中,沒有TCP連接可以被待發(fā)送請求所使用。
[0040]在一個優(yōu)選實(shí)施例中,步驟二具體包括:
[0041]當(dāng)所述待發(fā)送請求的優(yōu)先級為預(yù)先定義的高優(yōu)先級,形成的決策結(jié)果包括:關(guān)閉一個已建立的TCP連接,為待發(fā)送請求新建立一個TCP連接。
[0042]在一個優(yōu)選實(shí)施例中,步驟二具體包括:
[0043]當(dāng)所述待發(fā)送請求的優(yōu)先級為預(yù)先定義的低優(yōu)先級,形成的決策結(jié)果包括:跳過所述待發(fā)送請求,并轉(zhuǎn)入所述隊列中的下一個待發(fā)送請求。
[0044]高優(yōu)先級和低優(yōu)先級可以在實(shí)現(xiàn)技術(shù)方案的過程人為規(guī)定,例如涉及關(guān)鍵內(nèi)容的待發(fā)送請求設(shè)定為高優(yōu)先級。具體地,待發(fā)送請求的優(yōu)先級為高優(yōu)先級,表明這個待發(fā)送請求的優(yōu)先級至少高于并發(fā)TCP連接中的至少一個TCP連接的優(yōu)先級;待發(fā)送請求的優(yōu)先級為低優(yōu)先級,可以認(rèn)為這個待發(fā)送請求的優(yōu)先級為低優(yōu)先級低于并發(fā)TCP連接中的優(yōu)先級最低的待發(fā)送請求的優(yōu)先級。
[0045]在一個優(yōu)選實(shí)施例中,步驟二具體包括:當(dāng)所述請求列表與連接分發(fā)信息表明一個已建立的TCP連接的狀態(tài)更新為可用時,形成的決策結(jié)果包括:利用所述TCP連接發(fā)送所述隊列中位于隊頭的請求。
[0046]在一個優(yōu)選實(shí)施例中,步驟二具體包括:
[0047]當(dāng)所述資源狀態(tài)表明存在一條可用的TCP連接,形成的決策結(jié)果包括:將待發(fā)送請求調(diào)度在可用的TCP連接上發(fā)送;
[0048]當(dāng)所述資源狀態(tài)表明存在多條可用的TCP連接,形成的決策結(jié)果包括:根據(jù)各個可用的TCP連接的擁塞狀態(tài)選擇其中一個發(fā)送所述待發(fā)送請求。
[0049]為幫助本領(lǐng)域技術(shù)人員進(jìn)一步理解本發(fā)明的技術(shù)方案,可以將決策結(jié)果中的具體的調(diào)度操作與形成該調(diào)度操作的依據(jù)-資源狀態(tài),請求列表與連接分發(fā)信息,來自HTML解析單元404的各個待發(fā)送請求的優(yōu)先級進(jìn)行分別描述,即,首先將資源狀態(tài),請求列表與連接分發(fā)信息歸類,根據(jù)歸類并根據(jù)各個待發(fā)送請求的優(yōu)先級尋找到對應(yīng)的決策結(jié)果:
[0050]決策結(jié)果A,為待發(fā)送請求新建立一個TCP連接;
[0051]決策結(jié)果B,將待發(fā)送請求分派在當(dāng)前已建立的一個TCP連接上;由所述TCP連接立即發(fā)送給服務(wù)器,或者,等待預(yù)定條件成立時再發(fā)送給服務(wù)器;
[0052]決策結(jié)果C,等待預(yù)定長度的時間后再次調(diào)度待發(fā)送請求;
[0053]決策結(jié)果D,跳過待發(fā)送請求,并調(diào)度隊列中的下一個待發(fā)送請求。
[0054]在一個優(yōu)選實(shí)施例中,根據(jù)資源狀態(tài),請求列表與連接分發(fā)信息,來自HTML解析單元404的各個待發(fā)送請求的優(yōu)先級,采用并輸出決策結(jié)果,具體包括:
[0055]當(dāng)前沒有已建立的TCP連接,采用決策結(jié)果A ;
[0056]當(dāng)前沒有可用的已建立TCP連接,且并發(fā)TCP連接數(shù)未到配置上限,采用決策結(jié)果A ;
[0057]待調(diào)度的待發(fā)送請求的優(yōu)先級較高,關(guān)閉一個已建立的TCP連接,并采用決策結(jié)果A ;
[0058]待調(diào)度的待發(fā)送請求的優(yōu)先級較低,采用決策結(jié)果D ;
[0059]等待一個已建立TCP連接狀態(tài)更新為可用后,采用決策結(jié)果C。
[0060]其中,根據(jù)各個可用的TCP連接的擁塞狀態(tài)選擇其中一個發(fā)送請求時,應(yīng)當(dāng)選擇發(fā)送窗口最大且重傳率最小的可用的TCP連接。
[0061]在一個優(yōu)選實(shí)施例中,判決一個TCP連接可用的依據(jù)包括:
[0062]所述TCP連接未被Web服務(wù)器報告零窗口(zerowindow)錯誤;且
[0063]該TCP連接的擁塞狀態(tài)為慢啟動或擁塞避免;且
[0064]該TCP連接上所述已發(fā)送但尚未響應(yīng)的請求的個數(shù)未達(dá)到流水配置上限;且
[0065]該TCP連接上待發(fā)送請求的流水封包未達(dá)到TCP設(shè)置MTU上限。
[0066]在一個優(yōu)選實(shí)施例中,關(guān)閉一個已建立的TCP連接的依據(jù)包括:
[0067]所述TCP連接上所有所述已發(fā)送但尚未響應(yīng)的請求的優(yōu)先級均低于當(dāng)前的所述待發(fā)送請求;
[0068]其他的待發(fā)送請求的優(yōu)先級低于當(dāng)前的所述待發(fā)送請求。
[0069]在一個優(yōu)選實(shí)施例中,調(diào)度瀏覽器的數(shù)據(jù)通信單元與Web服務(wù)器之間執(zhí)行連接建立操作,并對從隊列中選定的待發(fā)送請求執(zhí)行請求發(fā)送操作。
[0070]在一個應(yīng)用場景中,應(yīng)用上述實(shí)施例提供的技術(shù),修改HTTP協(xié)議客戶端,在瀏覽器的HTML語言解釋單元404與數(shù)據(jù)通信單元405之間的控制信息交互接口,增加狀態(tài)監(jiān)測單元、綜合決策單元和請求分派單元,實(shí)現(xiàn)在資源受限場景下并發(fā)動態(tài)調(diào)度待發(fā)送請求的策略,其中,
[0071]狀態(tài)監(jiān)測單元,針對每個正在訪問的Web服務(wù)器站點(diǎn)(host),讀取當(dāng)前并發(fā)TCP連接狀態(tài)、已發(fā)送但尚未響應(yīng)請求信息;提交給綜合決策單元用于執(zhí)行后續(xù)的調(diào)度。
[0072]綜合決策單元,參考當(dāng)前已建立并發(fā)TCP連接上的資源狀態(tài)和請求列表與連接分發(fā)信息,綜合當(dāng)前訪問會話的待發(fā)送請求的優(yōu)先級,決策:
[0073]決策結(jié)果A:為該待發(fā)送請求新建立一個TCP連接;或者
[0074]決策結(jié)果B:將該待發(fā)送請求分派在當(dāng)前已建立的某個TCP連接上,或立即發(fā)送給服務(wù)器或等待某個條件成立再發(fā)送給服務(wù)器;或者
[0075]決策結(jié)果C:暫不調(diào)度該待發(fā)送請求,等待一段時間;或者
[0076]決策結(jié)果D:跳過該請求調(diào)度下一個待發(fā)送請求。
[0077]請求分派單元,接收來自瀏覽器原有的HTML解析單元的待發(fā)送對象請求,根據(jù)綜合決策單元輸出調(diào)整當(dāng)前待發(fā)送請求隊列,并調(diào)度瀏覽器原有的數(shù)據(jù)通信單元執(zhí)行相應(yīng)的連接建立和請求發(fā)送操作。
[0078]其次,修改TCP協(xié)議棧API,為狀態(tài)監(jiān)測單元提供相應(yīng)的TCP連接狀態(tài)查詢數(shù)據(jù)接口,例如,當(dāng)前連接的擁塞控制狀態(tài)、當(dāng)前發(fā)送窗口大小、消息往返時延RTT等。
[0079]本發(fā)明實(shí)施例提供一種瀏覽器裝置,如圖4所示,包括HTML解析單元404和數(shù)據(jù)通信單元405,還包括:
[0080]狀態(tài)監(jiān)測單元401,用于對于每個正在訪問的Web服務(wù)器,讀取并發(fā)的TCP連接的資源狀態(tài),已發(fā)送但尚未響應(yīng)的請求的請求列表與連接分發(fā)信息;
[0081]綜合決策單元402,用于根據(jù)所述資源狀態(tài),請求列表與連接分發(fā)信息,來自HTML解析單元的各個待發(fā)送請求的優(yōu)先級,形成并輸出決策結(jié)果;所述待發(fā)送請求與所述已發(fā)送但尚未響應(yīng)的請求不同;
[0082]請求分派單元403,用于根據(jù)所述決策結(jié)果,對所述待發(fā)送請求所在的隊列中各個所述待發(fā)送請求執(zhí)行對應(yīng)的調(diào)度操作。
[0083]在一個優(yōu)選實(shí)施例中,綜合決策單元402包括:
[0084]第一決策模塊,用于當(dāng)前沒有已建立的TCP連接,為待發(fā)送請求新建立一個TCP連接;
[0085]第二決策模塊,用于當(dāng)前沒有可用的已建立TCP連接時,且并發(fā)TCP連接的數(shù)目未到配置上限,為待發(fā)送請求新建立一個TCP連接;
[0086]第三決策模塊,用于待調(diào)度的待發(fā)送請求的優(yōu)先級為預(yù)先定義的高優(yōu)先級時,關(guān)閉一個已建立的TCP連接,為待發(fā)送請求新建立一個TCP連接;
[0087]第四決策模塊,用于待調(diào)度的待發(fā)送請求的優(yōu)先級為預(yù)先定義的低優(yōu)先級時,跳過待發(fā)送請求,并調(diào)度隊列中的下一個待發(fā)送請求;
[0088]第五決策模塊,用于等待一個已建立TCP連接狀態(tài)更新為可用后,利用所述TCP連接發(fā)送所述隊列中位于隊頭的請求;[0089]第六決策模塊,用于當(dāng)所述資源狀態(tài)表明存在一條可用的TCP連接時,將待發(fā)送請求調(diào)度在可用的TCP連接上發(fā)送;
[0090]第七決策模塊,用于當(dāng)所述資源狀態(tài)表明存在多條可用的TCP連接時,根據(jù)各個可用的TCP連接的擁塞狀態(tài)選擇其中一個發(fā)送所述待發(fā)送請求。
[0091 ] 在一個優(yōu)選實(shí)施例中,綜合決策單元402包括:
[0092]TCP連接判決模塊,用于根據(jù)如下依據(jù)判決一個TCP連接可用:
[0093]所述TCP連接未被Web服務(wù)器報告零窗口錯誤;且
[0094]該TCP連接的擁塞狀態(tài)為慢啟動或擁塞避免;且
[0095]該TCP連接上所述已發(fā)送但尚未響應(yīng)的請求的個數(shù)未達(dá)到流水配置上限;且
[0096]該TCP連接上待發(fā)送請求的流水封包未達(dá)到TCP設(shè)置MTU上限。
[0097]在一個優(yōu)選實(shí)施例中,綜合決策單元402包括:
[0098]TCP連接關(guān)閉模塊,用于根據(jù)如下依據(jù)判決關(guān)閉一個已建立的TCP連接:
[0099]所述TCP連接上所有所述已發(fā)送但尚未響應(yīng)的請求的優(yōu)先級均低于當(dāng)前的所述待發(fā)送請求;
[0100]所述TCP連接上其他的待發(fā)送請求的優(yōu)先級低于當(dāng)前的所述待發(fā)送請求。
[0101]采用本方案之后的優(yōu)勢是:利用傳輸層擁塞檢測與控制信息,獲取資源狀態(tài),請求列表與連接分發(fā)信息;輔助應(yīng)用層HTTP請求在單連接/多連接的瀏覽器上實(shí)現(xiàn)并發(fā)動態(tài)決策,根據(jù)決策結(jié)果,調(diào)整來自HTML解析單元的待發(fā)送請求的隊列,避免盲目的應(yīng)用層高并發(fā)觸發(fā)資源受限環(huán)境下的網(wǎng)絡(luò)擁塞;由于考慮了優(yōu)先級,因而能根據(jù)資源請求優(yōu)先級動態(tài)調(diào)整后續(xù)請求的提交次序,實(shí)現(xiàn)關(guān)鍵內(nèi)容的優(yōu)先請求和響應(yīng)。實(shí)現(xiàn)請求高并發(fā)的同時盡量避免網(wǎng)絡(luò)擁塞,提升了資源受限場景下用戶瀏覽網(wǎng)頁的體驗。
[0102]以上所述是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對于本【技術(shù)領(lǐng)域】的普通技術(shù)人員來說,在不脫離本發(fā)明所述原理的前提下,還可以作出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1.一種調(diào)度HTTP請求的方法,應(yīng)用于瀏覽器,其特征在于,瀏覽器中包括HTML解析單元,各個待發(fā)送請求位于隊列中; 方法包括: 步驟一,對于每個正在訪問的Web服務(wù)器,讀取并發(fā)的TCP連接的資源狀態(tài),已發(fā)送但尚未響應(yīng)的請求的請求列表與連接分發(fā)信息; 步驟二,根據(jù)所述資源狀態(tài),請求列表與連接分發(fā)信息,來自HTML解析單元的各個待發(fā)送請求的優(yōu)先級,形成并輸出決策結(jié)果; 步驟三,根據(jù)所述決策結(jié)果,對從所述隊列中選定的所述待發(fā)送請求執(zhí)行所述決策結(jié)果中的調(diào)度操作。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟二具體包括: 當(dāng)所述資源狀態(tài)表明當(dāng)前沒有已建立的TCP連接時,形成的決策結(jié)果包括:為待發(fā)送請求新建立一個TCP連接。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟二具體包括: 當(dāng)所述資源狀態(tài)表明當(dāng)前沒有可用的已建立的TCP連接,且所述請求列表與連接分發(fā)信息表明并發(fā)的TCP連接的數(shù)目未到配置上限時,形成的決策結(jié)果包括:為待發(fā)送請求新建立一個TCP連接。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟二具體包括: 當(dāng)所述待發(fā)送請求的優(yōu)先級為預(yù)先定義的高優(yōu)先級,形成的決策結(jié)果包括:關(guān)閉一個已建立的TCP連接,為待發(fā)送請求新建立一個TCP連接。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟二具體包括: 當(dāng)所述待發(fā)送請求的優(yōu)先級為預(yù)先定義的低優(yōu)先級,形成的決策結(jié)果包括:跳過所述待發(fā)送請求,并轉(zhuǎn)入所述隊列中的下一個待發(fā)送請求。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟二具體包括: 當(dāng)所述請求列表與連接分發(fā)信息表明一個已建立的TCP連接的狀態(tài)更新為可用時,形成的決策結(jié)果包括:利用所述TCP連接發(fā)送所述隊列中位于隊頭的請求。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟二具體包括: 當(dāng)所述資源狀態(tài)表明存在一條可用的TCP連接,形成的決策結(jié)果包括:將待發(fā)送請求調(diào)度在可用的TCP連接上發(fā)送; 當(dāng)所述資源狀態(tài)表明存在多條可用的TCP連接,形成的決策結(jié)果包括:根據(jù)各個可用的TCP連接的擁塞狀態(tài)選擇其中一個發(fā)送所述待發(fā)送請求。
8.根據(jù)權(quán)利要求3、6或7所述的方法,其特征在于,所述當(dāng)前沒有可用的已建立TCP連接中,判決一個TCP連接可用的依據(jù)包括: 所述TCP連接未被Web服務(wù)器報告零窗口錯誤;且 該TCP連接的Web服務(wù)器的擁塞狀態(tài)為慢啟動或擁塞避免;且 該TCP連接上所述已發(fā)送但尚未響應(yīng)的請求的個數(shù)未達(dá)到流水配置上限;且 該TCP連接上待發(fā)送請求的流水封包未達(dá)到TCP設(shè)置的MTU上限。
9.根據(jù)權(quán)利要求4所述的方法,其特征在于,關(guān)閉一個已建立的TCP連接的依據(jù)包括: 所述TCP連接上所有所述已發(fā)送但尚未響應(yīng)的請求的優(yōu)先級均低于當(dāng)前的所述待發(fā)送請求;所述TCP連接上其他的待發(fā)送請求的優(yōu)先級低于當(dāng)前的所述待發(fā)送請求。
10.一種瀏覽器裝置,其特征在于,包括HTML解析單元,還包括: 狀態(tài)監(jiān)測單元,用于對于每個正在訪問的Web服務(wù)器,讀取并發(fā)的TCP連接的資源狀態(tài),已發(fā)送但尚未響應(yīng)的請求的請求列表與連接分發(fā)信息; 綜合決策單元,用于根據(jù)所述資源狀態(tài),請求列表與連接分發(fā)信息,來自HTML解析單元的各個待發(fā)送請求的優(yōu)先級,形成并輸出決策結(jié)果; 請求分派單元,用于根據(jù)所述決策結(jié)果,對所述待發(fā)送請求所在的隊列中各個所述待發(fā)送請求執(zhí)行對應(yīng)的調(diào)度操作。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,綜合決策單元包括: 第一決策模塊,用于當(dāng)前沒有已建立的TCP連接時,為待發(fā)送請求新建立一個TCP連接; 第二決策模塊,用于當(dāng)前沒有可用的已建立TCP連接時,且并發(fā)TCP連接的數(shù)目未到配置上限,為待發(fā)送請求新建立一個TCP連接; 第三決策模塊,用于待調(diào)度的待發(fā)送請求的優(yōu)先級為預(yù)先定義的高優(yōu)先級時,關(guān)閉一個已建立的TCP連接,為待發(fā)送請求新建立一個TCP連接; 第四決策模塊,用于待調(diào)度的待發(fā)送請求的優(yōu)先級為預(yù)先定義的低優(yōu)先級時,跳過待發(fā)送請求,并調(diào)度隊列中的下一個待發(fā)送請求;` 第五決策模塊,用于等待一個已建立TCP連接狀態(tài)更新為可用后,利用所述TCP連接發(fā)送所述隊列中位于隊頭的請求; 第六決策模塊,用于當(dāng)所述資源狀態(tài)表明存在一條可用的TCP連接時,將待發(fā)送請求調(diào)度在可用的TCP連接上發(fā)送; 第七決策模塊,用于當(dāng)所述資源狀態(tài)表明存在多條可用的TCP連接時,根據(jù)各個可用的TCP連接的擁塞狀態(tài)選擇其中一個發(fā)送所述待發(fā)送請求。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,綜合決策單元包括: TCP連接判決模塊,與第二決策模塊連接,用于根據(jù)如下依據(jù)判決一個TCP連接可用: 所述TCP連接未被Web服務(wù)器報告零窗口錯誤;且 該TCP連接的擁塞狀態(tài)為慢啟動或擁塞避免;且 該TCP連接上所述已發(fā)送但尚未響應(yīng)的請求的個數(shù)未達(dá)到流水配置上限;且 該TCP連接上待發(fā)送請求的流水封包未達(dá)到TCP設(shè)置MTU上限。
13.根據(jù)權(quán)利要求11所述的裝置,其特征在于,綜合決策單元包括: TCP連接關(guān)閉模塊,與第三決策模塊連接,用于根據(jù)如下依據(jù)判決關(guān)閉一個已建立的TCP連接: 所述TCP連接上所有所述已發(fā)送但尚未響應(yīng)的請求的優(yōu)先級均低于當(dāng)前的所述待發(fā)送請求; 所述TCP連接上其他的待發(fā)送請求的優(yōu)先級低于當(dāng)前的所述待發(fā)送請求。
【文檔編號】H04L29/08GK103685387SQ201210337790
【公開日】2014年3月26日 申請日期:2012年9月12日 優(yōu)先權(quán)日:2012年9月12日
【發(fā)明者】鄧靈莉, 陸璐, 彭晉 申請人:中國移動通信集團(tuán)公司