摘 要: 傳統(tǒng)網(wǎng)絡(luò)流量控制系統(tǒng)在網(wǎng)絡(luò)出口運(yùn)行,,只能緩解出口擁塞,,不能真正控制網(wǎng)絡(luò)流量。研究網(wǎng)絡(luò)流量控制技術(shù),,分析出口擁塞產(chǎn)生的根源,,引入源抑制思想,從源頭控制用戶(hù)流量,,構(gòu)建新型的網(wǎng)絡(luò)流量控制系統(tǒng),,實(shí)現(xiàn)帶寬的合理分配和高效使用。通過(guò)建立源抑制機(jī)制,,設(shè)計(jì)通信協(xié)議,,在網(wǎng)關(guān)和接入交換機(jī)之間聯(lián)動(dòng),共同控制網(wǎng)絡(luò)流量,。在Linux環(huán)境下實(shí)現(xiàn)和測(cè)試系統(tǒng),,試驗(yàn)表明源抑制機(jī)制能有效控制網(wǎng)絡(luò)流量。
關(guān)鍵詞: 源抑制,;網(wǎng)絡(luò)流量控制,;接入交換機(jī);netfilter
0 引言
隨著信息技術(shù)的不斷發(fā)展,,網(wǎng)絡(luò)流量飛速增長(zhǎng),,帶寬使用面臨很大壓力,流量控制技術(shù)成為研究熱點(diǎn)[1],。目前網(wǎng)絡(luò)流量控制研究多集中在網(wǎng)絡(luò)出口,,通過(guò)在網(wǎng)關(guān)上建立流量控制系統(tǒng),對(duì)轉(zhuǎn)發(fā)的數(shù)據(jù)包進(jìn)行流量整形,,實(shí)現(xiàn)流量控制[2],。用戶(hù)發(fā)送的數(shù)據(jù)包要經(jīng)過(guò)多個(gè)交換機(jī)的轉(zhuǎn)發(fā)才能到達(dá)網(wǎng)關(guān),而這些系統(tǒng)不能控制尚未到達(dá)的數(shù)據(jù)包,,極端情況下,,惡意流量仍會(huì)造成網(wǎng)絡(luò)癱瘓,。本文引入源抑制思想,在接入交換機(jī)上控制用戶(hù)流量,。
1 相關(guān)研究
1.1 傳統(tǒng)網(wǎng)絡(luò)流量控制技術(shù)
網(wǎng)絡(luò)出口是網(wǎng)絡(luò)瓶頸,,容易發(fā)生擁塞,傳統(tǒng)網(wǎng)絡(luò)流量控制技術(shù)重點(diǎn)控制網(wǎng)絡(luò)出口,,采用各種技術(shù)進(jìn)行網(wǎng)絡(luò)流量控制,。這些技術(shù)大致包括兩類(lèi):基于網(wǎng)絡(luò)體系結(jié)構(gòu)的流量控制技術(shù)和基于QoS的流量控制技術(shù)?;诰W(wǎng)絡(luò)體系結(jié)構(gòu)的流量控制技術(shù)從協(xié)議分層的角度,,根據(jù)協(xié)議的特點(diǎn)對(duì)流量進(jìn)行控制,例如控制P2P協(xié)議流量[3]和TCP協(xié)議流量[4],?;赒oS的流量控制技術(shù)采用分組調(diào)度、隊(duì)列管理,、流量分類(lèi)和流量整形技術(shù)[5-6],,對(duì)轉(zhuǎn)發(fā)的數(shù)據(jù)包進(jìn)行控制。傳統(tǒng)網(wǎng)絡(luò)流量控制系統(tǒng)工作在網(wǎng)絡(luò)出口,,這些技術(shù)只能夠緩解擁塞,,無(wú)法真正控制網(wǎng)絡(luò)流量。
1.2 源抑制思想
源抑制思想是當(dāng)網(wǎng)絡(luò)發(fā)生擁塞或主機(jī)資源不夠時(shí),,中間路由器或目標(biāo)主機(jī)向源主機(jī)發(fā)送消息,,通知其降低發(fā)送數(shù)據(jù)包的速度,從而達(dá)到控制流量的目的,。源抑制思想在IP協(xié)議設(shè)計(jì)之初就被引入,,最典型的例子是ICMP協(xié)議,ICMP協(xié)議專(zhuān)門(mén)設(shè)計(jì)有源抑制報(bào)文(Source Quench Message),,目標(biāo)主機(jī)為了防止緩存溢出,,通過(guò)發(fā)送源抑制報(bào)文來(lái)請(qǐng)求源主機(jī)降低數(shù)據(jù)發(fā)送速度[7],。具體過(guò)程是:首先目標(biāo)主機(jī)發(fā)生緩存溢出開(kāi)始丟棄數(shù)據(jù),,并向源主機(jī)發(fā)送源抑制報(bào)文,其發(fā)送速度是每丟棄一個(gè)數(shù)據(jù)包就發(fā)送一個(gè)源抑制報(bào)文,;源主機(jī)接收到源抑制報(bào)文開(kāi)始降低其數(shù)據(jù)發(fā)送速度,,直到不再接收源抑制報(bào)文為止;最后只要不再接收到源抑制報(bào)文,,源主機(jī)就逐漸增加其發(fā)送速度,。但在實(shí)際應(yīng)用中,該報(bào)文總是被忽略,,并沒(méi)有得到很好的使用,。
2 基于源抑制的網(wǎng)絡(luò)流量控制系統(tǒng)
針對(duì)傳統(tǒng)網(wǎng)絡(luò)流量控制系統(tǒng)的缺點(diǎn),,引入源抑制機(jī)制,在接入交換機(jī)上控制用戶(hù)流量,,建立基于源抑制的網(wǎng)絡(luò)流量控制系統(tǒng),。
2.1 工作原理
根據(jù)傳統(tǒng)網(wǎng)絡(luò)流量控制系統(tǒng)和基于源抑制的網(wǎng)絡(luò)流量控制系統(tǒng)的特點(diǎn),繪制兩者的工作原理,,如圖1所示,。
圖中用線(xiàn)條表示用戶(hù)流量,線(xiàn)條粗細(xì)表示流量大小,,箭頭方向表示流量方向,,分別顯示用戶(hù)發(fā)送流量和接收流量。傳統(tǒng)網(wǎng)絡(luò)流量控制系統(tǒng)中用戶(hù)發(fā)送的較大流量經(jīng)交換機(jī)轉(zhuǎn)發(fā)到達(dá)網(wǎng)關(guān),,被限制成較小的流量發(fā)往互聯(lián)網(wǎng),,而互聯(lián)網(wǎng)發(fā)往用戶(hù)的較大流量到達(dá)網(wǎng)關(guān),被限制成較小的流量發(fā)往用戶(hù),?;谠匆种频木W(wǎng)絡(luò)流量控制系統(tǒng)中用戶(hù)發(fā)送的較大流量在接入交換機(jī)即被限制成較小的流量發(fā)往網(wǎng)關(guān)和互聯(lián)網(wǎng),而互聯(lián)網(wǎng)發(fā)往用戶(hù)的較大流量到達(dá)網(wǎng)關(guān),,被限制成較小的流量發(fā)往用戶(hù),。對(duì)于用戶(hù)發(fā)送的流量,傳統(tǒng)網(wǎng)絡(luò)流量控制系統(tǒng)在網(wǎng)關(guān)控制,,而基于源抑制的網(wǎng)絡(luò)流量控制系統(tǒng)在接入交換機(jī)上控制,,因此基于源抑制的流量控制系統(tǒng)才能真正控制網(wǎng)絡(luò)流量。
2.2 系統(tǒng)結(jié)構(gòu)
基于源抑制的網(wǎng)絡(luò)流量控制系統(tǒng)在網(wǎng)關(guān)上部署主控模塊,,在接入交換機(jī)上部署源抑制模塊,,通過(guò)兩個(gè)模塊之間的協(xié)同合作,共同控制網(wǎng)絡(luò)流量,。其系統(tǒng)結(jié)構(gòu)如圖2所示,。
主控模塊包括主控進(jìn)程、網(wǎng)絡(luò)拓?fù)湫畔⒈?、下行流量控制單元和令牌桶算法,。主控進(jìn)程監(jiān)測(cè)用戶(hù)流量,如果是用戶(hù)上行流量異常,,則通知源抑制模塊進(jìn)行限制,,如果是下行流量異常,則在網(wǎng)關(guān)上限制,。網(wǎng)絡(luò)拓?fù)湫畔⒈肀4嬗脩?hù)的接入信息,,主要包括用戶(hù)IP、接入交換機(jī)IP和端口,,主控算法根據(jù)用戶(hù)的IP在表中查詢(xún)接入交換機(jī)IP和端口,,進(jìn)而執(zhí)行源抑制,。下行流量控制單元控制用戶(hù)下行流量,使用令牌桶算法進(jìn)行流量整形,。
源抑制模塊包括源抑制進(jìn)程,、源抑制單元和令牌桶算法。源抑制進(jìn)程解析主控模塊發(fā)送過(guò)來(lái)的命令,,通知源抑制單元控制用戶(hù)上行流量,,在指定端口執(zhí)行令牌桶算法進(jìn)行流量整形。
源抑制通信協(xié)議規(guī)定主控模塊和源抑制模塊之間交互的命令格式和過(guò)程,。
2.3 主控模塊
網(wǎng)關(guān)上的操作系統(tǒng)內(nèi)核在轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí)維護(hù)用戶(hù)IP的流量計(jì)數(shù)值,,包括上行字節(jié)數(shù)和下行字節(jié)數(shù)。網(wǎng)絡(luò)拓?fù)湫畔⒈碛晒芾韱T手工錄入,。主控進(jìn)程定時(shí)從操作系統(tǒng)內(nèi)核獲取所有用戶(hù)IP的流量計(jì)數(shù),,計(jì)算每個(gè)用戶(hù)的流量值,找出超過(guò)流量閾值一定時(shí)間的IP,。如果是下行流量異常,,則直接將流量閾值參數(shù)設(shè)置進(jìn)下行流量控制單元中,進(jìn)而執(zhí)行令牌桶算法控制用戶(hù)流量,;如果是上行流量異常,,則查詢(xún)網(wǎng)絡(luò)拓?fù)湫畔⒈恚业浇尤虢粨Q機(jī)IP和端口,,將端口和限制值等參數(shù)封裝成通信協(xié)議數(shù)據(jù)包并發(fā)送給交換機(jī),,通知其在端口上控制用戶(hù)流量。當(dāng)下行流量恢復(fù)正常時(shí)(即令牌桶算法不再丟棄數(shù)據(jù)包且保持一定時(shí)間),,下行流量控制單元主動(dòng)取消控制,。
2.4 源抑制模塊
交換機(jī)在轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí)維護(hù)每個(gè)端口的流量計(jì)數(shù),主要是用戶(hù)發(fā)送字節(jié)數(shù),。當(dāng)主控進(jìn)程通知交換機(jī)在指定端口限速時(shí),,源抑制進(jìn)程接收通信協(xié)議數(shù)據(jù)包,解析出端口和限速值,,將其設(shè)置進(jìn)源抑制單元中,。在交換機(jī)轉(zhuǎn)發(fā)用戶(hù)的數(shù)據(jù)包之前,源抑制單元檢查是否需要限速,,如果是,,則執(zhí)行令牌桶算法進(jìn)行控制,,否則執(zhí)行正常的轉(zhuǎn)發(fā)操作,。當(dāng)端口流量恢復(fù)正常時(shí)(即令牌桶算法不再丟棄數(shù)據(jù)包且保持一定時(shí)間),源抑制單元主動(dòng)取消控制,。
2.5 源抑制通信協(xié)議
源抑制通信協(xié)議基于UDP協(xié)議,,端口值為54730,。協(xié)議采用請(qǐng)求應(yīng)答的方式工作,主控進(jìn)程先發(fā)送源抑制請(qǐng)求報(bào)文給源抑制進(jìn)程,,源抑制進(jìn)程再發(fā)送應(yīng)答報(bào)文作為響應(yīng),,從而完成一次交互。其PDU結(jié)構(gòu)如圖3所示,。
主要字段用途如下:
幻數(shù):值為0x7A1D,,用于檢查和確認(rèn)接收到的數(shù)據(jù)包是源抑制PDU。
序號(hào):從1開(kāi)始編號(hào),,每開(kāi)始一個(gè)新的交互后自動(dòng)加1,,用于區(qū)分不同的交互。
命令類(lèi)型:只有兩種類(lèi)型值,,1表示請(qǐng)求,,2表示應(yīng)答。在應(yīng)答報(bào)文中除命令類(lèi)型外,,其他字段的值與請(qǐng)求報(bào)文一致,。
端口值:用戶(hù)接入交換機(jī)的端口值。
限速值:用戶(hù)的限速值,。
鑒于UDP的不可靠性,,抑制協(xié)議引入重傳機(jī)制,在請(qǐng)求報(bào)文發(fā)送后,,如果3 s內(nèi)未收到響應(yīng)報(bào)文,,則重發(fā)請(qǐng)求報(bào)文。在極端情況下,,網(wǎng)絡(luò)可能?chē)?yán)重?fù)砣?,?dǎo)致源抑制協(xié)議無(wú)法完成,因此規(guī)定交換機(jī)優(yōu)先轉(zhuǎn)發(fā)源抑制協(xié)議數(shù)據(jù)包,。
3 系統(tǒng)測(cè)試
在Linux環(huán)境下實(shí)現(xiàn)基于源抑制的網(wǎng)絡(luò)流量控制系統(tǒng),,采用Netfilter框架建立主控模塊,采用Bridge框架建立源抑制模塊[8],。然后搭建測(cè)試環(huán)境,,對(duì)源抑制機(jī)制進(jìn)行測(cè)試。測(cè)試方法是在用戶(hù)端發(fā)送100 Mb/s流量到網(wǎng)關(guān),,流量閾值為40 Mb/s,,記錄網(wǎng)關(guān)接收到的流量,結(jié)果如圖4所示,。
圖4顯示用戶(hù)流量持續(xù)一段時(shí)間后,,從100 Mb/s迅速下降到40 Mb/s,表明源抑制機(jī)制能有效控制用戶(hù)流量。
4 結(jié)束語(yǔ)
針對(duì)傳統(tǒng)網(wǎng)絡(luò)流量控制系統(tǒng)存在的不足,,通過(guò)引入源抑制機(jī)制,,提出構(gòu)建新型的網(wǎng)絡(luò)流量控制系統(tǒng),在接入交換機(jī)上控制用戶(hù)發(fā)送流量,,測(cè)試表明該系統(tǒng)能有效控制用戶(hù)上行流量,。本系統(tǒng)中只要用戶(hù)流量超限就立即執(zhí)行控制,這可能造成個(gè)別用戶(hù)的大流量需求得不到滿(mǎn)足而出口帶寬又空閑浪費(fèi)的情況發(fā)生,,需要進(jìn)一步研究提高帶寬利用率的算法,。此外網(wǎng)絡(luò)拓?fù)湫畔⒈硎鞘止や浫氲模瑢?shí)際應(yīng)用中應(yīng)該采用準(zhǔn)入控制技術(shù)自動(dòng)生成,。
參考文獻(xiàn)
[1] 王榮,,萬(wàn)振凱.校園網(wǎng)流量監(jiān)控與優(yōu)化研究[J].天津工業(yè)大學(xué)學(xué)報(bào),2014,,29(2):68-72.
[2] 張五生,,鄭靈翔.基于Linux的流量控制系統(tǒng)研究[J].廈門(mén)大學(xué)學(xué)報(bào)(自然科學(xué)版),2010,,49(1):38-42.
[3] Wang Chunzhi,, Zhou Xin, You Fangping,, et al. Design of P2P traffic identification based on DPI and DFI[C]. 2009 International Symposium on Computer Network and Multimedia Technology,, Wuhan, China: IEEE,, 2009:978-981.
[4] 楊虎,,張大方,謝鯤,,等.Netfilter/Iptables框架下基于TCP滑動(dòng)窗口的串行流量控制算法[J].計(jì)算機(jī)工程與科學(xué),,2009,31(9):8-11,,26.
[5] 劉明,,竇文華,張鶴穎.主動(dòng)隊(duì)列管理研究綜述[J].計(jì)算機(jī)工程,,2006,,32(24):84-86.
[6] 楊其欽.校園網(wǎng)中基于令牌桶算法的流量控制研究[D].廣州:暨南大學(xué),2012.
[7] COME D E. Internetworking with TCP/IP Vol I: Principles,, Protocols,, and Architectures(Fourth Edition)[M].林瑤,譯.北京:電子工業(yè)出版社,,2001.
[8] 張文盛.基于Netfilter的內(nèi)網(wǎng)流量控制系統(tǒng)應(yīng)用研究[J].山東理工大學(xué)學(xué)報(bào)(自然科學(xué)版),,2012,,26(6):44-48.