專利名稱:一種基于優先級多連接提高網頁瀏覽效率的方法
技術領域:
本發明屬于通信技術中的網絡技術領域,涉及一種基于優先級多連接提 高網頁瀏覽效率的方法,尤其涉及一種多線程并發式傳輸的網頁瀏覽服務的 實現方法。
背景技術:
隨著互聯網的迅速發展,使用TCP作為傳輸協議會給服務帶來一些性能和 安全上的問題,如頭端阻塞(HOL) 、 SYN flooding攻擊、小文件傳輸效率低 等。在一次TCP連接中,每一個連接只能綁定一個IP地址,如果要想并行地 傳輸多種邏輯數據,只有使用多條TCP連接,而要想進一步地對多個數據流 進行流量控制,則就只有在應用層實現,但是應用層無法了解端到端路徑上 的擁塞情況,4艮難有效地進行流量控制,同時給應用程序的設計增加了不必 要的復雜性。隨著瀏覽器,服務器,以及各種服務復雜性的不斷增加,傳統 的基于TCP的網頁瀏覽服務已經不適合如此龐大的網絡系統。
美國 Delaware 大學的論文《SCTP: An innovative transport layer protocol for the web》提出了 一種基于SCTP的網頁瀏覽服務技術,通過對 Apache服務器和Firefox瀏覽器進行修改,將HTTP移植到SCTP上,并利 用SCTP的多流(連接)特性,采用多線程并發傳輸方式,加快了網頁的傳 輸速率,解決了使用TCP帶來的頭端阻塞、網絡擁塞和SYN攻擊等問題。 然而,當數據在相互獨立的數據流中傳輸時,會產生由多連接并行傳輸引發 的傳輸數據混雜現象。傳輸數據混雜是由于不同連接中的數據在同一時刻沒 有先后順序的在同時傳輸或同時到達。出現傳輸數據混雜時對象的平均到達 時間將會增加,并且在端到端路徑帶寬較小或者傳輸的數據對象較大的情況 下,傳輸數據混雜所帶來的延遲將進一步增加。傳輸數據混雜現象產生后, 用戶需要花較長時間去等待其所需服務被完整地傳送過來
發明內容
本發明的目的是提供一種基于優先級多連接提高網頁瀏覽效率的方法, 以保證重要數據能夠更高效的發送到接收方。
為此,本發明提供了一種基于優先級多連接提高網頁瀏覽效率的方法, 其特征在于,將傳輸協議建立的多個連接賦以優先級的特征,將重要的數據 連接賦以較高的優先級,并將其中的數據優先傳遞到網絡中去。
特別是,多連接優先級的實現分為兩個部分用戶交互和優先級調度。 用戶交互指用戶根據自己的需求對各個連接的優先級進行設置,同時選擇不 同的優先級算法。優先級調度完成隊列調度工作。本發明對多個TCP連接 進行優先級的調度。用戶交互部分包括通過套接口選項來進行優先級的設 置,它的設置可以在關聯建立之前或之后進行,套接口選項設置成功返回后, 多連接優先級特性就開始影響用戶消息的發送。同時,所添加的一個用來表 示具有相同優先級的連接集合的結構,將多個具有相同優先級的連接中的數 據放在一個隊列中,使得這些數據能夠按照先來先服務的方式進行調度。
多連接優先級調度部分實現首先,利用調度算法快速地找到連接號所 對應的優先級隊列的索引號,接著,根據連接的優先級將其數據插入到對應 的優先級隊列中,然后,再使用優先級調度算法對輸出隊列進行調度,將其 中的數據出隊,最后,出隊的數據將被綁定到報文中,向下轉遞到IP網絡 層,通過網絡發送到對端中去。
考慮到多種應用程序可能需要不同的優先級調度策略來滿足某些特殊 要求,本發明提出的多連接優先級實現方法提供了兩種調度算法嚴格優先 級隊列調度算法和加權輪循隊列調度算法。 一、嚴格優先級隊列算法
在嚴格優先級隊列算法中,每次從優先級最高的隊列開始,如果有數據 就將其出隊并發送出去,對于最高優先級隊列中的數據將獲得最低延遲的服 務。發送數據時的具體步驟如下
1、 首先檢查是否使用了優先級特征如果使用了優先級特性,則要判 斷使用的是否為嚴格優先級隊列調度算法;如果沒有使用,則按照以往普通 的出隊方式出隊;
2、 判斷使用的是否為嚴格優先級隊列調度算法如果使用的是嚴格優 先級隊列調度算法,則要進行隊列號等參數的初始化,并判斷當前隊列號是 否超過優先級隊列的最大隊列號;如果沒有使用,則默認使用加權輪循隊列調度算法進行調度;
3、 判斷當前隊列號是否未超過優先級隊列的最大隊列號若沒有超過, 則進行當前隊列的處理,判斷當前隊列是否不為空,也就是判斷當前隊列是 否有數據存在;若超過,則要結束任務;
4、 判斷當前優先級隊列是否不為空若不為空,即隊列中有待發數據 存在,則將隊列中的數據取出并發送出去;若為空,也就是沒有數據存在, 則要開始檢查下一個隊列,跳到步驟3;
5、 完成第4步后,數據的發送過程到此結束,下一次數據的發送同樣 為以上步驟。
嚴格優先級隊列調度算法總結通過嚴格優先級隊列調度算法,有效地 降低了高優先級連接中數據的傳輸延遲。但是,同時也會產生一些問題,如 果在網絡邊緣不對高優先級信息進行管制,低優先級信息流由于無限制地等 待高優先級信息流服務完畢才能得到服務,導致傳輸時延大到用戶無法忍受 的程度。如果高優先級信息流超量,低優先級隊列由于長期得不到服務,必 然導致隊列溢出,后續的低優先級信息流由于溢出而被丟棄。如果發生這種 情況,低優先級信息流將被迫進入分組丟失、時延增加、主機系統重新傳輸 分組這樣的旋渦中。
從以上分析可以看出,嚴格優先級隊列調度算法的確不適合連續性的優 先級數據的傳輸,這會極大的降低數據的傳輸效率。本發明使用了加權輪循 隊列調度算法來對其進行改進。 二、 加權輪循隊列調度算法
在加權輪循隊列調度算法中,為每個優先級隊列分配不同的權值,通過 這些權值的設置將帶寬按比例分配給各個隊列。但是,權值應該是MTU的 整數倍,并且,各個隊列權值的最大公約數應該是MTU。發送一次數據時 的具體步驟如下
1、 先初始化各個參數,從第一個隊列開始進行判斷,判斷當前隊列號 是否未超過所有優先級隊列的最大隊列號;
2、 判斷當前隊列號是否未超過所有優先級隊列的最大隊列號若沒有 超過,則進行當前隊列的處理,判斷當前隊列是否不為空;若超過,則結束 此次任務;
3、 判斷當前隊列是否不為空若當前隊列不為空,即當前隊列中有數據存在,則將隊列中的數據取出,并更新當前的可用權值,將當前可用權值 變為前一時刻的可用權值減去用戶數據的字節數,接著,判斷是否沒有從任
何一個隊列中取出數據;若當前隊列為空,也就是隊列中沒有數據,則檢查 當前隊列的下一個隊列,跳到步驟2;
4、 判斷是否沒有從任何一個隊列中取出數據若沒有從任何一個隊列 中取出數據,則證明所有隊列的權值都為0,但此時隊列中可能還有沒有被 取出并發送出去的數據,這時就要進行可用權值及隊列號的初始化,跳到步 驟1,再重新進行數據的提取;若從隊列中取出了數據,則將取出的數據發 送出去,結束;
5、 完成步驟4后, 一次數據的取出和發送過程結束。若要對下一次數 據取出和發送,需重新進行以上操作,如此循環。
加權輪循隊列調度算法總結通過對權值的設置,在發送數據的任意時 刻,兩個隊列中的數據都是按照一定的比例被發送出去的,雖然多個隊列的 調度是輪循進行的,但對每個隊列不是固定地分配服務時間片,如果某個隊 列為空,那么馬上換到寫一個隊列調度,這樣帶寬資源可以得到充分的利用。
綜上所述,嚴格優先級隊列調度算法能夠有效地降低高優先級隊列中數 據的傳輸延遲,但當高優先級信息流超量時,低優先級隊列中的數據就會一 直在排隊,不能夠得以發送。出現這種情況時,可以使用加權輪循隊列調度 算法,保證各個隊列中的數據被循環發送出去。
根據本發明,本質上在傳輸層中實現了 一種對不同類型的數據提供不同 服務質量保證的QoS控制技術,使得能夠對通過不同連接發送出去的用戶消 息提供一種有區別的服務,從而有效地改善了重要數據在端到端傳輸過程中 的延遲。本發明的優點在于通過多連接優先級的設置,可以對用戶感興趣 的內容、或者服務中較為重要的部分進行優先傳輸,對不同類型的數據傳輸 提供不同的服務質量保證,從而提高了用戶可感知的QoS需求,降低了用戶 可感知的時延,從而在端到端帶寬有限的情況下,能夠為用戶提供可接受的 服務。隨著網絡中信息量的爆炸性增加,網絡服務的內容將日趨復雜,而諸 如服務組合等未來網絡殺手級的應用將增加這種趨勢。本發明符合這種網絡 發展的趨勢,將為越來越多的網絡應用提供一種高效的、人性化的實現環境。 根據本發明,通過對多連接優先級進行調度,解決了傳輸數據混雜現象, 降低了用戶的等待延時,加快了網頁的傳輸速率,更好地滿足了用戶的需求。
6為了使多連接優先級特性更好的體現出來,可以將網頁瀏覽服務應用于
多連接優先級上。假設一個HTML網頁被分成四部分Java applet程序,多 媒體控件, 一個圖像,及純文本方式。把這四部分分配到四個獨立的連接中, 加快HTML網頁的傳輸,但同時也帶來了并行傳輸引發的傳輸數據混雜現 象。通過多連接優先級設置,在多連接的網頁瀏覽應用中,可以人為地根據 用戶的偏好或者網絡環境,將用戶感興趣或更有利于提高網絡利用率的連接 中的數據設置為高優先級,這些數據將在同一個關聯內優先地傳輸到瀏覽 器,這時用戶就能一邊瀏覽此數據內容, 一邊等待其它內容的到達。從而有 效地降低用戶的等待時間,更好的為當前網絡服務,滿足了用戶的需求。
圖l為使用調度算法對輸出隊列的調整示意圖2為嚴格優先級隊列調度算法設計示意圖3為加權輪循隊列調度算法設計示意圖4為使用多線程的Apache Web服務器示意圖;以及
圖5為本發明Web瀏覽器與服務器之間的交互過程示意圖。
具體實施例方式
下面給出本發明的一個實施例,其設計了多線程并發傳輸式網頁瀏覽服 務方法。
在圖5中,S101表示DNS查詢;S102表示建立多個連接;S103表示發送 HTTP請求;S104表示發送HTML格式文本文件請求響應;S105表示解析 HTML文本文件,使用pipeling機制發送HTTP請求,獲得html資源;S106 表示HTTP響應,發送所請求資源。
本實施例選擇Firefox作為網頁瀏覽客戶端,Apache作為網頁瀏覽服務器, 廣域網模擬器通過對各項參數的設定,例如網絡時延、帶寬、丟包率等,來模 擬真實的網絡環境。通常,瀏覽器用戶通過點擊一個超鏈接或在地址欄中輸 入URL等方式發起一次瀏覽器與服務器之間的交互。瀏覽器與服務器的一次 交互的具體步驟如下所述
階段l、多線程并發傳輸瀏覽器和服務器的設計;
步驟l:多線程并發傳輸服務器的設計
7本發明對原始Apache服務器進行了改進。首先,為了佳Apache能夠利用 多連接特性,首先將獲得輸入連接的連接號,并將其保存。這樣,Apache就能 夠使用與請求相同的連接來進行響應。Apache原先是使用持久連接和pipelining 機制,現在即使請求來自于不同的連接,Apache中的服務線程同樣只能順序地 從一個關聯中讀取HTTP請求并響應。為了使得Apache能夠并行地對來自于不 同連接的請求發送響應,使用一個監聽線程來從不同連接中獲取HTTP請求, 通過監聽線程將對各個連接中請求的響應工作分配給若干個服務線程處理, 如圖4所示。通過這種多線程處理機制,能夠有效地提高響應時的數據吞吐 量。
步驟2:多線程并發式傳輸瀏覽器的設計
本發明對原始Firefox瀏覽器也進行了改進。在瀏覽器與服務器建立關聯 時,Firefox需要指定瀏覽器允許的最大出連接和入連接。因為希望使用與 HTTP中請求的連接號中相同的連接號來進行響應,將輸入連接數設置成輸 出連接數。瀏覽器在選擇使用哪個連接號來傳輸HTTP請求時,是使用 round-robin算法來循環地在所有的可用連接號中選擇可用連接號。
當使用多線程瀏覽器Firefox和多線程Web服務器Apache分別并行地 發送HTTP請求和響應時會發生傳輸數據混雜現象,這是因為Apache服務 器會使用多個服務線程交替地使用網絡接口將響應數據發送到瀏覽器端。通 過多連接優先級能有效地解決這一問題。可以人為地根據用戶對網頁中各個 元素的感興趣程度,將用戶感興趣的元素設置為高優先級,這些元素將在同 一個關聯中優先地被傳輸到瀏覽器端,從而獲得盡量小的延遲。
階段2:多連接優先級的設定
為了將優先級特性應用于Apache和Firefox,在Apache服務器端由網頁作 者在網頁中添加用于說明網頁元素重要程度的屬性字段,將Apache服務器端連 接0設置為高優先級連接,其余的連接為普通優先級,這些連接將按照先來先服 務的方式被發送到網絡中去。由于在同一連接上傳輸多個數據依然會發生頭端 阻塞現象,因此,每個網頁中的重要元素不宜設置過多。
階段3:網頁瀏覽服務工作的具體過程如圖8所示
步驟l:在瀏覽器地址欄中鍵入所需頁面的URL,這里假設用戶想要訪 問的URL是httD:〃eaie.bitu.edu.cn/index.html;
步驟2:瀏覽器會對用戶提交的URL進行解析。瀏覽器會找到獲取這個URL中的資源需要使用什么協議,即""前面的http,然后使用HTTP協 議獲取資源eaie.bjtu.edu.cn/index.html,這個由字符串代表的資源由兩個部 分組成前一部分代表運行著Web服務器的機器域名eaie.bjtu.edu.cn,后 一部分/index.html代表存放在服務器eaie.bjtu.edu.cn中的資源名字;
步驟3:在完成對URL的解析后,瀏覽器就開始訪問域名系統DNS, 查找eaie.bjtu.edu.cn對應的IP地址;
步驟4:通過DNS解析,瀏覽器獲得eaie.bjtu.edu.cn對應的IP地址;
步驟5:瀏覽器與服務器之間建立多個連接;
步驟6:瀏覽器傳輸線程向Web服務器發送HTTP GET請求,告訴 Web服務器需要獲得/index.html資源;
步驟7:服務器用/index.html作為這次請求的響應的消息主體并將其傳 送給瀏覽器。index.html是一個HTML格式的文本文件,其中描述了網頁中 包含了哪些元素以及這些元素如何布局的結構化信息,還有一些網頁中出現 的文字信息;
步驟8:為了進一步地獲得網頁中的其它元素,瀏覽器會對剛剛收到的 index.html進行解析,確定它需要進一步獲取哪些資源,并根據由網頁作者 對各個網頁元素的重要程度說明確定各個元素的重要程度,通過高優先級連 接去獲取這些重要元素,而其它普通元素通過Round-Robin算法使用普通優 先級連接去獲取;
步驟9:瀏覽器再次利用pipelining機制向服務器發起若干個HTTP GET 請求,從Web服務器中獲得需要的資源;
步驟10: Apache服務器接收到來自于不同連接的請求后,用多個服務 線程對請求進行處理并響應,Apache j吏用多個月良務線程并行地處理一個關 聯中不同連接的請求并將響應發回給瀏覽器;
步驟11:瀏覽器會使用多個線程分別讀取來自不同連接中的響應數據, 并將其呈現在窗口上;
步驟12:當網頁中所有元素都到達了瀏覽器端后, 一個完整的網頁就會 呈現在用戶面前,至此就完成了一個網頁的瀏覽服務。
權利要求
1、一種基于優先級多連接提高網頁瀏覽效率的方法,其特征在于,將傳輸協議建立的多個連接賦以優先級的特征,將重要的數據連接賦以較高的優先級,并將此連接中的數據優先傳遞到網絡中去。
2、 如權利要求l所述的方法,其特征在于,進一步包含 用戶交互,用戶根據自己的需求對多連接進行優先級設置,選擇優先級調度算法;以及多連接的優先級調度,其完成多個連接的優先級調度工作。
3、 如權利要求2所述的方法,其特征在于,多連接的優先級調度包括以 下兩個步驟(1) 將輸出隊列分為若干個隊列,不同隊列存放不同優先級連接中的 數據;以及(2) 使用優先級調度算法從優先級隊列中將數據取出。
4、 如權利要求3所述的方法,其特征在于,多連接的優先級調度算法為 嚴格優先級隊列調度算法每次嚴格按照優先級從高到低的次序,優先發送高優先級隊列中的分組,當高優先級隊列為空時,再發送低優先級隊列 中的分組;或加權輪循隊列調度算法為每個隊列分配不同的權值,隊列之間輪流調 度,保證每個隊列都得到一定的服務時間。
全文摘要
一種基于優先級多連接提高網頁瀏覽效率的方法,其特征在于,將傳輸協議建立的多個連接賦以優先級的特征,給重要的數據賦以較高的優先級,并把高優先級連接的數據優先傳遞到網絡中去。本發明能夠針對通過不同連接發送出去的用戶消息提供一種有區別的服務,從而有效地改善了重要數據在端到端傳輸過程中的延遲。通過多連接優先級的設置,可以對用戶感興趣的內容,或者服務中較為重要的部分進行優先傳輸,對不同類型的數據傳輸提供不同的服務質量保證,從而提高了用戶可感知的QoS需求,降低了用戶可感知的時延,從而在端到端帶寬有限的情況下,也能夠為用戶提供滿意的服務。
文檔編號H04L12/56GK101483599SQ200910077329
公開日2009年7月15日 申請日期2009年2月18日 優先權日2009年2月18日
發明者周華春, 張宏科, 冬 楊, 博 王, 潑 王, 平 董, 淼 薛 申請人:北京交通大學