張文盛,史 科
(1.安徽廣播電視大學(xué),安徽 合肥 230022; 2.安徽廣播電視大學(xué)省直分校,安徽 合肥 230001)
?
基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法研究*
張文盛1,史科2
(1.安徽廣播電視大學(xué),安徽 合肥 230022; 2.安徽廣播電視大學(xué)省直分校,安徽 合肥 230001)
針對源抑制機(jī)制在內(nèi)網(wǎng)流量控制中存在的帶寬利用率不高的問題,提出一種基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法。該算法在網(wǎng)關(guān)上監(jiān)視網(wǎng)絡(luò)流量,當(dāng)總流量小于閾值時(shí),不執(zhí)行流量控制;當(dāng)總流量超過閾值時(shí),開始統(tǒng)計(jì)每個(gè)用戶的流量,找出流量較大的用戶,對于下載流量直接在網(wǎng)關(guān)上限速,對于上傳流量通知接入交換機(jī)控制用戶流量。在Linux中實(shí)現(xiàn)基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法,并對其進(jìn)行測試,結(jié)果表明該算法能夠有效控制內(nèi)網(wǎng)流量,實(shí)現(xiàn)帶寬公平和高效利用。
源抑制;動態(tài)流控;自適應(yīng);流量攻擊
引用格式:張文盛,史科.基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法研究[J].微型機(jī)與應(yīng)用,2016,35(16):57-59.
目前絕大部分內(nèi)網(wǎng)都在網(wǎng)絡(luò)出口部署流控設(shè)備,這些設(shè)備在流量控制方面還有缺陷,特別是無法解決惡意流量攻擊問題,例如用戶可以向外網(wǎng)發(fā)送大量UDP包,使出口堵塞,妨礙網(wǎng)絡(luò)正常運(yùn)行。源抑制機(jī)制[1]通過將流控設(shè)備和接入交換機(jī)等互聯(lián),發(fā)揮系統(tǒng)優(yōu)勢,實(shí)現(xiàn)協(xié)同合作,在用戶接入端口控制流量,有效解決惡意流量問題,但是帶寬利用率不高。本文在源抑制技術(shù)基礎(chǔ)上,設(shè)計(jì)內(nèi)網(wǎng)流量自適應(yīng)控制算法,實(shí)現(xiàn)帶寬公平和高效利用。
目前最新的內(nèi)網(wǎng)流控控制技術(shù)包括動態(tài)流控技術(shù)和源抑制技術(shù),其各有優(yōu)缺點(diǎn)。
1.1動態(tài)流控技術(shù)
動態(tài)流控技術(shù)是采用自適應(yīng)方法對不斷變化的流量進(jìn)行控制的技術(shù),包括流量分類、動態(tài)隊(duì)列和公平調(diào)度3部分[2]。
流量分類是通過識別數(shù)據(jù)包中的IP和端口等信息識別流量,例如想限制用戶下載流量,可根據(jù)從外網(wǎng)接收到的包的目的IP地址進(jìn)行分類,相同的目的IP的包被標(biāo)識為同一類[3]。
動態(tài)隊(duì)列是子隊(duì)列個(gè)數(shù)可變的隊(duì)列,保證每一個(gè)分類都有且唯一對應(yīng)一個(gè)子隊(duì)列。動態(tài)隊(duì)列根據(jù)入隊(duì)數(shù)據(jù)包的分類信息,判斷所屬子隊(duì)列是否存在,如果不存在,則建立該子隊(duì)列;當(dāng)所屬隊(duì)列長期空閑時(shí),銷毀該子隊(duì)列[4]。子隊(duì)列可采用隨機(jī)早期檢測(Random Eearly Detection,RED)管理算法控制深度[5]。通過子隊(duì)列個(gè)數(shù)的動態(tài)擴(kuò)展和自動收縮特性,保證流量控制的高性能和提高資源的利用率。
公平調(diào)度是輪詢動態(tài)隊(duì)列中的所有子隊(duì)列,如果有數(shù)據(jù)包需要發(fā)送,并且本輪有配額,則發(fā)送該數(shù)據(jù)包,否則要等到下一輪,從而保證調(diào)度的公平性[6]。
動態(tài)流控技術(shù)的特點(diǎn)是當(dāng)分類很多時(shí),帶寬被所有分類平均分享,沒有獨(dú)占現(xiàn)象;當(dāng)分類較少時(shí),大流量的分類也會得到更多的調(diào)度機(jī)會,帶寬不會空閑浪費(fèi)。動態(tài)流控技術(shù)能夠根據(jù)流量變化自動調(diào)整控制策略,較好地實(shí)現(xiàn)帶寬公平和高效使用。動態(tài)流控技術(shù)的缺點(diǎn)是不能控制惡意流量。典型的動態(tài)流量控制技術(shù)應(yīng)用有RouterOS中的每連接隊(duì)列 (Per Connection Queue, PCQ)[7]。
1.2源抑制技術(shù)
源抑制技術(shù)是在接入交換機(jī)的端口上限制用戶流量的技術(shù),包括網(wǎng)關(guān)、接入交換機(jī)和源抑制協(xié)議3部分。
網(wǎng)關(guān)設(shè)置流量配額,監(jiān)視所有用戶流量,當(dāng)發(fā)現(xiàn)流量超限時(shí),如果是下載流量,直接在網(wǎng)關(guān)上限速;如果是上傳流量,則通知接入交換機(jī)限速。
接入交換機(jī)在接收到限速指令后,解析出端口和限速值參數(shù),在該端口啟用令牌桶算法對流量進(jìn)行整形。當(dāng)用戶流量恢復(fù)正常后,接入交換機(jī)自動取消限速。
源抑制協(xié)議用于網(wǎng)關(guān)和接入交換機(jī)之間的控制交互,傳遞限速命令。
源抑制技術(shù)的特點(diǎn)是當(dāng)用戶流量低于閾值時(shí),不啟用源抑制機(jī)制,反之則啟用源抑制,因此源抑制技術(shù)能有效控制內(nèi)網(wǎng)惡意流量,保證帶寬公平使用。源抑制技術(shù)的缺點(diǎn)是用戶配額固定,不能根據(jù)帶寬使用情況自動調(diào)節(jié)控制策略,帶寬可能大量空閑,利用率不高。
2.1算法思想
本算法的思想是利用二八定律和削尖方法對流量進(jìn)行控制。
二八定律是指在任何一組事物中,最重要的只占其中一小部分,約20%,其余80%盡管是多數(shù),卻是次要的定律[8]。流量的變化和控制也遵從該定律。在時(shí)間上,在超過80%的時(shí)間中,流量都很正常,不需要控制,只有不到20%的時(shí)間內(nèi),流量表現(xiàn)異常需要控制。在用戶組成上,超過80%的用戶流量都是正常的,只有不到20%的用戶流量不正常。在帶寬使用上,流量超過總帶寬的80%時(shí)才進(jìn)行控制,其他情況下不需要控制,從而最大化利用資源。
削尖思想是執(zhí)行流量控制時(shí),只對流量較大的幾個(gè)用戶進(jìn)行控制,保證帶寬公平使用。
2.2算法描述
本算法主要流程是計(jì)算網(wǎng)絡(luò)出口流量,如果流量超過閾值,則計(jì)算每個(gè)用戶的流量,找到其中最大值,將該值減去一個(gè)增量后得到值s,對于流量超過s的用戶,如果是上傳流量則使用源抑制機(jī)制限速,如果是下載流量則在網(wǎng)關(guān)上限速。算法如圖1所示。

圖1 基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法
圖1中G是流量閾值,通常可設(shè)為出口帶寬的80%;S是分配給每個(gè)用戶流量的最小配額值,如1 Mb/s;I是流量控制增量位移,可設(shè)為3。當(dāng)I=3時(shí),s=s-s>>3=s(1-1/8)=7s/8,相當(dāng)于每次減去1/8,s越大減得越多,s越小減得越少。
本算法定時(shí)執(zhí)行,間隔可以設(shè)置長一點(diǎn),例如10 s執(zhí)行一次,一方面可以使計(jì)算的流量值更平滑,減小瞬間流量波動導(dǎo)致的控制誤差;另一方面給源抑制足夠的反饋時(shí)間,降低控制負(fù)載。
為了驗(yàn)證算法的性能,在Linux環(huán)境中予以實(shí)現(xiàn),并進(jìn)行充分測試。
3.1測試環(huán)境
測試拓?fù)淙鐖D2所示。

圖2 測試拓?fù)?/p>
所有設(shè)備均安裝RHEL6(Redhat Enterprise Linux 6)操作系統(tǒng),所有網(wǎng)絡(luò)接口的帶寬都是100 Mb/s,服務(wù)器提供FTP下載和上傳服務(wù)。
3.2系統(tǒng)結(jié)構(gòu)
本算法基于源抑制,目前有兩種源抑制系統(tǒng)結(jié)構(gòu)可供選擇,一種是Netfilter源抑制,另一種是動態(tài)流控源抑制。Netfilter源抑制結(jié)構(gòu)在參考文獻(xiàn)[1]中有深入研究,本文采用動態(tài)流控源抑制結(jié)構(gòu),其流控的公平性優(yōu)于Netfilter源抑制。動態(tài)流控源抑制系統(tǒng)結(jié)構(gòu)如圖3所示。

圖3 動態(tài)流控源抑制結(jié)構(gòu)
在圖3中,內(nèi)網(wǎng)流量自適應(yīng)控制算法運(yùn)行在網(wǎng)關(guān)的用戶空間中,通過和內(nèi)核中的動態(tài)流控模塊交互,獲取流量信息,控制用戶流量。動態(tài)流控模塊是在Linux的流量控制框架SCHED中實(shí)現(xiàn)的,通過建立動態(tài)流控規(guī)程,使用令牌桶算法管理用戶的下載隊(duì)列和上傳隊(duì)列,將規(guī)程綁定在內(nèi)網(wǎng)口,實(shí)現(xiàn)流量的動態(tài)控制。
3.3測試方案
同時(shí)在PC1和PC2上使用FTP協(xié)議向服務(wù)器上傳大文件。PC1的FTP客戶端軟件不主動限速,PC2的FTP客戶端主動限速5 Mb/s。
算法中的參數(shù)設(shè)置如下:G設(shè)置為80 Mb/s,S設(shè)置為8 Mb/s,I設(shè)置為4,算法執(zhí)行間隔設(shè)為60 s。測試開始的60 s內(nèi)不啟用流量控制,然后再啟用,對比控制效果。
3.4測試結(jié)果
在網(wǎng)關(guān)內(nèi)網(wǎng)口統(tǒng)計(jì)PC1和PC2的上傳流量,結(jié)果如圖4所示。
在圖4中,前60 s內(nèi),流量控制未啟用,PC1流量為95 Mb/s左右,PC2流量為5 Mb/s左右,帶寬全部被占用。啟用流量控制后,由于總流量超過閾值G,算法應(yīng)該對流量最大的用戶PC1進(jìn)行源抑制,每隔60 s,將PC1的流量減少1/16,直到總流量保持在80 Mb/s以下,而PC2不受影響。圖4中的信息印證了這些推論,在60 s、120 s、180 s、240 s這4點(diǎn),PC1的流量均有所跳降,直至保持75 Mb/s左右不變,PC2的流量一直保持在5 Mb/s左右。

圖4 內(nèi)網(wǎng)流量自適應(yīng)控制算法測試結(jié)果
本文針對內(nèi)網(wǎng)流量控制存在的不足,提出基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法;通過引入二八定律和削尖方法,給出算法框圖,討論算法執(zhí)行細(xì)節(jié),詳細(xì)描述算法的工作原理;最后搭建測試環(huán)境,在動態(tài)流控源抑制系統(tǒng)結(jié)構(gòu)中實(shí)現(xiàn)算法,設(shè)計(jì)測試方案,進(jìn)行仔細(xì)測試。測試結(jié)果表明,基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法能夠?qū)崿F(xiàn)帶寬的公平和高效使用。
[1] 張文盛.源抑制在網(wǎng)絡(luò)流量控制中的應(yīng)用研究[J].微型機(jī)與應(yīng)用,2015,34(17):61-63.
[2] 郭正球.基于Linux下TC的網(wǎng)絡(luò)流量管理[J].長沙航空職業(yè)技術(shù)學(xué)院學(xué)報(bào),2010,10(2):50-53.
[3] 劉穎秋,李巍,李云春.網(wǎng)絡(luò)流量分類與應(yīng)用識別的研究[J].計(jì)算機(jī)應(yīng)用研究,2008,25(5),1492-1495.
[4] 蔡文郁,金心宇,張昱.基于Linux的網(wǎng)絡(luò)流量控制機(jī)制[J].江南大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,5(4):480-484.
[5] 李新國.基于擁塞控制的AQM算法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(5):199-202.
[6] 尹德斌,謝劍英.一種新的加權(quán)公平隊(duì)列調(diào)度算法[J].計(jì)算機(jī)工程,2008,34(4):28-33.
[7] 王洪波.基于RouterOS系統(tǒng)的流量控制策略研究[D].成都:電子科技大學(xué),2012.
[8] 吳青劼,洪濤,馬駿.長尾理論綜述[J].周口師范學(xué)院學(xué)報(bào),2010,27(1):124-129.
Research or sourch quench based LAN traffic adaptive control algorithm
Zhang Wensheng1, Shi Ke2
(1.Anhui Radio & TV University, Hefei 230022, China; 2. Shengzhi Branch School of Anhui Radio & TV University, Hefei 230001, China)
Aiming at the problem that bandwidth utilization is not high in source quench based LAN traffic control, a source quench based LAN traffic adaptive control algorithm is proposed. The algorithm monitors LAN traffic in gateway, when total flow rate is smaller than threshold, it does not perform traffic control; when total flow exceeds threshold, it begins to compute each user’s traffic, then finds out larger users, for download traffic it directly limits traffic in the gateway, and for upload traffic it notifies access switch to control user traffic. The source quench based LAN traffic adaptive control algorithm is implemented and tested in Linux. The test results show that the algorithm can effectively control network traffic to achieve fair and efficient use of bandwidth.
sourch quench; dynamic traffic control; adaptive; traffic attack
安徽省教育廳高校優(yōu)秀青年人才支持計(jì)劃重點(diǎn)項(xiàng)目(gxyqZD2016445);安徽廣播電視大學(xué)科研項(xiàng)目(qn11-11)
TP393.1
A
10.19358/j.issn.1674- 7720.2016.16.017
2016-03-24)
張文盛(1980-),男,碩士研究生,工程師,主要研究方向:計(jì)算機(jī)網(wǎng)絡(luò)。
史科(1981-),男,碩士研究生,講師,主要研究方向:人工智能。