《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法研究
基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法研究
2016年微型機(jī)與應(yīng)用第16期
張文盛1,史科2
1.安徽廣播電視大學(xué),安徽 合肥 230022; 2.安徽廣播電視大學(xué)省直分校,安徽 合肥 230001
摘要: 針對(duì)源抑制機(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è)用戶的流量,找出流量較大的用戶,對(duì)于下載流量直接在網(wǎng)關(guān)上限速,對(duì)于上傳流量通知接入交換機(jī)控制用戶流量。在Linux中實(shí)現(xiàn)基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法,并對(duì)其進(jìn)行測(cè)試,結(jié)果表明該算法能夠有效控制內(nèi)網(wǎng)流量,實(shí)現(xiàn)帶寬公平和高效利用。
Abstract:
Key words :

  張文盛1,史科2
  (1.安徽廣播電視大學(xué),安徽 合肥 230022; 2.安徽廣播電視大學(xué)省直分校,安徽 合肥 230001)

        摘要:針對(duì)源抑制機(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è)用戶的流量,找出流量較大的用戶,對(duì)于下載流量直接在網(wǎng)關(guān)上限速,對(duì)于上傳流量通知接入交換機(jī)控制用戶流量。在Linux中實(shí)現(xiàn)基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法,并對(duì)其進(jìn)行測(cè)試,結(jié)果表明該算法能夠有效控制內(nèi)網(wǎng)流量,實(shí)現(xiàn)帶寬公平和高效利用。
  關(guān)鍵詞:源抑制;動(dòng)態(tài)流控;自適應(yīng);流量攻擊  

0引言
  *基金項(xiàng)目:安徽省教育廳高校優(yōu)秀青年人才支持計(jì)劃重點(diǎn)項(xiàng)目(gxyqZD2016445);安徽廣播電視大學(xué)科研項(xiàng)目(qn1111)目前絕大部分內(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ì),實(shí)現(xiàn)協(xié)同合作,在用戶接入端口控制流量,有效解決惡意流量問題,但是帶寬利用率不高。本文在源抑制技術(shù)基礎(chǔ)上,設(shè)計(jì)內(nèi)網(wǎng)流量自適應(yīng)控制算法,實(shí)現(xiàn)帶寬公平和高效利用。
1相關(guān)研究
  目前最新的內(nèi)網(wǎng)流控控制技術(shù)包括動(dòng)態(tài)流控技術(shù)和源抑制技術(shù),其各有優(yōu)缺點(diǎn)。
  1.1動(dòng)態(tài)流控技術(shù)
  動(dòng)態(tài)流控技術(shù)是采用自適應(yīng)方法對(duì)不斷變化的流量進(jìn)行控制的技術(shù),包括流量分類、動(dòng)態(tài)隊(duì)列和公平調(diào)度3部分[2]。
  流量分類是通過識(shí)別數(shù)據(jù)包中的IP和端口等信息識(shí)別流量,例如想限制用戶下載流量,可根據(jù)從外網(wǎng)接收到的包的目的IP地址進(jìn)行分類,相同的目的IP的包被標(biāo)識(shí)為同一類[3]。
  動(dòng)態(tài)隊(duì)列是子隊(duì)列個(gè)數(shù)可變的隊(duì)列,保證每一個(gè)分類都有且唯一對(duì)應(yīng)一個(gè)子隊(duì)列。動(dòng)態(tài)隊(duì)列根據(jù)入隊(duì)數(shù)據(jù)包的分類信息,判斷所屬子隊(duì)列是否存在,如果不存在,則建立該子隊(duì)列;當(dāng)所屬隊(duì)列長期空閑時(shí),銷毀該子隊(duì)列[4]。子隊(duì)列可采用隨機(jī)早期檢測(cè)(Random Eearly Detection,RED)管理算法控制深度[5]。通過子隊(duì)列個(gè)數(shù)的動(dòng)態(tài)擴(kuò)展和自動(dòng)收縮特性,保證流量控制的高性能和提高資源的利用率。
  公平調(diào)度是輪詢動(dòng)態(tài)隊(duì)列中的所有子隊(duì)列,如果有數(shù)據(jù)包需要發(fā)送,并且本輪有配額,則發(fā)送該數(shù)據(jù)包,否則要等到下一輪,從而保證調(diào)度的公平性[6]。
  動(dòng)態(tài)流控技術(shù)的特點(diǎn)是當(dāng)分類很多時(shí),帶寬被所有分類平均分享,沒有獨(dú)占現(xiàn)象;當(dāng)分類較少時(shí),大流量的分類也會(huì)得到更多的調(diào)度機(jī)會(huì),帶寬不會(huì)空閑浪費(fèi)。動(dòng)態(tài)流控技術(shù)能夠根據(jù)流量變化自動(dòng)調(diào)整控制策略,較好地實(shí)現(xiàn)帶寬公平和高效使用。動(dòng)態(tài)流控技術(shù)的缺點(diǎn)是不能控制惡意流量。典型的動(dòng)態(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ù),在該端口啟用令牌桶算法對(duì)流量進(jìn)行整形。當(dāng)用戶流量恢復(fù)正常后,接入交換機(jī)自動(dòng)取消限速。
  源抑制協(xié)議用于網(wǎng)關(guān)和接入交換機(jī)之間的控制交互,傳遞限速命令。
  源抑制技術(shù)的特點(diǎn)是當(dāng)用戶流量低于閾值時(shí),不啟用源抑制機(jī)制,反之則啟用源抑制,因此源抑制技術(shù)能有效控制內(nèi)網(wǎng)惡意流量,保證帶寬公平使用。源抑制技術(shù)的缺點(diǎn)是用戶配額固定,不能根據(jù)帶寬使用情況自動(dòng)調(diào)節(jié)控制策略,帶寬可能大量空閑,利用率不高。
2基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法
  2.1算法思想

  本算法的思想是利用二八定律和削尖方法對(duì)流量進(jìn)行控制。
  二八定律是指在任何一組事物中,最重要的只占其中一小部分,約20%,其余80%盡管是多數(shù),卻是次要的定律[8]。流量的變化和控制也遵從該定律。在時(shí)間上,在超過80%的時(shí)間中,流量都很正常,不需要控制,只有不到20%的時(shí)間內(nèi),流量表現(xiàn)異常需要控制。在用戶組成上,超過80%的用戶流量都是正常的,只有不到20%的用戶流量不正常。在帶寬使用上,流量超過總帶寬的80%時(shí)才進(jìn)行控制,其他情況下不需要控制,從而最大化利用資源。
  削尖思想是執(zhí)行流量控制時(shí),只對(duì)流量較大的幾個(gè)用戶進(jìn)行控制,保證帶寬公平使用。
  2.2算法描述
  本算法主要流程是計(jì)算網(wǎng)絡(luò)出口流量,如果流量超過閾值,則計(jì)算每個(gè)用戶的流量,找到其中最大值,將該值減去一個(gè)增量后得到值s,對(duì)于流量超過s的用戶,如果是上傳流量則使用源抑制機(jī)制限速,如果是下載流量則在網(wǎng)關(guān)上限速。算法如圖1所示。
 

圖像 001.png

  圖1中G是流量閾值,通??稍O(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òng)導(dǎo)致的控制誤差;另一方面給源抑制足夠的反饋時(shí)間,降低控制負(fù)載。
3算法測(cè)試
  為了驗(yàn)證算法的性能,在Linux環(huán)境中予以實(shí)現(xiàn),并進(jìn)行充分測(cè)試。
  3.1測(cè)試環(huán)境
  測(cè)試拓?fù)淙鐖D2所示。
 

圖像 002.png

  所有設(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源抑制,另一種是動(dòng)態(tài)流控源抑制。Netfilter源抑制結(jié)構(gòu)在參考文獻(xiàn)[1]中有深入研究,本文采用動(dòng)態(tài)流控源抑制結(jié)構(gòu),其流控的公平性優(yōu)于Netfilter源抑制。動(dòng)態(tài)流控源抑制系統(tǒng)結(jié)構(gòu)如圖3所示。
  

圖像 003.png

  在圖3中,內(nèi)網(wǎng)流量自適應(yīng)控制算法運(yùn)行在網(wǎng)關(guān)的用戶空間中,通過和內(nèi)核中的動(dòng)態(tài)流控模塊交互,獲取流量信息,控制用戶流量。動(dòng)態(tài)流控模塊是在Linux的流量控制框架SCHED中實(shí)現(xiàn)的,通過建立動(dòng)態(tài)流控規(guī)程,使用令牌桶算法管理用戶的下載隊(duì)列和上傳隊(duì)列,將規(guī)程綁定在內(nèi)網(wǎng)口,實(shí)現(xiàn)流量的動(dòng)態(tài)控制。
  3.3測(cè)試方案
  同時(shí)在PC1和PC2上使用FTP協(xié)議向服務(wù)器上傳大文件。PC1的FTP客戶端軟件不主動(dòng)限速,PC2的FTP客戶端主動(dòng)限速5 Mb/s。
  算法中的參數(shù)設(shè)置如下:G設(shè)置為80 Mb/s,S設(shè)置為8 Mb/s,I設(shè)置為4,算法執(zhí)行間隔設(shè)為60 s。測(cè)試開始的60 s內(nèi)不啟用流量控制,然后再啟用,對(duì)比控制效果。
  3.4測(cè)試結(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左右,帶寬全部被占用。
  

圖像 004.png

  啟用流量控制后,由于總流量超過閾值G,算法應(yīng)該對(duì)流量最大的用戶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結(jié)論
  本文針對(duì)內(nèi)網(wǎng)流量控制存在的不足,提出基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法;通過引入二八定律和削尖方法,給出算法框圖,討論算法執(zhí)行細(xì)節(jié),詳細(xì)描述算法的工作原理;最后搭建測(cè)試環(huán)境,在動(dòng)態(tài)流控源抑制系統(tǒng)結(jié)構(gòu)中實(shí)現(xiàn)算法,設(shè)計(jì)測(cè)試方案,進(jìn)行仔細(xì)測(cè)試。測(cè)試結(jié)果表明,基于源抑制的內(nèi)網(wǎng)流量自適應(yīng)控制算法能夠?qū)崿F(xiàn)帶寬的公平和高效使用。
  參考文獻(xiàn)
 ?。?] 張文盛.源抑制在網(wǎng)絡(luò)流量控制中的應(yīng)用研究[J].微型機(jī)與應(yīng)用,2015,34(17):6163.
 ?。?] 郭正球.基于Linux下TC的網(wǎng)絡(luò)流量管理[J].長沙航空職業(yè)技術(shù)學(xué)院學(xué)報(bào),2010,10(2):5053.
  [3] 劉穎秋,李巍,李云春.網(wǎng)絡(luò)流量分類與應(yīng)用識(shí)別的研究[J].計(jì)算機(jī)應(yīng)用研究,2008,25(5),14921495.
 ?。?] 蔡文郁,金心宇,張昱.基于Linux的網(wǎng)絡(luò)流量控制機(jī)制[J].江南大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,5(4):480484.
 ?。?] 李新國.基于擁塞控制的AQM算法研究[J].計(jì)算機(jī)技術(shù)與發(fā)展,2007,17(5):199202.
 ?。?] 尹德斌,謝劍英.一種新的加權(quán)公平隊(duì)列調(diào)度算法[J].計(jì)算機(jī)工程,2008,34(4):2833.
 ?。?] 王洪波.基于RouterOS系統(tǒng)的流量控制策略研究[D].成都:電子科技大學(xué),2012.
 ?。?] 吳青劼,洪濤,馬駿.長尾理論綜述[J].周口師范學(xué)院學(xué)報(bào),2010,27(1):124129.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。