專(zhuān)利名稱(chēng):基于服務(wù)等級(jí)協(xié)議的時(shí)間片散列調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明是一種優(yōu)化的路由器隊(duì)列調(diào)度方法,主要用于解決隊(duì)列中的數(shù)據(jù)包優(yōu)化轉(zhuǎn)發(fā)的問(wèn) 題,屬于QoS (服務(wù)質(zhì)量)保障技術(shù)領(lǐng)域。
背景技術(shù):
SLA (Service Level Agre匿nt為"服務(wù)等級(jí)協(xié)議")是關(guān)于網(wǎng)絡(luò)服務(wù)供應(yīng)商(ISP)和 用戶間的一份合同,其中定義了服務(wù)類(lèi)型、服務(wù)質(zhì)量和客戶費(fèi)用等術(shù)語(yǔ)。網(wǎng)絡(luò)服務(wù)供應(yīng)商和 用戶間簽訂SLA,就是要按照SLA的具體條款來(lái)保證用戶的服務(wù)質(zhì)量。同時(shí),用戶根據(jù)SLA的具
體條款來(lái)付費(fèi)。
隨著Internet規(guī)模的不斷增大,各種各樣的網(wǎng)絡(luò)服務(wù)爭(zhēng)相涌現(xiàn),先進(jìn)的多媒體系統(tǒng)層出 不窮。由于實(shí)時(shí)業(yè)務(wù)對(duì)網(wǎng)絡(luò)傳輸時(shí)延、抖動(dòng)、丟包率等特性較為敏感,當(dāng)網(wǎng)絡(luò)上有突發(fā)流量 時(shí),實(shí)時(shí)業(yè)務(wù)就會(huì)受到很大影響;另一方面,多媒體業(yè)務(wù)占用了大量的帶寬,這樣,現(xiàn)有網(wǎng) 絡(luò)要保證的關(guān)鍵業(yè)務(wù)就難以得到可靠的傳輸。
解決這些問(wèn)題的最簡(jiǎn)單的辦法當(dāng)然是增大帶寬,但是這種方法代價(jià)高昂,可行性不高。 這就要求網(wǎng)絡(luò)管理者對(duì)不同的服務(wù)區(qū)別管理,而不能對(duì)所有的數(shù)據(jù)包一視同仁。
隊(duì)列調(diào)度機(jī)制作為IP網(wǎng)絡(luò)QoS的實(shí)現(xiàn)機(jī)制之一,對(duì)數(shù)據(jù)包進(jìn)行合理的調(diào)度,對(duì)含有內(nèi)容 標(biāo)識(shí)的數(shù)據(jù)包進(jìn)行優(yōu)化,并對(duì)其中特定的數(shù)據(jù)包賦以較高的優(yōu)先級(jí),從而加速傳輸?shù)倪M(jìn)程, 并實(shí)1L實(shí)時(shí)交互。路由器中調(diào)度算法所要完成的功能就是如何從多個(gè)(或一個(gè))隊(duì)列中選擇 下一個(gè)待轉(zhuǎn)發(fā)的分組。
一個(gè)有效的隊(duì)列調(diào)度算法應(yīng)達(dá)到的性能指標(biāo)主要有公平性、時(shí)延特性、對(duì)惡意業(yè)務(wù)流 的隔離能力、鏈路帶寬的利用率和復(fù)雜性等,前4個(gè)指標(biāo)與QoS密切相關(guān)?;赟LA的時(shí)間 片散列調(diào)度算法充分考慮以上幾個(gè)性能指標(biāo)。 與本發(fā)明相關(guān)的現(xiàn)有技術(shù)分析
當(dāng)前,成熟的隊(duì)列調(diào)度算法有FIFO、 PQ、 CQ、 WFQ、 CBWFQ、 LLQ等。它們只考慮帶寬這個(gè) QoS參數(shù),以帶寬來(lái)間接保障時(shí)延、抖動(dòng)、丟包率等QoS參數(shù);而且都是根據(jù)事先確定的算法 對(duì)當(dāng)前情況作出處理,不對(duì)以后的情況作出預(yù)判;也不能根據(jù)實(shí)際的網(wǎng)絡(luò)負(fù)載狀況來(lái)動(dòng)態(tài)改 變調(diào)度策略。
其中,CBWFQ隊(duì)列調(diào)度算法是思科路由器的主要調(diào)度算法,它是一種動(dòng)態(tài)的調(diào)度算法,根 據(jù)事先確定的算法對(duì)當(dāng)前情況作出處理,不對(duì)以后的情況作出預(yù)判。CBWFQ算法為每個(gè)類(lèi)分配 一個(gè)隊(duì)列,每個(gè)隊(duì)列規(guī)定了帶寬、權(quán)重、最大數(shù)據(jù)包限制。權(quán)重是基于帶寬確定的,g卩CBWFQ 只考慮了帶寬這個(gè)QoS參數(shù)。C柳FQ算法中的權(quán)重是靜態(tài)的,根據(jù)設(shè)定好的帶寬確定權(quán)重后, 就不再改變。當(dāng)某個(gè)隊(duì)列處于空閑狀態(tài),會(huì)導(dǎo)致處理資源的浪費(fèi)。
發(fā)明內(nèi)容
技術(shù)問(wèn)題本發(fā)明的目的是提供一種基于SLA的時(shí)間片散列調(diào)度方法,來(lái)解決路由器內(nèi) 部QoS保障的問(wèn)題。與傳統(tǒng)的隊(duì)列調(diào)度算法不同,本調(diào)度方法提出時(shí)間片描述機(jī)制,通過(guò)對(duì) 時(shí)間片的預(yù)排和動(dòng)態(tài)調(diào)整,精確保證QoS的多種參數(shù)。
技術(shù)方案本方法中提出時(shí)間片描述機(jī)制,是為了精確保障各個(gè)業(yè)務(wù)類(lèi)的時(shí)延、抖動(dòng)、 帶寬、丟包率等QoS參數(shù);提出快照法預(yù)排,是為了在一段時(shí)間內(nèi)預(yù)分配資源,提高各個(gè)隊(duì)
列的總體服務(wù)質(zhì)量;為了克服實(shí)際網(wǎng)絡(luò)情況變化帶來(lái)的影響,提出綜合QoS參數(shù)的動(dòng)態(tài)隊(duì)列 權(quán)重,即根據(jù)當(dāng)前實(shí)際的路由器資源和隊(duì)列狀況動(dòng)態(tài)調(diào)整隊(duì)列的權(quán)重。
各種業(yè)務(wù)類(lèi)有自己的特性,它們對(duì)QoS參數(shù)的要求也各有側(cè)重。例如,高清晰視頻業(yè)務(wù), 要求帶寬大、時(shí)延小、抖動(dòng)??;FTP業(yè)務(wù),要求帶寬大,而對(duì)時(shí)延和抖動(dòng)的要求不嚴(yán)格。各 種業(yè)務(wù)對(duì)QoS的具體需求,在SLA中已經(jīng)做了規(guī)定。本算法中,標(biāo)準(zhǔn)時(shí)間片的大小固定。在 一個(gè)標(biāo)準(zhǔn)時(shí)間片里,轉(zhuǎn)發(fā)的數(shù)據(jù)包流量是相同的。在時(shí)間軸上,帶寬表現(xiàn)為隊(duì)列分到的標(biāo)準(zhǔn) 時(shí)間片的個(gè)數(shù);時(shí)延表現(xiàn)為某個(gè)隊(duì)列的兩個(gè)相鄰時(shí)間片之間的最大間隔大小;抖動(dòng)表現(xiàn)為某 一隊(duì)列的相鄰時(shí)間片之間間隔的均勻程度,QoS參數(shù)與時(shí)間片分布的對(duì)應(yīng)關(guān)系如圖1所示。
基于服務(wù)等級(jí)協(xié)議的時(shí)間片散列調(diào)度方法包括時(shí)間片描述機(jī)制、時(shí)間片的快速預(yù)排方法 和綜合QoS參數(shù)的動(dòng)態(tài)隊(duì)列權(quán)重,能夠合理分配資源,確保服務(wù)質(zhì)量,達(dá)到整體精確的QoS 優(yōu)化和SLA保障;該方法所包含的步驟為
步驟1).對(duì)路由器上的所有業(yè)務(wù)隊(duì)列,根據(jù)SLA映射的QoS參數(shù),計(jì)算靜態(tài)隊(duì)列權(quán)重w,s.;
步驟2).判斷路由器上是否有等待預(yù)排的隊(duì)列,即隊(duì)列長(zhǎng)度大于0的隊(duì)列,如果沒(méi)有, 轉(zhuǎn)步驟23),否則繼續(xù);
步驟3).根據(jù)當(dāng)前路由器資源,對(duì)所有等待預(yù)排的隊(duì)列計(jì)算可分配的時(shí)間片個(gè)數(shù),設(shè)第i
個(gè)隊(duì)列的時(shí)間片數(shù)為^w;;
步驟4).讀取一個(gè)待預(yù)排的隊(duì)列i,從時(shí)間片分布軸上從頭開(kāi)始査找出第一個(gè)為空的位
置,插入該隊(duì)列第一個(gè)時(shí)間片,且使隊(duì)列i的時(shí)間片數(shù)^w;.減i;
步驟5).為隊(duì)列i計(jì)算出下一個(gè)時(shí)間片的插入位置下一個(gè)時(shí)間片與當(dāng)前時(shí)間片間隔
勺=L^A」個(gè)時(shí)間片'這里《為隊(duì)列i所對(duì)應(yīng)業(yè)務(wù)在SLA中簽訂的最小時(shí)延,t為標(biāo)準(zhǔn)時(shí) 間片的大小;判斷該位置是否空閑,若不空閑,轉(zhuǎn)步驟7);空閑,則繼續(xù); 步驟6).插入隊(duì)列i的時(shí)間片,轉(zhuǎn)步驟10);
步驟7).判斷此隊(duì)列是否為延時(shí)敏感的隊(duì)列,若不是敏感隊(duì)列,轉(zhuǎn)步驟9); 步驟8).從沖突點(diǎn)向前查找,找出離沖突點(diǎn)最近的空位點(diǎn)插入時(shí)間片,轉(zhuǎn)步驟10); 步驟9).從沖突點(diǎn)向后査找,找出離沖突點(diǎn)最近的空位點(diǎn)插入時(shí)間片; 步驟10).使隊(duì)列i的時(shí)間片數(shù)^減1,并判斷il^是否大于0,如果是,則轉(zhuǎn)步驟5);
步驟ll).判斷是否有等待預(yù)排時(shí)間片的隊(duì)列,如果有,轉(zhuǎn)步驟4);沒(méi)有,則繼續(xù); 步驟12).從當(dāng)前時(shí)刻開(kāi)始,按已排列好的時(shí)間片順序?qū)I(yè)務(wù)隊(duì)列進(jìn)行調(diào)度; 步驟13).判斷是否到達(dá)一個(gè)周期T,若未達(dá)到,轉(zhuǎn)步驟17);若到達(dá)一個(gè)周期T,繼續(xù); 步驟14).根據(jù)當(dāng)前路由器資源和隊(duì)列狀態(tài)計(jì)算所有隊(duì)列的動(dòng)態(tài)權(quán)重;判斷是否到達(dá)時(shí)間
間隔10T,若已到達(dá)時(shí)間間隔10T,重置周期計(jì)數(shù)器,轉(zhuǎn)步驟2);
步驟15).判斷處于非正常狀態(tài)的隊(duì)列數(shù)與總隊(duì)列數(shù)的比值是否達(dá)到快照更新觸發(fā)閥值
V,若達(dá)到快照更新觸發(fā)閥值V,轉(zhuǎn)步驟2);步驟16).本周期T沿用上一個(gè)周期T的快照,轉(zhuǎn)步驟12);
步驟17).判斷當(dāng)前是否出現(xiàn)空時(shí)間片且空時(shí)間片與標(biāo)準(zhǔn)時(shí)間片的比值達(dá)到轉(zhuǎn)讓閥值R, 若是,則轉(zhuǎn)步驟19);
步驟18).判斷是否有隊(duì)列出現(xiàn)突發(fā)搶占事件,若有,則選擇一個(gè)權(quán)重最高的隊(duì)列,轉(zhuǎn)步 驟20);
步驟19).挑選當(dāng)前權(quán)重最高的隊(duì)列,占用該空時(shí)間片,轉(zhuǎn)步驟12); 步驟20).判斷當(dāng)前標(biāo)準(zhǔn)時(shí)間片是否執(zhí)行完成,若未完成,等待該時(shí)間片執(zhí)行完成; 步驟21).搶占當(dāng)前時(shí)間片;
步驟22).判斷是否搶占超時(shí),若超時(shí),轉(zhuǎn)步驟12);若未超時(shí),判斷搶占事件是否完成,
若完成,轉(zhuǎn)步驟12),若未完成,轉(zhuǎn)步驟21);
步驟23).全過(guò)程結(jié)束。
有益效果與現(xiàn)行的隊(duì)列調(diào)度算法相比,本發(fā)明設(shè)計(jì)的基于SLA的時(shí)間片散列調(diào)度算法
具有以下特點(diǎn)
(1) 時(shí)間片描述機(jī)制,精確保障QoS。
用時(shí)間片的描述方法量化帶寬資源,在排列時(shí)間片的時(shí)間軸上,帶寬表現(xiàn)為某一隊(duì)列分
到的時(shí)間片的個(gè)數(shù);時(shí)延表現(xiàn)為某個(gè)隊(duì)列的兩個(gè)相鄰時(shí)間片之間的最大間隔大小;抖動(dòng)表現(xiàn) 為某一隊(duì)列相鄰時(shí)間片之間的間隔的均勻程度。
(2) 通過(guò)時(shí)間片的快速預(yù)排,達(dá)到整體的QoS優(yōu)化和SLA保障。
基于SLA的時(shí)間片散列調(diào)度算法使用了時(shí)間片預(yù)排的方法,參考當(dāng)前的隊(duì)列調(diào)度結(jié)果, 按照SLA為各個(gè)隊(duì)列提前分配和排列時(shí)間片。并以預(yù)排結(jié)果為基礎(chǔ),根據(jù)需要?jiǎng)討B(tài)調(diào)整隊(duì)列 的調(diào)度。通過(guò)對(duì)時(shí)間片的數(shù)量和間隔的控制,既精確保障各個(gè)QoS參數(shù),又充分利用資源。 不僅保障當(dāng)前情況下某個(gè)隊(duì)列的服務(wù)質(zhì)量,而且能提高各隊(duì)列的總體服務(wù)質(zhì)量;
CBWFQ算法是一種動(dòng)態(tài)的調(diào)度算法,根據(jù)事先確定的算法對(duì)當(dāng)前情況作出處理,不對(duì)以 后的情況作出預(yù)判?;赟LA的時(shí)間片散列調(diào)度算法使用了時(shí)間片預(yù)排的方法,在一段時(shí)間 內(nèi),對(duì)資源進(jìn)行預(yù)分配,把資源合理的分配給需要的隊(duì)列,既可以確保服務(wù)質(zhì)量,又可以充 分利用資源。不僅能保障當(dāng)前情況下某個(gè)隊(duì)列的服務(wù)質(zhì)量,而且能提高各隊(duì)列的總體服務(wù)質(zhì) 量。
(3) 綜合QoS參數(shù)的動(dòng)態(tài)隊(duì)列權(quán)重,合理分配路由器資源。
本調(diào)度算法中,各個(gè)隊(duì)列的權(quán)重是會(huì)根據(jù)隊(duì)列長(zhǎng)度和實(shí)際享受到的時(shí)延、抖動(dòng)、帶寬、 丟包率等因素動(dòng)態(tài)變化的,以便于適應(yīng)實(shí)際的網(wǎng)絡(luò)情況。
CBWFQ算法為每個(gè)類(lèi)分配一個(gè)隊(duì)列,每個(gè)隊(duì)列規(guī)定了帶寬、權(quán)重、最大數(shù)據(jù)包限制。權(quán) 重是基于帶寬確定的。即CBWFQ只考慮了帶寬這個(gè)QoS參數(shù)?;赟LA的時(shí)間片散列調(diào)度算 法中的權(quán)重是綜合考慮時(shí)延、抖動(dòng)、帶寬、丟包率等QoS參數(shù),能夠提升綜合的服務(wù)質(zhì)量。
CBWFQ算法中的權(quán)重是靜態(tài)的,根據(jù)設(shè)定好的帶寬確定權(quán)重后,就不再改變。當(dāng)某個(gè)隊(duì) 列處于空閑狀態(tài),會(huì)導(dǎo)致處理資源的浪費(fèi)。基于SLA的時(shí)間片散列調(diào)度算法的權(quán)重是動(dòng)態(tài)的, 當(dāng)前隊(duì)列情況發(fā)生變化時(shí),該隊(duì)列的權(quán)重就發(fā)生相應(yīng)的變化。資源分配是按照權(quán)重來(lái)分配的, 動(dòng)態(tài)的權(quán)重,更有利于資源的合理分配。
圖1 QoS參數(shù)與時(shí)間片分布的對(duì)應(yīng)關(guān)系示意圖。 圖2數(shù)據(jù)包在路由器上的處理流程示意圖。 圖3快照法預(yù)分配時(shí)間片方法示意圖。 圖4快照法預(yù)排時(shí)間片流程示意圖。 圖5動(dòng)態(tài)調(diào)整法流程示意圖。 圖6隊(duì)列長(zhǎng)度的各個(gè)閥值示意圖。
具體實(shí)施例方式
一、 體系結(jié)構(gòu)
在路由器上,轉(zhuǎn)發(fā)數(shù)據(jù)包的流程如圖2所示。數(shù)據(jù)源S1、 S2、 S3到達(dá)路由器輸入接口, 速率檢測(cè)器對(duì)入口處的總流量進(jìn)行統(tǒng)計(jì);標(biāo)記器根據(jù)當(dāng)前網(wǎng)絡(luò)狀況和入口處的流速,對(duì)數(shù)據(jù) 包進(jìn)行紅、黃、綠三色標(biāo)記,以表示這些數(shù)據(jù)包在擁塞情況下的丟棄優(yōu)先級(jí);然后,分類(lèi)器 根據(jù)SLA映射的QoS參數(shù)和業(yè)務(wù)等級(jí),把數(shù)據(jù)包劃分成各個(gè)業(yè)務(wù)類(lèi),每個(gè)業(yè)務(wù)類(lèi)對(duì)應(yīng)一個(gè)隊(duì) 列,在一個(gè)隊(duì)列里的數(shù)據(jù)包是相同等級(jí)相同業(yè)務(wù)類(lèi)的數(shù)據(jù)包;接著,調(diào)度器根據(jù)本文的調(diào)度 算法對(duì)隊(duì)列進(jìn)行調(diào)度,分配資源,轉(zhuǎn)發(fā)數(shù)據(jù)包。
在上述流程中,高效的隊(duì)列調(diào)度算法可以高效分配路由器資源,加速數(shù)據(jù)包轉(zhuǎn)發(fā),優(yōu)化 路由器性能,從而提高整個(gè)網(wǎng)絡(luò)的服務(wù)質(zhì)量。因此,本文主要討論隊(duì)列調(diào)度算法,即對(duì)圖2 中的調(diào)度器部分進(jìn)行研究。
二、 方法流程
如圖2所示,在用本算法進(jìn)行隊(duì)列調(diào)度之前,分類(lèi)器已根據(jù)SLA映射的QoS參數(shù),把數(shù) 據(jù)包劃分成各個(gè)業(yè)務(wù)類(lèi),每個(gè)業(yè)務(wù)類(lèi)對(duì)應(yīng)一個(gè)隊(duì)列。每個(gè)隊(duì)列里,是相同等級(jí)相同業(yè)務(wù)類(lèi)的 數(shù)據(jù)包。
1. 調(diào)度算法的主要流程
(D初始化根據(jù)SLA映射的QoS參數(shù),計(jì)算靜態(tài)隊(duì)列權(quán)重w'、.;
② 時(shí)間片預(yù)排在時(shí)間片開(kāi)始預(yù)排前,根據(jù)當(dāng)前的隊(duì)列長(zhǎng)度計(jì)算動(dòng)態(tài)權(quán)重l^,并動(dòng)態(tài) 調(diào)整隊(duì)列權(quán)重W;利用快照法對(duì)一個(gè)周期T內(nèi)的隊(duì)列調(diào)度進(jìn)行時(shí)間片預(yù)排,即對(duì)各個(gè)隊(duì)列預(yù) 先分配和排列時(shí)間片,達(dá)到資源預(yù)分配的目的;
③ 隊(duì)列調(diào)度按時(shí)間片排列結(jié)果調(diào)度隊(duì)列,轉(zhuǎn)發(fā)數(shù)據(jù)包;
動(dòng)態(tài)調(diào)整在一個(gè)周期T內(nèi),當(dāng)出現(xiàn)空時(shí)間片且與標(biāo)準(zhǔn)時(shí)間片的比值大于等于轉(zhuǎn)讓闊 值R或發(fā)生突發(fā)搶占事件的隊(duì)列權(quán)重超過(guò)特權(quán)優(yōu)先閥值X,進(jìn)行時(shí)間片的動(dòng)態(tài)調(diào)整;否則, 表示網(wǎng)絡(luò)狀況或隊(duì)列情況沒(méi)有明顯變化,保持預(yù)排的時(shí)間片排列結(jié)果;
⑤快照更新在下一周期T開(kāi)始時(shí),
如果處于非正常狀態(tài)的隊(duì)列數(shù)量與隊(duì)列總數(shù)量的比值沒(méi)有達(dá)到快照更新觸發(fā)閥值V,則 該周期T內(nèi)沿用上一周期T的快照;
如果處于非正常狀態(tài)的隊(duì)列數(shù)量與隊(duì)列總數(shù)量的比值達(dá)到快照更新觸發(fā)閥值V,觸發(fā)系 統(tǒng),提請(qǐng)快照更新,根據(jù)當(dāng)前網(wǎng)絡(luò)情況重新進(jìn)行時(shí)間片預(yù)排;
否則,連續(xù)時(shí)間間隔IOT還沒(méi)有進(jìn)行快照更新,就要進(jìn)行強(qiáng)制快照更新。
2. 時(shí)間片預(yù)排的快照算法
對(duì)各類(lèi)業(yè)務(wù)的正常帶寬需求,可以通過(guò)發(fā)放時(shí)間片的數(shù)量保證;對(duì)時(shí)延、抖動(dòng)要求,則
6通過(guò)參數(shù)周期T的選取和盡可能均勻地分布時(shí)間片來(lái)保證。如圖3所示,排列時(shí)間片時(shí),在 不沖突的情況下,按權(quán)重從大到小的順序,均勻排列分配給該隊(duì)列的時(shí)間片。當(dāng)在某個(gè)位置 上發(fā)生沖突時(shí),按鄰近分配策略進(jìn)行調(diào)整。分配時(shí)間片時(shí),按權(quán)重的大小順序進(jìn)行,能夠優(yōu) 先滿足對(duì)QoS要求嚴(yán)格的隊(duì)列;每個(gè)隊(duì)列的時(shí)間片盡可能均勻地分布在整個(gè)時(shí)間軸上,可以 避免較長(zhǎng)時(shí)間內(nèi)某一隊(duì)列得不到服務(wù),有助于確保時(shí)延。定義標(biāo)準(zhǔn)時(shí)間片的時(shí)間大小為t, 周期為T(mén)的時(shí)間軸上分布的總時(shí)間片個(gè)數(shù)為M,路由器的總帶寬為B,某隊(duì)列i在SLA中簽訂 的最大帶寬為6,,最小時(shí)延為《。則理想情況下的該隊(duì)列相鄰時(shí)間片最大間隔數(shù) ~ = L力A」'分配給該隊(duì)列的時(shí)間片個(gè)數(shù)M, = 「Mx(6,/萬(wàn))"]。
詳細(xì)算法流程如圖4所示。 3.時(shí)間片動(dòng)態(tài)調(diào)整算法
3.1需要?jiǎng)討B(tài)調(diào)整的情況
時(shí)間片的動(dòng)態(tài)調(diào)整分為空時(shí)間片E的轉(zhuǎn)讓和突發(fā)事件搶占兩種情況。第一種,分配給某 隊(duì)列的時(shí)間片出現(xiàn)了空閑(即己分配給該隊(duì)列而該隊(duì)列沒(méi)有使用完的、部分或若干個(gè)完整的 標(biāo)準(zhǔn)時(shí)間片,我們稱(chēng)為空時(shí)間片),可將該空時(shí)間片轉(zhuǎn)讓給其它隊(duì)列。第二種,當(dāng)有瞬時(shí)響應(yīng) 數(shù)據(jù)包等待轉(zhuǎn)發(fā)或者有隊(duì)列出現(xiàn)嚴(yán)重?fù)砣麜r(shí),隊(duì)列權(quán)重上升到特權(quán)優(yōu)先閥值X以上,發(fā)生突 發(fā)搶占事件。
3.2空時(shí)間片E的轉(zhuǎn)讓
轉(zhuǎn)讓的規(guī)則給標(biāo)準(zhǔn)時(shí)間片S設(shè)置一個(gè)轉(zhuǎn)讓閥值R,當(dāng)出現(xiàn)空時(shí)間片且空時(shí)間片與S的 比值大于等于轉(zhuǎn)讓閥值R時(shí),轉(zhuǎn)讓該空時(shí)間片;若空時(shí)間片與S的比值低于轉(zhuǎn)讓閥值R,就 丟棄對(duì)該空時(shí)間片的使用。
轉(zhuǎn)讓的方法空時(shí)間片轉(zhuǎn)讓給權(quán)重最高的候選隊(duì)列。隊(duì)列的權(quán)重綜合考慮了業(yè)務(wù)的類(lèi)型 和服務(wù)等級(jí),以及當(dāng)前的隊(duì)列長(zhǎng)度狀況。
3.3突發(fā)事件搶占
搶占的規(guī)則給隊(duì)列的權(quán)重設(shè)置一個(gè)特權(quán)優(yōu)先閥值X,當(dāng)某個(gè)隊(duì)列i有瞬時(shí)響應(yīng)數(shù)據(jù)包
或者當(dāng)前隊(duì)列長(zhǎng)度z;,大于嚴(yán)重?fù)砣A(yù)警長(zhǎng)度,即丄7"〉《x丄7時(shí),其中《是嚴(yán)重?fù)砣?duì)列 系數(shù),ir是最大隊(duì)列長(zhǎng)度,說(shuō)明當(dāng)前隊(duì)列嚴(yán)重?fù)砣?,該?duì)列的權(quán)重就會(huì)動(dòng)態(tài)調(diào)整,如果權(quán) 重超過(guò)特權(quán)優(yōu)先閥值x,則該隊(duì)列就有機(jī)會(huì)對(duì)當(dāng)前的時(shí)間片進(jìn)行搶占。
搶占的方法當(dāng)有突發(fā)搶占事件產(chǎn)生時(shí),當(dāng)前正在執(zhí)行的標(biāo)準(zhǔn)時(shí)間片s執(zhí)行完成后,開(kāi) 始搶占,以避免立即搶占產(chǎn)生零碎時(shí)間片,不便于時(shí)間片的管理。從下一個(gè)標(biāo)準(zhǔn)時(shí)間片開(kāi)始, 給搶占隊(duì)列分配它所需要的若干個(gè)時(shí)間片。突發(fā)事件結(jié)束后,繼續(xù)沿用本周期開(kāi)始時(shí)確定的 快照。這樣,突發(fā)事件的發(fā)生不會(huì)影響整個(gè)時(shí)間片的分布。
在每個(gè)周期T的開(kāi)始,本算法動(dòng)態(tài)計(jì)算所有隊(duì)列的權(quán)重。若搶占隊(duì)列延續(xù)到了下一個(gè)周
期T的開(kāi)始,經(jīng)計(jì)算得到的搶占隊(duì)列的權(quán)重已經(jīng)下降到特權(quán)優(yōu)先閥值X以下,則停止搶占。 若搶占隊(duì)列權(quán)重還是高于特權(quán)優(yōu)先閥值X,則繼續(xù)搶占。但當(dāng)突發(fā)事件持續(xù)一個(gè)周期T后,
若該突發(fā)事件還未結(jié)束,為了減少對(duì)其他隊(duì)列的影響,則停止該突發(fā)事件繼續(xù)搶占時(shí)間片,
將搶占隊(duì)列的權(quán)重降低到特權(quán)優(yōu)先閥值X以下。
突發(fā)事件搶占時(shí)間片后,會(huì)對(duì)當(dāng)前網(wǎng)絡(luò)狀況產(chǎn)生影響,下一個(gè)快照將根據(jù)實(shí)際的網(wǎng)絡(luò)狀 況修正時(shí)間片的預(yù)排結(jié)果。
動(dòng)態(tài)調(diào)整法流程具體描述如圖5所示。4. 隊(duì)列長(zhǎng)度閥值的定義
如圖6, i是隊(duì)列標(biāo)號(hào),Zfw"表示隊(duì)列長(zhǎng)度下限,Z7表示隊(duì)列長(zhǎng)度上限,f表示隊(duì) 列當(dāng)前的實(shí)際長(zhǎng)度。《、6>2、《分別是正常隊(duì)列系數(shù)、擁塞隊(duì)列系數(shù)和嚴(yán)重?fù)砣?duì)列系數(shù),
且(K《〈02〈6^a。
當(dāng)if則 <=丄「 <=《x《p時(shí),表示隊(duì)列i處于正常狀態(tài)。當(dāng)z卩 < 《濯或>《x丄r
時(shí),表示該隊(duì)列處于非正常狀態(tài)。其中,當(dāng)ZTW〈lf'""時(shí),表示該隊(duì)列處于空閑狀態(tài),為不
活躍隊(duì)列;當(dāng)《'股〉二Zf"'時(shí),表示該隊(duì)列為活躍隊(duì)列。當(dāng)《xZ^〈Lr'〈二《xif時(shí),表
示該隊(duì)列處于繁忙狀態(tài);當(dāng)ZT"〉《x^T時(shí),表示該隊(duì)列出現(xiàn)擁塞,此時(shí),該隊(duì)列有機(jī)會(huì)分 配到空時(shí)間片;當(dāng)iT"〉《xZf時(shí),表示該隊(duì)列發(fā)生嚴(yán)重?fù)砣?,該?duì)列可以突發(fā)搶占時(shí)間片。
5. 隊(duì)列權(quán)重
定義隊(duì)列的權(quán)重W以隊(duì)列對(duì)應(yīng)業(yè)務(wù)在SLA中簽訂的QoS參數(shù)為基礎(chǔ),根據(jù)當(dāng)前隊(duì)列長(zhǎng)度 動(dòng)態(tài)調(diào)整,其值為靜態(tài)權(quán)重w,和動(dòng)態(tài)權(quán)重WD之和,艮口
=f (d, j, b) +h (丄,) 其中,f、 h表示函數(shù)名,d、 j、 b、 £,分別表示隊(duì)列所對(duì)應(yīng)業(yè)務(wù)簽訂的最小時(shí)延、最小抖動(dòng)、 最大帶寬和隊(duì)列預(yù)警長(zhǎng)度差。 5.1靜態(tài)權(quán)重的定義
在用快照法安排各個(gè)隊(duì)列的時(shí)間片分布時(shí),要綜合考慮各個(gè)隊(duì)列的QoS參數(shù)。因此需要對(duì) 各個(gè)隊(duì)列設(shè)定不同的靜態(tài)權(quán)重。
在靜態(tài)權(quán)重M^的計(jì)算公式中主要考慮隊(duì)列所對(duì)應(yīng)業(yè)務(wù)的最小時(shí)延d、最小抖動(dòng)j和最大 帶寬b三個(gè)SLA參數(shù)。為了保證公平性,采用通過(guò)ISP得到的所有用戶的時(shí)延、抖動(dòng)、帶寬 統(tǒng)計(jì)平均值(S、 ^、 5)。由于時(shí)延、抖動(dòng)與權(quán)重成反比,而帶寬與權(quán)重成正比,為了反應(yīng) 這種關(guān)系,所以定義
w, f (d, j, b)
=aX (1/d) / (1/S)+"X (1/j) / (1/》+;/Xb/5 =ar X d / d+y9 X j' / j+y Xb / 5 ; 其中a、 〃、 7分別為時(shí)延、抖動(dòng)、帶寬的數(shù)量級(jí)調(diào)節(jié)系數(shù)。由于3 /d、 ) / j、 b / 5 三個(gè)數(shù)值的數(shù)量級(jí)可能會(huì)有很大的差異,所以為了權(quán)重計(jì)算的公平性,引入數(shù)量級(jí)調(diào)節(jié)系數(shù), 使aX孑/d、 y9X^/j、 yXb/5能夠處于相同的數(shù)量級(jí)。因?yàn)殪o態(tài)權(quán)重是根據(jù)各個(gè)業(yè) 務(wù)SLA得到的,所以靜態(tài)權(quán)重在路由器啟動(dòng)后是固定不變的,除非人為的更新路由器內(nèi)部各 個(gè)業(yè)務(wù)的SLA參數(shù)的配置。 5.2動(dòng)態(tài)權(quán)重的定義
因?yàn)樵谟?jì)算靜態(tài)權(quán)重M^時(shí),各個(gè)隊(duì)列所對(duì)應(yīng)業(yè)務(wù)的SLA參數(shù)以及時(shí)延、抖動(dòng)、帶寬的數(shù) 量級(jí)調(diào)節(jié)系數(shù)ar、 -、 ;r均為靜態(tài)變量, 一旦設(shè)定它們的值,那么在相當(dāng)長(zhǎng)的一段時(shí)間內(nèi), 靜態(tài)權(quán)重,,的值是固定不變的。而路由器內(nèi)部各個(gè)轉(zhuǎn)發(fā)隊(duì)列均在實(shí)時(shí)變動(dòng),為了動(dòng)態(tài)反映各 個(gè)隊(duì)列的數(shù)據(jù)包需轉(zhuǎn)發(fā)的迫切程度,體現(xiàn)各個(gè)隊(duì)列在短時(shí)間內(nèi)的相對(duì)優(yōu)先級(jí),還需要對(duì)各個(gè) 隊(duì)列設(shè)定即時(shí)的動(dòng)態(tài)權(quán)重。
在動(dòng)態(tài)權(quán)重M^的計(jì)算公式中主要考慮隊(duì)列的實(shí)時(shí)擁塞情況,即考慮隊(duì)列預(yù)警長(zhǎng)度差 £,=《洲 一 《x丄,,為隊(duì)列的當(dāng)前隊(duì)列長(zhǎng)度《(w減去隊(duì)列擁塞閥值《與隊(duì)列長(zhǎng)度上限《〃 之積,即《xZ^, i表示隊(duì)列序號(hào)。我們定義 wD = h (厶)
其中p為微調(diào)系數(shù),由于隊(duì)列權(quán)重是在保證各個(gè)業(yè)務(wù)QoS參數(shù)的大前提下,兼顧各個(gè)隊(duì)
列的實(shí)時(shí)突發(fā)情況,所以定義微調(diào)系數(shù)p,使函數(shù)h (丄,)的值比函數(shù)f (d, j, b)的值小
一個(gè)數(shù)量級(jí)。隊(duì)列預(yù)警長(zhǎng)度差z,的取值可以為正數(shù)或負(fù)數(shù),則動(dòng)態(tài)權(quán)重M^也可以為正或?yàn)?br>
負(fù),這樣,就可以基于靜態(tài)權(quán)重,在一定范圍內(nèi)微調(diào)各個(gè)隊(duì)列的權(quán)重,使各個(gè)隊(duì)列的時(shí)間片 預(yù)排更為合理。
隊(duì)列的動(dòng)態(tài)權(quán)重在每個(gè)周期T的開(kāi)始(或結(jié)束)計(jì)算。
為了方便描述,我們假定有如下應(yīng)用實(shí)例
最初用戶A,, A2,…,A,.與某個(gè)運(yùn)營(yíng)商P簽訂好SLA協(xié)議,并將每個(gè)用戶的SLA協(xié)議信 息錄入到數(shù)據(jù)庫(kù)。用戶A,, A2,…,A,.登錄時(shí),接入網(wǎng)關(guān)C的認(rèn)證模塊對(duì)各用戶進(jìn)行身份認(rèn) 證。通過(guò)認(rèn)證的用戶A,. A2.…,凡,分別提出業(yè)務(wù)請(qǐng)求。如用戶A,向DiffServ域內(nèi)的一 臺(tái)FTP服務(wù)器D提請(qǐng)F(tuán)TP下載業(yè)務(wù),……,用戶&提出高清晰視頻業(yè)務(wù)請(qǐng)求。接入網(wǎng)關(guān)C 對(duì)各業(yè)務(wù)請(qǐng)求進(jìn)行接納控制,判斷當(dāng)前網(wǎng)絡(luò)資源是否能滿足用戶提請(qǐng)的業(yè)務(wù)要求。如果能滿 足,就進(jìn)行數(shù)據(jù)傳輸。各數(shù)據(jù)流在傳輸過(guò)程中,經(jīng)過(guò)路由器E。
各數(shù)據(jù)流到達(dá)路由器輸入接口;速率檢測(cè)器對(duì)入口處的流量進(jìn)行統(tǒng)計(jì);標(biāo)記器對(duì)不同業(yè) 務(wù)流的數(shù)據(jù)包進(jìn)行丟棄優(yōu)先級(jí)的標(biāo)記;根據(jù)SLA映射的QoS參數(shù),把數(shù)據(jù)包劃分成各個(gè)業(yè)務(wù) 類(lèi),每個(gè)業(yè)務(wù)類(lèi)的數(shù)據(jù)包被歸入一個(gè)對(duì)應(yīng)的隊(duì)列。路由器E開(kāi)始按照本發(fā)明的調(diào)度方法轉(zhuǎn)發(fā) 數(shù)據(jù)包,具體實(shí)施方式
為
(1) .對(duì)路由器上的所有業(yè)務(wù)隊(duì)列,根據(jù)SLA映射的QoS參數(shù),計(jì)算靜態(tài)隊(duì)列權(quán)重wy
(2) .判斷路由器上是否有等待預(yù)排的隊(duì)列,即隊(duì)列長(zhǎng)度大于0的隊(duì)列,如果沒(méi)有,轉(zhuǎn)(23), 否則繼續(xù);
(3) .根據(jù)當(dāng)前路由器資源,對(duì)所有等待預(yù)排的隊(duì)列計(jì)算可分配的時(shí)間片個(gè)數(shù);假設(shè)當(dāng)前
有n個(gè)等待預(yù)排的隊(duì)列,第i個(gè)隊(duì)列的時(shí)間片數(shù)為a/;;
(4) .讀取一個(gè)待預(yù)排的隊(duì)列i,從時(shí)間片分布軸上從頭開(kāi)始査找出第一個(gè)為空的位置,插 入該隊(duì)列第一個(gè)時(shí)間片,且使隊(duì)列i的時(shí)間片數(shù)^減1;
(5) .為隊(duì)列i計(jì)算出下一個(gè)時(shí)間片的插入位置下一個(gè)時(shí)間片與當(dāng)前時(shí)間片間隔 勺=1_力/《」個(gè)時(shí)間片,這里《為隊(duì)列i所對(duì)應(yīng)業(yè)務(wù)在SLA中簽訂的最小時(shí)延't為標(biāo)準(zhǔn)時(shí) 間片的大??;判斷該位置是否空閑,若不空閑,轉(zhuǎn)步驟7);空閑,則繼續(xù);
(6) .插入隊(duì)列i的時(shí)間片,轉(zhuǎn)(10);
(7) .判斷此隊(duì)列是否為延時(shí)敏感的隊(duì)列,若不是敏感隊(duì)列,轉(zhuǎn)(9);
(8) .從沖突點(diǎn)向前査找,找出離沖突點(diǎn)最近的空位點(diǎn)插入時(shí)間片,轉(zhuǎn)(10);
(9) .從沖突點(diǎn)向后査找,找出離沖突點(diǎn)最近的空位點(diǎn)插入時(shí)間片;
(10) .使隊(duì)列i的時(shí)間片數(shù)^減1,并判斷M是否大于O,如果是,則轉(zhuǎn)(5);
(11) .判斷是否有等待預(yù)排時(shí)間片的隊(duì)列,如果有,轉(zhuǎn)(4);沒(méi)有,則繼續(xù);
(12) .從當(dāng)前時(shí)刻開(kāi)始,按已排列好的時(shí)間片順序?qū)I(yè)務(wù)隊(duì)列進(jìn)行調(diào)度,轉(zhuǎn)發(fā)數(shù)據(jù)包;
(13) .判斷是否到達(dá)一個(gè)周期T,若未達(dá)到,轉(zhuǎn)(17);若到達(dá)一個(gè)周期T,繼續(xù);
(14) .根據(jù)當(dāng)前路由器資源和隊(duì)列狀態(tài)計(jì)算所有隊(duì)列的動(dòng)態(tài)權(quán)重;判斷是否到達(dá)時(shí)間間隔
9IOT,若己到達(dá)時(shí)間間隔10T,重置周期計(jì)數(shù)器,轉(zhuǎn)(2),進(jìn)行快照刷新;
(15) .判斷處于非正常狀態(tài)的隊(duì)列數(shù)與總隊(duì)列數(shù)的比值是否達(dá)到快照更新觸發(fā)閥值V,若 達(dá)到快照更新觸發(fā)閥值V,轉(zhuǎn)(2);
(16) .本周期T沿用上一個(gè)周期T的快照,轉(zhuǎn)(12);
(17) .判斷當(dāng)前是否出現(xiàn)空時(shí)間片且空時(shí)間片與標(biāo)準(zhǔn)時(shí)間片的比值達(dá)到轉(zhuǎn)讓閥值R,若是, 則轉(zhuǎn)(19);
(18) .判斷是否有隊(duì)列出現(xiàn)突發(fā)搶占事件,若有,則選擇一個(gè)權(quán)重最高的隊(duì)列,轉(zhuǎn)(20);
(19) .挑選當(dāng)前權(quán)重最高的隊(duì)列,占用該空時(shí)間片,轉(zhuǎn)(12);
(20) .判斷當(dāng)前標(biāo)準(zhǔn)時(shí)間片是否執(zhí)行完成,若未完成,等待該時(shí)間片執(zhí)行完成;
(21) .搶占當(dāng)前時(shí)間片;
(22) .判斷是否搶占超時(shí),若超時(shí),轉(zhuǎn)(12);若未超時(shí),判斷搶占事件是否完成,若完成,
轉(zhuǎn)(12),若未完成,轉(zhuǎn)(21);
(23) .結(jié)束。
一8—
權(quán)利要求
1. 一種基于服務(wù)等級(jí)協(xié)議的時(shí)間片散列調(diào)度方法,其特征在于該方法包括時(shí)間片描述機(jī)制、時(shí)間片的快速預(yù)排方法和綜合QoS參數(shù)的動(dòng)態(tài)隊(duì)列權(quán)重,能夠合理分配資源,確保服務(wù)質(zhì)量,達(dá)到整體精確的QoS優(yōu)化和SLA保障;該方法所包含的步驟為步驟1). 對(duì)路由器上的所有業(yè)務(wù)隊(duì)列,根據(jù)SLA映射的QoS參數(shù),計(jì)算靜態(tài)隊(duì)列權(quán)重wS;步驟2). 判斷路由器上是否有等待預(yù)排的隊(duì)列,即隊(duì)列長(zhǎng)度大于0的隊(duì)列,如果沒(méi)有,轉(zhuǎn)步驟23),否則繼續(xù);步驟3). 根據(jù)當(dāng)前路由器資源,對(duì)所有等待預(yù)排的隊(duì)列計(jì)算可分配的時(shí)間片個(gè)數(shù),設(shè)第i個(gè)隊(duì)列的時(shí)間片數(shù)為Mi;步驟4). 讀取一個(gè)待預(yù)排的隊(duì)列i,從時(shí)間片分布軸上從頭開(kāi)始查找出第一個(gè)為空的位置,插入該隊(duì)列第一個(gè)時(shí)間片,且使隊(duì)列i的時(shí)間片數(shù)Mi減1;步驟5). 為隊(duì)列i計(jì)算出下一個(gè)時(shí)間片的插入位置下一個(gè)時(shí)間片與當(dāng)前時(shí)間片間隔個(gè)時(shí)間片,這里d1為隊(duì)列i所對(duì)應(yīng)業(yè)務(wù)等級(jí)在SLA中簽訂的最小時(shí)延,t為標(biāo)準(zhǔn)時(shí)間片的大??;判斷該位置是否空閑,若不空閑,轉(zhuǎn)步驟7);空閑,則繼續(xù);步驟6). 插入隊(duì)列i的時(shí)間片,轉(zhuǎn)步驟10);步驟7). 判斷此隊(duì)列是否為延時(shí)敏感的隊(duì)列,若不是敏感隊(duì)列,轉(zhuǎn)步驟9);步驟8). 從沖突點(diǎn)向前查找,找出離沖突點(diǎn)最近的空位點(diǎn)插入時(shí)間片,轉(zhuǎn)步驟10);步驟9). 從沖突點(diǎn)向后查找,找出離沖突點(diǎn)最近的空位點(diǎn)插入時(shí)間片;步驟10). 使隊(duì)列i的時(shí)間片數(shù)Mi減1,并判斷Mi是否大于0,如果是,則轉(zhuǎn)步驟5);步驟11). 判斷是否有等待預(yù)排時(shí)間片的隊(duì)列,如果有,轉(zhuǎn)步驟4);沒(méi)有,則繼續(xù);步驟12). 從當(dāng)前時(shí)刻開(kāi)始,按已排列好的時(shí)間片順序?qū)I(yè)務(wù)隊(duì)列進(jìn)行調(diào)度;步驟13). 判斷是否到達(dá)一個(gè)周期T,若未達(dá)到,轉(zhuǎn)步驟17);若到達(dá)一個(gè)周期T,繼續(xù);步驟14). 根據(jù)當(dāng)前路由器資源和隊(duì)列狀態(tài)計(jì)算所有隊(duì)列的動(dòng)態(tài)權(quán)重;判斷是否到達(dá)時(shí)間間隔10T,若已到達(dá)時(shí)間間隔10T,重置周期計(jì)數(shù)器,轉(zhuǎn)步驟2);步驟15). 判斷處于非正常狀態(tài)的隊(duì)列數(shù)與總隊(duì)列數(shù)的比值是否達(dá)到快照更新觸發(fā)閥值V,若達(dá)到快照更新觸發(fā)閥值V,轉(zhuǎn)步驟2);步驟16). 本周期T沿用上一個(gè)周期T的快照,轉(zhuǎn)步驟12);步驟17). 判斷當(dāng)前是否出現(xiàn)空時(shí)間片且空時(shí)間片與標(biāo)準(zhǔn)時(shí)間片的比值達(dá)到轉(zhuǎn)讓閥值R,若是,則轉(zhuǎn)步驟19);步驟18). 判斷是否有隊(duì)列出現(xiàn)突發(fā)搶占事件,若有,則選擇一個(gè)權(quán)重最高的隊(duì)列,轉(zhuǎn)步驟20);步驟19). 挑選當(dāng)前權(quán)重最高的隊(duì)列,占用該空時(shí)間片,轉(zhuǎn)步驟12);步驟20). 判斷當(dāng)前標(biāo)準(zhǔn)時(shí)間片是否執(zhí)行完成,若未完成,等待該時(shí)間片執(zhí)行完成;步驟21). 搶占當(dāng)前時(shí)間片;步驟22). 判斷是否搶占超時(shí),若超時(shí),轉(zhuǎn)步驟12);若未超時(shí),判斷搶占事件是否完成,若完成,轉(zhuǎn)步驟12),若未完成,轉(zhuǎn)步驟21);步驟23). 全過(guò)程結(jié)束。
全文摘要
基于服務(wù)等級(jí)協(xié)議的時(shí)間片散列調(diào)度方法包括時(shí)間片描述機(jī)制、時(shí)間片的快速預(yù)排法和綜合QoS參數(shù)的動(dòng)態(tài)隊(duì)列權(quán)重,能夠合理分配資源,確保服務(wù)質(zhì)量,達(dá)到整體精確的QoS優(yōu)化和SLA保障;本方法中提出時(shí)間片描述機(jī)制,是為了精確保障各個(gè)業(yè)務(wù)類(lèi)的時(shí)延、抖動(dòng)、帶寬、丟包率等QoS參數(shù);提出快照法預(yù)排,是為了在一段時(shí)間內(nèi)預(yù)分配資源,提高各個(gè)隊(duì)列的總體服務(wù)質(zhì)量;為了克服實(shí)際網(wǎng)絡(luò)情況變化帶來(lái)的影響,提出綜合QoS參數(shù)的動(dòng)態(tài)隊(duì)列權(quán)重,即根據(jù)當(dāng)前實(shí)際的路由器資源和隊(duì)列狀況動(dòng)態(tài)調(diào)整隊(duì)列的權(quán)重。本調(diào)度方法提出時(shí)間片描述機(jī)制,通過(guò)對(duì)時(shí)間片的預(yù)排和動(dòng)態(tài)調(diào)整,精確保證QoS的多種參數(shù)。
文檔編號(hào)H04L12/56GK101442495SQ20081024324
公開(kāi)日2009年5月27日 申請(qǐng)日期2008年12月26日 優(yōu)先權(quán)日2008年12月26日
發(fā)明者超 吳, 張登銀, 正 李, 程春玲 申請(qǐng)人:南京郵電大學(xué)