田 鵬
(吉林建筑大學(xué)網(wǎng)絡(luò)信息中心,長(zhǎng)春 130118)
計(jì)算機(jī)網(wǎng)絡(luò)中的數(shù)據(jù)包是經(jīng)過(guò)多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的交換設(shè)備和路由設(shè)備實(shí)現(xiàn)交換和傳輸.對(duì)于各網(wǎng)絡(luò)節(jié)點(diǎn),當(dāng)數(shù)據(jù)包的轉(zhuǎn)入速率大于該節(jié)點(diǎn)數(shù)據(jù)包的轉(zhuǎn)出速率時(shí),在該節(jié)點(diǎn)處就會(huì)產(chǎn)生擁塞.當(dāng)數(shù)據(jù)包轉(zhuǎn)入節(jié)點(diǎn)時(shí),首先進(jìn)入緩存空間排隊(duì),如果存儲(chǔ)空間不足以保存這些數(shù)據(jù)包,其中的一部分就會(huì)丟失.當(dāng)發(fā)送該數(shù)據(jù)包的數(shù)據(jù)源設(shè)備發(fā)現(xiàn)數(shù)據(jù)包傳輸超時(shí),就會(huì)重傳此數(shù)據(jù)包,導(dǎo)致更多的數(shù)據(jù)包進(jìn)入緩存排隊(duì)和丟失,數(shù)據(jù)包的重復(fù)率也隨之大幅增加[1].造成擁塞的因素很多:①當(dāng)數(shù)據(jù)包流從高速鏈路進(jìn)入路由器,由低速鏈路傳送出去時(shí),就可能產(chǎn)生擁塞;②大量數(shù)據(jù)包同時(shí)從多個(gè)接口進(jìn)入路由器而由一個(gè)接口轉(zhuǎn)發(fā)出去時(shí),就可能產(chǎn)生擁塞;③處理器速度過(guò)慢,數(shù)據(jù)包轉(zhuǎn)發(fā)速率低下也可能會(huì)產(chǎn)生擁塞.總之,轉(zhuǎn)入數(shù)據(jù)多而轉(zhuǎn)出數(shù)據(jù)少,就會(huì)產(chǎn)生網(wǎng)絡(luò)擁塞,造成局域網(wǎng)絡(luò)的癱瘓.
當(dāng)大量數(shù)據(jù)包發(fā)送至網(wǎng)絡(luò)節(jié)點(diǎn)單元時(shí),首先進(jìn)入存儲(chǔ)空間排隊(duì),如果沒(méi)有足夠的存儲(chǔ)空間來(lái)緩存報(bào)文,有些報(bào)文就會(huì)丟失.報(bào)文的丟失又可能導(dǎo)致發(fā)送該報(bào)文的主機(jī)或路由器因超時(shí)而重傳,再度擁塞、再度重傳,嚴(yán)重時(shí)甚至?xí)a(chǎn)生網(wǎng)絡(luò)擁塞崩潰,整個(gè)局域網(wǎng)絡(luò)陷入癱瘓.所以需要采用一些控制策略對(duì)網(wǎng)絡(luò)擁塞進(jìn)行管理.當(dāng)擁塞發(fā)生時(shí),節(jié)點(diǎn)交換設(shè)備(路由器、交換機(jī)等)采取一定策略對(duì)數(shù)據(jù)包進(jìn)行調(diào)度,決定哪些數(shù)據(jù)包可優(yōu)先發(fā)送、哪些數(shù)據(jù)包可以丟棄,這些策略就稱為擁塞管理策略.策略一般分為4種:先入先出隊(duì)列FIFO;優(yōu)先權(quán)隊(duì)列方式PQ;定制隊(duì)列CQ和加權(quán)公平隊(duì)列WFQ.這4種擁塞管理策略能在一定程度上滿足不同業(yè)務(wù)對(duì)不同服務(wù)質(zhì)量的需求.
先入先出隊(duì)列FIFO(First-In,F(xiàn)irst-Out Queueing),數(shù)據(jù)包的發(fā)送順序依賴于其到達(dá)的時(shí)間.使用FIFO時(shí),數(shù)據(jù)包從接口的發(fā)送順序依賴于數(shù)據(jù)包抵達(dá)這個(gè)接口的順序,此時(shí)報(bào)文的入隊(duì)順序和報(bào)文的出隊(duì)順序相同.FIFO提供了基本的存儲(chǔ)轉(zhuǎn)發(fā)能力,但這種轉(zhuǎn)發(fā)模式是簡(jiǎn)單粗暴的,不區(qū)分?jǐn)?shù)據(jù)包類型、級(jí)別或權(quán)值,唯一的依據(jù)就是排隊(duì)順序.
優(yōu)先權(quán)隊(duì)列方式PQ(Priority Queueing),可根據(jù)報(bào)文頭中的多個(gè)域信息,如報(bào)文長(zhǎng)度、源地址、目的地址及數(shù)據(jù)流入的接口等靈活地指定報(bào)文進(jìn)入的優(yōu)先隊(duì)列,一般為4個(gè)等級(jí)的隊(duì)列.屬于高等級(jí)優(yōu)先隊(duì)列的數(shù)據(jù)包可比低等級(jí)低的數(shù)據(jù)包優(yōu)先發(fā)送,它確保了重要信息工作的優(yōu)先執(zhí)行,確保了最重要的數(shù)據(jù)能得到最快速地處理.
定制隊(duì)列CQ(Custom Queueing),可以根據(jù)用戶的需求,將流量按TCP/UDP端口號(hào)、ACL、接口類型等進(jìn)行分類,然后為每種流量分配一定比例的帶寬.當(dāng)網(wǎng)絡(luò)擁塞發(fā)生時(shí),可以保證例如語(yǔ)音數(shù)據(jù)等對(duì)延遲有較高要求的數(shù)據(jù)流量得到可靠的服務(wù).帶寬分配的比例并不是一成不變的,當(dāng)流量不足以達(dá)到預(yù)留帶寬時(shí),其他流量可以自動(dòng)地占用這些預(yù)留帶寬,使資源得到了更有效的利用.對(duì)于速率較低的接口,為其定制隊(duì)列就能確保通過(guò)該接口的數(shù)據(jù)流也能在一定程度上得到網(wǎng)絡(luò)服務(wù).
加權(quán)公平隊(duì)列WFQ(Weighted Fair Queueing),提供了動(dòng)態(tài)的、公平的排隊(duì)方式,它基于優(yōu)先級(jí)或者權(quán)重來(lái)區(qū)別流量,并根據(jù)會(huì)話的情況來(lái)決定每種會(huì)話可以占用帶寬的大小,保證了所有通信都能根據(jù)分配給它的權(quán)重而受到公平地對(duì)待.WFQ對(duì)流量進(jìn)行分類的依據(jù)有:源地址、目的地址、源端口、目的端口號(hào)及協(xié)議的類型等.這是一種更為公平和智能的網(wǎng)絡(luò)擁塞控制策略.
對(duì)擁塞的管理一般采用排隊(duì)技術(shù).當(dāng)擁塞發(fā)生時(shí),數(shù)據(jù)包在路由器出口處按一定的策略排隊(duì);在調(diào)度時(shí),按照一定的策略來(lái)決定數(shù)據(jù)包發(fā)送的次序[2-4].
圖1 先入先出隊(duì)列示意圖
先進(jìn)先出隊(duì)列FIFO,如圖1所示.數(shù)據(jù)包按照到達(dá)網(wǎng)絡(luò)節(jié)點(diǎn)的先后順序進(jìn)入FIFO隊(duì)列,出隊(duì)列的順序嚴(yán)格依據(jù)進(jìn)隊(duì)列的順序.不對(duì)數(shù)據(jù)包進(jìn)行數(shù)據(jù)類別、源地址或者權(quán)值的分類,所有要從接口發(fā)送的報(bào)文,按照到達(dá)的先后順序進(jìn)入接口的FIFO隊(duì)列尾部,而接口在發(fā)送報(bào)文時(shí),從FIFO隊(duì)列的頭部,依次發(fā)送報(bào)文.所有的報(bào)文在發(fā)送過(guò)程中,沒(méi)有任何區(qū)別,進(jìn)隊(duì)列順序是轉(zhuǎn)發(fā)順序的唯一依據(jù),也不保證報(bào)文發(fā)送的質(zhì)量.因此,惡性的應(yīng)用可能會(huì)占用所有的網(wǎng)絡(luò)資源,嚴(yán)重影響關(guān)鍵業(yè)務(wù)數(shù)據(jù)的傳送.在網(wǎng)絡(luò)節(jié)點(diǎn)形成惡性競(jìng)爭(zhēng),不利于網(wǎng)絡(luò)資料的公平調(diào)用.
圖2 優(yōu)先隊(duì)列示意圖
PQ使用了4個(gè)隊(duì)列,優(yōu)先級(jí)分別是high,medium,normal,low(如圖2所示).在報(bào)文到達(dá)接口后,首先按照網(wǎng)絡(luò)協(xié)議、數(shù)據(jù)流入接口、報(bào)文長(zhǎng)短、源地址、目的地址、TCP/UDP端口號(hào)、是否匹配ACL等規(guī)則進(jìn)行分類并指定其優(yōu)先級(jí)別,分別對(duì)應(yīng)PQ的4個(gè)隊(duì)列,然后按照?qǐng)?bào)文所屬的優(yōu)先級(jí)別讓報(bào)文進(jìn)入相應(yīng)的隊(duì)列的尾部.報(bào)文發(fā)送時(shí),根據(jù)隊(duì)列優(yōu)先級(jí)的不同,首先發(fā)送所有優(yōu)先級(jí)高的隊(duì)列,然后再發(fā)送低優(yōu)先級(jí)隊(duì)列中的報(bào)文.這樣就確保了在使用PQ的網(wǎng)絡(luò)單元處,重要的數(shù)據(jù)能得到最快速的處理,較高優(yōu)先級(jí)隊(duì)列的報(bào)文有非常低的時(shí)延,報(bào)文的丟失率和通過(guò)率這兩個(gè)性能指標(biāo)在網(wǎng)絡(luò)擁塞時(shí)有了一定程度的保障.可將關(guān)鍵業(yè)務(wù)如ERP等數(shù)據(jù)包放入較高優(yōu)先級(jí)的隊(duì)列,而將非關(guān)鍵業(yè)務(wù)如E-Mail等對(duì)實(shí)時(shí)性要求不高的數(shù)據(jù)包放入較低優(yōu)先級(jí)的隊(duì)列.關(guān)鍵業(yè)務(wù)的數(shù)據(jù)包在處理關(guān)鍵業(yè)務(wù)數(shù)據(jù)的空閑間隙被發(fā)送,這樣既保證了關(guān)鍵業(yè)務(wù)優(yōu)先,又充分運(yùn)用了網(wǎng)絡(luò)資源.但由此帶來(lái)的問(wèn)題是:較低優(yōu)先級(jí)隊(duì)列中的數(shù)據(jù)包可能會(huì)因較高優(yōu)先級(jí)隊(duì)列中數(shù)據(jù)包的存在而長(zhǎng)期被堵塞在發(fā)送接口報(bào)文隊(duì)列中.而數(shù)據(jù)包的優(yōu)先級(jí)別需要人工設(shè)定,很難做到讓所有網(wǎng)絡(luò)用戶都滿意,產(chǎn)生難以協(xié)調(diào)的網(wǎng)絡(luò)應(yīng)用矛盾.
CQ策略相當(dāng)于在PQ4個(gè)隊(duì)列的基礎(chǔ)上數(shù)量增加至17個(gè)隊(duì)列,并給予這些隊(duì)列一定比例的帶寬.如圖3所示,定制CQ隊(duì)列按照一定的策略將數(shù)據(jù)包分成若干類,對(duì)應(yīng)于CQ的17個(gè)隊(duì)列,數(shù)據(jù)包到達(dá)節(jié)點(diǎn)后首先進(jìn)行類別劃分,然后按照先進(jìn)先出的策略進(jìn)入相應(yīng)的CQ隊(duì)列.PQ僅有4個(gè)隊(duì)列,隊(duì)列所對(duì)應(yīng)的數(shù)據(jù)包類別較少,較高優(yōu)先級(jí)的數(shù)據(jù)包具有絕對(duì)的優(yōu)先權(quán),當(dāng)有大量的較高優(yōu)先級(jí)數(shù)據(jù)包需要傳送時(shí),會(huì)占用全部帶寬,低優(yōu)先級(jí)數(shù)據(jù)包智能等待甚至被丟棄.相比之下,CQ共有17個(gè)隊(duì)列,0號(hào)隊(duì)列為系統(tǒng)隊(duì)列,優(yōu)先調(diào)度;1~16號(hào)隊(duì)列為用戶隊(duì)列,根據(jù)輪詢調(diào)度和帶寬配額將16個(gè)隊(duì)列中的數(shù)據(jù)包分期分批的轉(zhuǎn)發(fā)出去.用戶可以配置隊(duì)列間占用帶寬的比例關(guān)系以及報(bào)文的入隊(duì)策略.這樣就可讓不同業(yè)務(wù)的數(shù)據(jù)包獲得不同的帶寬,既可保證關(guān)鍵業(yè)務(wù)能獲得較多的帶寬,又不至于使非關(guān)鍵業(yè)務(wù)總也得不到帶寬.
圖3 定制隊(duì)列示意圖
圖4 加權(quán)公平隊(duì)列示意圖
加權(quán)公平隊(duì)列WFQ,目標(biāo)是確保擁塞發(fā)生時(shí)剩余的流能夠獲得足夠的帶寬,并對(duì)延遲作出限制,使其能夠滿足最低要求.在保證帶寬公平和低延遲的基礎(chǔ)上體現(xiàn)權(quán)值,權(quán)值大小依賴于權(quán)值分配方法.權(quán)值的分配可以依據(jù)IP優(yōu)先級(jí)、服務(wù)時(shí)間、弱時(shí)性等調(diào)度算法.如圖4所示,加權(quán)公平隊(duì)列對(duì)數(shù)據(jù)包按流進(jìn)行分類.相同源IP地址、目的IP地址、源端口號(hào)、目的端口號(hào)、協(xié)議號(hào)、服務(wù)類型的數(shù)據(jù)包屬于同一個(gè)流,每一個(gè)流被分配到一個(gè)隊(duì)列,隊(duì)列的數(shù)目可在16至4096個(gè)之間預(yù)先配置.在出隊(duì)的時(shí)候,WFQ按流的權(quán)值為每個(gè)流分配應(yīng)占有出口的帶寬.權(quán)值的數(shù)值越小,所得的帶寬越少;權(quán)值的數(shù)值越大,所得的帶寬也就越多.即保證了相同優(yōu)先級(jí)業(yè)務(wù)之間的公平,又體現(xiàn)了不同優(yōu)先級(jí)業(yè)務(wù)之間的權(quán)值,這種機(jī)制可以防止因帶寬不足而引起的網(wǎng)絡(luò)資源分配不公平的問(wèn)題.
擁塞管理策略FIFO,PQ,CQ,WFQ都有各自的優(yōu)點(diǎn)和缺點(diǎn),必須充分認(rèn)識(shí)各種策略的優(yōu)缺點(diǎn)(見(jiàn)表1).
表1 擁塞管理策略優(yōu)缺點(diǎn)對(duì)比
通過(guò)各種策略優(yōu)缺點(diǎn)的對(duì)比可以發(fā)現(xiàn),沒(méi)有完美的擁塞管理策略,只有適合本網(wǎng)絡(luò)特征的策略才是最好的.必須充分考慮本地網(wǎng)絡(luò)的出口帶寬情況、網(wǎng)絡(luò)應(yīng)用需求情況、硬件設(shè)備配置情況等多方面因素,才能制定出最優(yōu)的擁塞管理策略.對(duì)于網(wǎng)絡(luò)出口帶寬較富裕的局域網(wǎng)可以考慮使用FIFO控制策略;對(duì)于出口帶寬有限、硬件配置一般,又有特殊需求的網(wǎng)絡(luò)可以采用CQ控制策略;對(duì)于組織機(jī)構(gòu)嚴(yán)密、具有重要數(shù)據(jù)流的網(wǎng)絡(luò)可以采用PQ控制策略;對(duì)于綜合性能要求較高,以公平用網(wǎng)為主旨的網(wǎng)絡(luò)可以采用WFQ控制策略.總之,擁塞控制策略的制定首先要滿足局域網(wǎng)絡(luò)的實(shí)際使用需求,然后結(jié)合局域網(wǎng)絡(luò)的出口和硬件配置情況選擇最優(yōu)的控制策略.
[1]杜光輝,張宇敬.網(wǎng)絡(luò)擁塞控制策略的研究[J].科技資訊,2010(25):14-14.
[2]宋麗華,王海濤,曹海兵.基于性能服務(wù)的高速網(wǎng)絡(luò)運(yùn)輸層擁塞控制解決方案[J].解放軍理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,13(3):259-265.
[3]姚寶軍,郭景峰.一種基于OSPF的QoS路由算法研究[J].河北師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,34(6):649-655.
[4]卜佑軍,朱 珂,賀 煒,汪斌強(qiáng).基于網(wǎng)絡(luò)效用最大化的多路徑網(wǎng)絡(luò)擁塞控制研究[J].數(shù)學(xué)的實(shí)踐與認(rèn)識(shí),2013,43(20):141-149.