引言
隨著VoIP電話、視頻會(huì)議和在線視頻等多媒體業(yè)務(wù)迅猛發(fā)展,對(duì)網(wǎng)絡(luò)性能提出了與傳統(tǒng)的網(wǎng)頁(yè)瀏覽、FTP服務(wù)、E-mail等業(yè)務(wù)不同的需求,不同類型的業(yè)務(wù)具有各自明確的服務(wù)質(zhì)量(QoS,Quality of Service)成為現(xiàn)代通信網(wǎng)絡(luò)的一大特征。旨在提供傳輸距離更遠(yuǎn)、速度更高的無線城域網(wǎng)規(guī)范—WiMax標(biāo)準(zhǔn)中,無線信道的位置依賴性、突發(fā)和高的信道誤碼也成為其QoS要面對(duì)的首要問題。針對(duì)不同的應(yīng)用需求,802.16d標(biāo)準(zhǔn)中為QoS定義了四種業(yè)務(wù)類型,明確規(guī)范了交互機(jī)制,但將調(diào)度等內(nèi)容留待開發(fā)者自行解決。
文獻(xiàn)[2]提出一種新型的CIF-Q調(diào)度算法,能夠較好地適應(yīng)無線特性、滿足實(shí)時(shí)要求,但缺乏對(duì)多類型業(yè)務(wù)的區(qū)別服務(wù)。文獻(xiàn)[3]提出的CSDPS算法能夠不依賴于信道特性,卻無法保證時(shí)延限制。將文獻(xiàn)[4]提出的分級(jí)體系結(jié)構(gòu)應(yīng)用到WiMax的QoS調(diào)度架構(gòu)中,提出了兩層的分組調(diào)度算法,針對(duì)不同類型業(yè)務(wù)的QoS需求,在良好適應(yīng)無線特性的同時(shí),實(shí)現(xiàn)對(duì)不同業(yè)務(wù)應(yīng)用的支持。
IEEE 802.16d的服務(wù)類型
主動(dòng)授予服務(wù)(UGS,Unsolicited Grant Service)
UGS業(yè)務(wù)用于傳輸周期性的、包大小固定的實(shí)時(shí)數(shù)據(jù)業(yè)務(wù),其典型業(yè)務(wù)是VoIP電話。UGS業(yè)務(wù)一旦申請(qǐng)成功,在傳輸過程中就不需要再去申請(qǐng)。BS周期性地強(qiáng)制調(diào)度,不接收來自SS的競(jìng)爭(zhēng)請(qǐng)求機(jī)會(huì),同時(shí)禁止使用捎帶請(qǐng)求,這樣避免了帶寬請(qǐng)求引入的開銷和時(shí)延。
實(shí)時(shí)輪詢服務(wù)(rtPS,Real-time Polling Service)
rtPS主要用于支持周期性的、包大小可變的實(shí)時(shí)業(yè)務(wù),如MPEG視頻業(yè)務(wù)。rtPS提供周期性的單播輪詢帶寬請(qǐng)求機(jī)會(huì),從而使得該連接能夠周期地改變帶寬請(qǐng)求。BS也不接收來自SS的其他競(jìng)爭(zhēng)請(qǐng)求機(jī)會(huì)和捎帶請(qǐng)求。這種服務(wù)比UGS的請(qǐng)求開銷大,但能按需動(dòng)態(tài)分配帶寬。
非實(shí)時(shí)輪詢服務(wù)(nrtPS,Non-Real-time Polling Service)
nrtPS主要用于支持非周期、變長(zhǎng)分組的非實(shí)時(shí)VBR服務(wù)流,如高帶寬的FTP業(yè)務(wù)流,它有最小速率要求。BS提供比rtPS輪詢間隔更長(zhǎng)的周期或不定期的單播請(qǐng)求機(jī)會(huì),SS也可以使用競(jìng)爭(zhēng)和捎帶請(qǐng)求的方式來請(qǐng)求帶寬。
盡力而為服務(wù)(BE,Best Effort Service)
BE主要用于支持非實(shí)時(shí)、無任何速率和時(shí)延要求的分組數(shù)據(jù)業(yè)務(wù),其穩(wěn)定性由高層協(xié)議來保證。典型業(yè)務(wù)是Telnet和Http服務(wù)。SS可以隨時(shí)提出帶寬申請(qǐng),允許使用任何類型的競(jìng)爭(zhēng)請(qǐng)求機(jī)會(huì)和捎帶請(qǐng)求,但是不允許它們使用任何單播輪詢請(qǐng)求機(jī)會(huì)。
QoS調(diào)度架構(gòu)的設(shè)計(jì)
本架構(gòu)的設(shè)計(jì)見圖 1。服務(wù)請(qǐng)求通過分類器后,按照QoS需求特性,將業(yè)務(wù)流分組放入不同隊(duì)列。從隊(duì)列中取出的請(qǐng)求加以流量監(jiān)控,保證在對(duì)用戶流量進(jìn)行規(guī)約的同時(shí),允許保持業(yè)務(wù)流限定范圍內(nèi)的突發(fā)性。通過流量監(jiān)控后的服務(wù)請(qǐng)求先進(jìn)入下層調(diào)度,針對(duì)同種排隊(duì)類型的業(yè)務(wù)進(jìn)行調(diào)度,包括實(shí)時(shí)調(diào)度、非實(shí)時(shí)調(diào)度和BE調(diào)度。上層總調(diào)度針對(duì)不同種排隊(duì)類型業(yè)務(wù)進(jìn)行總體統(tǒng)籌安排。下面將對(duì)這些模塊進(jìn)行深入分析。主要由下面幾個(gè)部分組成:
圖1 調(diào)度構(gòu)架圖
調(diào)度控制器
四種類型業(yè)務(wù)的帶寬請(qǐng)求方式不同,對(duì)時(shí)延、抖動(dòng)和速率等參數(shù)的要求也不同。考慮到無線信道特性,采用如下調(diào)度控制策略:為UGS業(yè)務(wù)預(yù)留一定帶寬BUGS,維持特征表,用于定期給SS分配相應(yīng)的帶寬來發(fā)送UGS業(yè)務(wù)流。對(duì)于rtPS業(yè)務(wù),通過確定其單播輪詢間隔的參數(shù)值,可以調(diào)整實(shí)時(shí)業(yè)務(wù)傳輸機(jī)會(huì)的多寡和帶寬分配量。對(duì)于nrtPS業(yè)務(wù),通過確定其單播輪詢間隔來調(diào)整獲取傳輸機(jī)會(huì)的周期,保證非實(shí)時(shí)業(yè)務(wù)的最小速率。并檢查帶寬的空余量,決定是否對(duì)nrtPS業(yè)務(wù)的競(jìng)爭(zhēng)和捎帶請(qǐng)求進(jìn)行授權(quán)。按照上述思想,將周期性的、具有恒定速率的UGS業(yè)務(wù)流、rtPS和nrtPS的輪詢流放至實(shí)時(shí)隊(duì)列,將nrtPS業(yè)務(wù)流的帶寬請(qǐng)求放至非實(shí)時(shí)隊(duì)列,而將沒有QoS要求的BE業(yè)務(wù)流放至BE隊(duì)列。
流量監(jiān)控
為了使上游流量適應(yīng)可用的帶寬資源,避免不必要的報(bào)文丟棄和擁塞,系統(tǒng)要對(duì)分類后的業(yè)務(wù)流進(jìn)行流量監(jiān)控。本模塊采用令牌桶算法,策略如下:當(dāng)報(bào)文到來后,只要令牌桶中有令牌,無論數(shù)量是否足夠,都可以轉(zhuǎn)發(fā)報(bào)文,同時(shí)令牌桶中的令牌量按報(bào)文的長(zhǎng)度做相應(yīng)的減少。當(dāng)令牌數(shù)量小于報(bào)文長(zhǎng)度時(shí),就可以欠債轉(zhuǎn)發(fā),即轉(zhuǎn)發(fā)后令牌桶中令牌數(shù)目為負(fù),在下次添加令牌的時(shí)候,先還清所欠債務(wù),再繼續(xù)轉(zhuǎn)發(fā)報(bào)文。這種借貸處理方法在處理突發(fā)報(bào)文時(shí)有優(yōu)勢(shì),能夠在限制流量的同時(shí),保證報(bào)文發(fā)送的連續(xù)性,很好地除抖動(dòng)的影響。系統(tǒng)為實(shí)時(shí)業(yè)務(wù)流預(yù)留一定的帶寬,并優(yōu)先處理實(shí)時(shí)業(yè)務(wù)。非實(shí)時(shí)業(yè)務(wù)流和BE業(yè)務(wù)流的突發(fā)性較高,業(yè)務(wù)量相對(duì)繁重,這類業(yè)務(wù)是流量監(jiān)控的工作主要對(duì)象。
實(shí)時(shí)調(diào)度器
實(shí)時(shí)調(diào)度器負(fù)責(zé)對(duì)帶寬和延時(shí)要求比較嚴(yán)格的實(shí)時(shí)業(yè)務(wù)流,包括UGS業(yè)務(wù)流、rtPS業(yè)務(wù)流和nrtPS業(yè)務(wù)的輪詢流。由于業(yè)務(wù)的實(shí)時(shí)性,在業(yè)務(wù)延時(shí)后,無法也無需補(bǔ)償其帶寬。也就是說一定要保證實(shí)時(shí)業(yè)務(wù)的時(shí)延需要,盡量避免某一實(shí)時(shí)業(yè)務(wù)長(zhǎng)時(shí)間等待現(xiàn)象,同時(shí)使各業(yè)務(wù)流的延時(shí)在可容忍的門限內(nèi)。考慮到這些因素,實(shí)時(shí)調(diào)度器中采用不依賴于信道狀態(tài)的包公平排隊(duì)CIF-Q(Channel Independent Fair Queuing)算法。CIF-Q算法的核心是起始時(shí)間公平排隊(duì)(SFQ,Start time Fair Queuing)算法,通過參考無錯(cuò)服務(wù)系統(tǒng),業(yè)務(wù)流可劃分為領(lǐng)先流、落后流和正常流三類。流的落后(領(lǐng)先)度為無錯(cuò)服務(wù)和真實(shí)服務(wù)之差。如果領(lǐng)先流獲得了一個(gè)調(diào)度機(jī)會(huì),則以概率α放棄它,被放棄的機(jī)會(huì)分配給具有最大落后度的落后流。在這種補(bǔ)償策略下,落后流可以接受額外服務(wù),而同步流不會(huì)受到干擾,領(lǐng)先流將會(huì)優(yōu)美地降低它們的服務(wù)。概率α的值是由網(wǎng)絡(luò)狀態(tài)和實(shí)時(shí)業(yè)務(wù)流的QoS參數(shù)(授權(quán)大小、輪詢間隔、最大輪詢時(shí)延抖動(dòng)和最小預(yù)約速率等)決定的。
下面是對(duì)算法模型的偽代碼描述,并將在NS2仿真中采用C++實(shí)現(xiàn)。
參數(shù)初始值:
Vi=max(Vi, min{Vj | j∈A})
lagi=0
參數(shù)更新:
Vi+=packetik. length / ratei
lagi±=packetik·length
業(yè)務(wù)調(diào)度:
選擇業(yè)務(wù)流i = min{Vi | iA};若業(yè)務(wù)流i落后,并可正常發(fā)送,則調(diào)度業(yè)務(wù)流i,更新Vi;若業(yè)務(wù)流i落后,但不可正常發(fā)送,則選擇業(yè)務(wù)流j = max{lagk/rk | k∈A ∧packetjk可發(fā)送}進(jìn)行調(diào)度,更新Vi、lagi、lagj;若業(yè)務(wù)流i領(lǐng)先,則以概率1-a正常調(diào)度業(yè)務(wù)流i,更新Vi;概率a放棄調(diào)度業(yè)務(wù)流i,選擇業(yè)務(wù)流j=max{lagk/rk | k∈A ∧packetjk可發(fā)送}進(jìn)行調(diào)度,更新Vi、lagi、lagj;
其中:Vi:業(yè)務(wù)流i的虛擬時(shí)間
lagi:業(yè)務(wù)流i的落后/領(lǐng)先度
packetik:業(yè)務(wù)流i的第k個(gè)包
ratei:業(yè)務(wù)流i的速率
非實(shí)時(shí)調(diào)度器
非實(shí)時(shí)調(diào)度器主要負(fù)責(zé)實(shí)時(shí)性較弱的nrtPS業(yè)務(wù)流。非實(shí)時(shí)業(yè)務(wù)對(duì)延時(shí)的要求不高,更加關(guān)注的是在適應(yīng)無線鏈路特性的同時(shí),如何應(yīng)對(duì)繁重的業(yè)務(wù)流、保證吞吐量。基于這些理由,非實(shí)時(shí)調(diào)度器采用基于業(yè)務(wù)類型排隊(duì)(CBQ,Class-Based Queuing)的適應(yīng)無線信道狀態(tài)調(diào)度算法CSDPS(Channel State Dependent Packet Scheduling)。CSDPS部分用于處理無線鏈路的變化,它將每一個(gè)SS的分組數(shù)據(jù)信息都保存在一個(gè)獨(dú)立的隊(duì)列中,并按照先入先出(FIFO)順序處理每個(gè)隊(duì)列中的分組數(shù)據(jù)。設(shè)置一個(gè)鏈路狀態(tài)監(jiān)視器,用來監(jiān)視所有SS的鏈路狀態(tài)信息,當(dāng)某無線鏈路處于異常狀態(tài)時(shí),則標(biāo)記該隊(duì)列,使之暫停服務(wù)。一段時(shí)間后取消對(duì)它的標(biāo)記,該隊(duì)列可以重新進(jìn)行資源調(diào)度。CBQ跟蹤每個(gè)SS隊(duì)列在確定時(shí)間間隔內(nèi)收到的業(yè)務(wù)數(shù)量,并且限制超過應(yīng)分配共享帶寬的SS在未來分配資源的大小,提供整個(gè)無線信道共享的公平性機(jī)制。
參數(shù)初始化:
blocktimei=0
consumei=0
參數(shù)更新:
blocktimei+=d
consumei+= packetik·length
業(yè)務(wù)調(diào)度:
每間隔d時(shí)間重新初始化consumei;更新blocktimei;blocktimei >a,取消對(duì)隊(duì)列SSi的標(biāo)注;選擇未被標(biāo)注且consumei未超標(biāo)的隊(duì)列SSi;若隊(duì)列SSi的數(shù)據(jù)流可正常發(fā)送,則調(diào)度packetik,并更新consumei;若隊(duì)列SSi的數(shù)據(jù)流不可正常發(fā)送,則標(biāo)注SSi,并初始化blocktimei;
其中:blocktimei:隊(duì)列SSi的暫停時(shí)間
consumei:隊(duì)列SSi已消耗的數(shù)據(jù)量
packetik:隊(duì)列SSi的第k個(gè)數(shù)據(jù)包
a:當(dāng)隊(duì)列被標(biāo)注后,恢復(fù)正常所需時(shí)間
d:時(shí)間間隔量
BE調(diào)度器
BE調(diào)度器主要負(fù)責(zé)對(duì)服務(wù)質(zhì)量不作要求的BE業(yè)務(wù)流,不須為其提供完備的QoS保證。考慮到BE業(yè)務(wù)流的典型業(yè)務(wù)是Internet網(wǎng)絡(luò)瀏覽等,實(shí)時(shí)性要求較低,無須考慮服務(wù)中斷的應(yīng)對(duì),采用簡(jiǎn)單的先入先出(FIFO,F(xiàn)irst In First Out)算法即可滿足其需求。
總調(diào)度器
總調(diào)度器負(fù)責(zé)對(duì)不同類型的業(yè)務(wù)進(jìn)行調(diào)度,在體現(xiàn)各種業(yè)務(wù)享有不同級(jí)別服務(wù)質(zhì)量的同時(shí),還要在三種子調(diào)度之間找到一個(gè)平衡點(diǎn),達(dá)到相對(duì)公平的目的,防止諸如實(shí)時(shí)業(yè)務(wù)壟斷帶寬或?qū)崟r(shí)業(yè)務(wù)被阻塞等現(xiàn)象的發(fā)生。這包含兩個(gè)方面的內(nèi)容:一、穩(wěn)定三類業(yè)務(wù)間的結(jié)構(gòu);二、適應(yīng)業(yè)務(wù)流變化。為此,總調(diào)度器采取如下策略和措施:為實(shí)時(shí)業(yè)務(wù)預(yù)留一部分帶寬BUGS,為突發(fā)流預(yù)留一部分帶寬Bburst,其余的帶寬按一定比例分配給三類業(yè)務(wù)流。當(dāng)請(qǐng)求比例外帶寬時(shí),優(yōu)先授權(quán)予實(shí)時(shí)業(yè)務(wù),非實(shí)時(shí)業(yè)務(wù)次之,BE業(yè)務(wù)最低優(yōu)先級(jí)。當(dāng)三類業(yè)務(wù)流間的帶寬需求結(jié)構(gòu)發(fā)生變化時(shí),要適當(dāng)調(diào)整帶寬的分配比例。考慮到對(duì)帶寬的充分利用,當(dāng)由于無線信道誤碼或其他原因造成某一正在傳遞數(shù)據(jù)的連接暫時(shí)中斷,系統(tǒng)會(huì)將連接所占帶寬臨時(shí)分配給別的連接,為了實(shí)現(xiàn)公平性,在暫時(shí)中斷服務(wù)的連接恢復(fù)正常后,系統(tǒng)應(yīng)對(duì)中斷連接作出帶寬補(bǔ)償。UGS等業(yè)務(wù)流實(shí)時(shí)性很強(qiáng),若連接恢復(fù)后再對(duì)連接作出帶寬補(bǔ)償沒有多大意義。對(duì)于BE業(yè)務(wù),調(diào)度不保證其服務(wù)質(zhì)量,因此BE業(yè)務(wù)也無補(bǔ)償。而nrtPS流業(yè)務(wù)量繁重,一旦中斷連接必然導(dǎo)致大量數(shù)據(jù)滯留,必須考慮連接恢復(fù)后的帶寬補(bǔ)償問題。
總調(diào)度器算法模型偽代碼描述如下:
檢查進(jìn)入調(diào)度的數(shù)據(jù)流的類型,確定此類型的比例帶寬(Brt或Bnrt或BBE)是否有剩余:若有,則進(jìn)入相應(yīng)的子調(diào)度器,并更新剩余的比例帶寬;若無,則進(jìn)入brust業(yè)務(wù)處理方法。
brust業(yè)務(wù):若Bbrust+Bremain>0,則按照rtPS>nrtPS >BE的優(yōu)先順序處理數(shù)據(jù)流,并更新Bbrust、Bremain。對(duì)未取得Bbrust的業(yè)務(wù)標(biāo)識(shí)為NeedCompensate。
業(yè)務(wù)補(bǔ)償:若Bremain>0,則對(duì)標(biāo)識(shí)為NeedCompensate的業(yè)務(wù)分配Bremain的帶寬,進(jìn)入相應(yīng)子調(diào)度,并更新Bremain。
BUGS:UGS業(yè)務(wù)保留帶寬
Brt、Bnrt、BBE:實(shí)時(shí)業(yè)務(wù)、非實(shí)時(shí)業(yè)務(wù)和BE業(yè)務(wù)的比例帶寬
Bremain:剩余帶寬
仿真結(jié)果
由UC Berkeley開發(fā)的免費(fèi)、開源的多協(xié)議網(wǎng)絡(luò)仿真軟件NS-2是一個(gè)事件驅(qū)動(dòng)的模擬器,它可以屏蔽對(duì)操作系統(tǒng)的實(shí)際訪問,近乎真實(shí)地模擬網(wǎng)絡(luò)環(huán)境。由于NS-2本身中不包含WiMax模塊,這里采用對(duì)QoS支持較為完善的長(zhǎng)庚大學(xué)開發(fā)的WiMax 2.03模塊。本文對(duì)調(diào)度架構(gòu)中所涉及的調(diào)度算法用C++進(jìn)行描述,然后采用Otcl腳本語(yǔ)言建立WiMax模擬場(chǎng)景,并獲取的仿真數(shù)據(jù)結(jié)果。針對(duì)無線信道特性導(dǎo)致的高誤碼率,本文模擬1個(gè)BS(Base Station)和4個(gè)SS(subscriber station)組成的WiMax網(wǎng)絡(luò),仿真場(chǎng)景如圖 2所示。誤碼率設(shè)為1%,最大誤碼時(shí)長(zhǎng)16個(gè)時(shí)間間隔。通過對(duì)仿真數(shù)據(jù)的分析和對(duì)比,可以得到算法的吞吐量、延時(shí)和速率等性能參數(shù)。本架構(gòu)算法與通常調(diào)度算法的對(duì)比見圖 3、圖 4(取樣時(shí)間為0.1秒)。
圖 2 仿真場(chǎng)景圖
圖 3是UGS、rtPS等實(shí)時(shí)業(yè)務(wù)在采用CIFQ算法和FIFO算法時(shí)的延時(shí)對(duì)比。可以看出,在業(yè)務(wù)擁擠,出現(xiàn)信道錯(cuò)誤時(shí),F(xiàn)IFO算法會(huì)產(chǎn)生峰值毛刺,出現(xiàn)長(zhǎng)延時(shí)現(xiàn)象。相比之下,雖然CIFQ算法的總延時(shí)增加2%,但延時(shí)波動(dòng)較為平穩(wěn),且無長(zhǎng)延時(shí)現(xiàn)象,這證明CIF-Q算法能夠在有效應(yīng)對(duì)信道錯(cuò)誤的同時(shí),滿足了實(shí)時(shí)業(yè)務(wù)的延時(shí)和抖動(dòng)需求。
圖3 實(shí)時(shí)業(yè)務(wù)延時(shí)對(duì)比圖
表1 主要性能參數(shù)對(duì)比表
圖4是非實(shí)時(shí)業(yè)務(wù)在采用CBQ-CSDPS算法和FIFO算法時(shí)的吞吐量對(duì)比。明顯可以看出,在信道現(xiàn)在錯(cuò)誤時(shí),F(xiàn)IFO算法會(huì)導(dǎo)致吞吐量急劇下降。而CBQ-CSDPS算法能夠很好應(yīng)對(duì)信道錯(cuò)誤,持續(xù)高吞吐量作業(yè),總的吞吐量比FIFO算法多出近15%。這證明CBQ-CSDPS算法更有利于非實(shí)時(shí)業(yè)務(wù)高效率地使用帶寬。
圖4 非實(shí)時(shí)業(yè)務(wù)吞吐量對(duì)比圖
在仿真無線特性的高誤碼的場(chǎng)景下,本架構(gòu)的延時(shí)、吞吐量和丟包等方面的表現(xiàn)見表 1。采用本架構(gòu)后,實(shí)時(shí)業(yè)務(wù)的延時(shí)/抖動(dòng)有明顯改善的同時(shí),吞吐量有了一定的提升,丟包率減少了約30%;對(duì)于非實(shí)時(shí)業(yè)務(wù)在采用本架構(gòu)后吞吐量提升十分顯著,丟包率也減少了約30%,但代價(jià)是延時(shí)增加了近15%。表面上看,本架構(gòu)似乎有得有失,但內(nèi)在卻有了質(zhì)的變化:本架構(gòu)以總延時(shí)的少量增加換得對(duì)延時(shí)抖動(dòng)的限制、丟包率和吞吐量的提升,從而滿足實(shí)時(shí)業(yè)務(wù)的延時(shí)和抖動(dòng)需求;非實(shí)時(shí)業(yè)務(wù)以其非注重的總延時(shí)兌得吞吐量的極大提升,滿足了非實(shí)時(shí)業(yè)務(wù)的高速率暢行。這說明本調(diào)度架構(gòu)的算法在高誤碼率的狀況下,能夠較好地滿足各類型業(yè)務(wù)需求。
結(jié)語(yǔ)
本文結(jié)合CIF-Q和CBQ-CSDPS等調(diào)度算法,提出一種適合于WiMax的MAC層QoS調(diào)度架構(gòu)。該架構(gòu)結(jié)合分級(jí)分組調(diào)度算法,充分利用帶寬控制、資源預(yù)留和流量監(jiān)控等策略和機(jī)制。通過NS仿真對(duì)算法進(jìn)行仿真,得出如下結(jié)論:①能夠適應(yīng)時(shí)間、位置相關(guān)的等無線信道特性的高誤碼率;②為不同類型業(yè)務(wù)采用相應(yīng)算法,滿足UGS和rtPS業(yè)務(wù)的實(shí)時(shí)性,保證了nrtPS業(yè)務(wù)的最小速率,兼顧了BE業(yè)務(wù)的需求;③系統(tǒng)整體具有較高吞吐量、公平性和較小時(shí)延。但在無線功耗、分布式無線網(wǎng)絡(luò)的位置相鄰等問題,還需要進(jìn)一步探討。
評(píng)論
查看更多