999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種基于A(yíng)P ESSID的智能流量控制方法

2012-06-25 07:02:44王德勁
電視技術(shù) 2012年7期
關(guān)鍵詞:分類(lèi)

王德勁,杜 仲

(1.光纖通信技術(shù)和網(wǎng)絡(luò)國(guó)家重點(diǎn)試驗(yàn)實(shí),湖北 武漢 430074;2.武漢郵電科學(xué)研究院,湖北 武漢 430074)

無(wú)線(xiàn)局域網(wǎng)運(yùn)用越來(lái)越廣泛,保證網(wǎng)絡(luò)的穩(wěn)定性和網(wǎng)絡(luò)帶寬的有效利用十分重要。AP作為用戶(hù)通過(guò)無(wú)線(xiàn)網(wǎng)絡(luò)接入Internet的橋接器,透?jìng)鞫訑?shù)據(jù)包。Ebtables是以太網(wǎng)橋防火墻,工作在數(shù)據(jù)鏈路層,可用來(lái)過(guò)濾數(shù)據(jù)鏈路層數(shù)據(jù)包。本文基于Linux操作系統(tǒng),利用Ebtalbes二層打標(biāo)功能,結(jié)合開(kāi)源工具TC filter對(duì)數(shù)據(jù)包進(jìn)行分類(lèi),再利用分類(lèi)的隊(duì)列對(duì)數(shù)據(jù)包進(jìn)行整形,構(gòu)建了一個(gè)可以從數(shù)據(jù)鏈路層進(jìn)行流量控制的系統(tǒng)。

1 Linux流量控制原理

Linux操作系統(tǒng)的TC(Traffic Control)工具用于Linux內(nèi)核的流量控制,主要通過(guò)在輸出端口建立一個(gè)隊(duì)列來(lái)實(shí)現(xiàn)。一般只限制網(wǎng)卡發(fā)送的數(shù)據(jù)包,而不限制接收的數(shù)據(jù)包,即“控發(fā)不控收”。

Linux流量控制方式包括整形、調(diào)度、策略、丟棄和標(biāo)記[1]。整形就是通過(guò)延遲隊(duì)列中的數(shù)據(jù)包的發(fā)送使其發(fā)送速率控制在一個(gè)固定的水平以下。而調(diào)度是對(duì)隊(duì)列中數(shù)據(jù)包的發(fā)送順序進(jìn)行排列或重排。先入先出隊(duì)列(FIFO)是最常見(jiàn)的調(diào)度器。決策器能計(jì)算并限制某個(gè)特定隊(duì)列的流量,當(dāng)網(wǎng)絡(luò)流量超過(guò)預(yù)設(shè)值時(shí),決策器就開(kāi)始采取某種預(yù)設(shè)的操作,從而將流量限制在某個(gè)范圍。決策器最直接的操作是丟棄數(shù)據(jù)包。標(biāo)記是一種對(duì)數(shù)據(jù)包進(jìn)行一些修改的操作。

流量的處理由3種對(duì)象控制,即排隊(duì)規(guī)則(qdisc)、類(lèi)(class)和過(guò)濾器(filter)。隊(duì)列用來(lái)控制網(wǎng)絡(luò)的收發(fā)速度,通過(guò)隊(duì)列,Linux可以將網(wǎng)絡(luò)數(shù)據(jù)包緩存起來(lái),然后根據(jù)用戶(hù)的設(shè)置,在盡量不中斷連接(如TCP)的前提下來(lái)平滑網(wǎng)絡(luò)流量。qdisc分為可分類(lèi)的和不可分類(lèi)的,可分類(lèi)的qdisc包括CBQ(基于類(lèi)的隊(duì)列)、分層的令牌桶(HTB)和基于優(yōu)先級(jí)的隊(duì)列(PRIO),其中HTB是本系統(tǒng)所采用的排隊(duì)類(lèi)型。類(lèi)存在于可分類(lèi)的qdisc之下,不同的類(lèi)別中可以包含更深入的qdisc,即子類(lèi),通過(guò)這些細(xì)分的qdisc還可以為進(jìn)入隊(duì)列的數(shù)據(jù)包進(jìn)一步排隊(duì)。通過(guò)設(shè)置各種類(lèi)別數(shù)據(jù)包的離隊(duì)次序,qdisc還可以為網(wǎng)絡(luò)數(shù)據(jù)流設(shè)置優(yōu)先級(jí)。過(guò)濾器是Linux流量控制系統(tǒng)中最復(fù)雜的對(duì)象,它是連接各個(gè)流量控制核心組件的紐帶。過(guò)濾器最簡(jiǎn)單和最常見(jiàn)的用法就是對(duì)數(shù)據(jù)包進(jìn)行分類(lèi)。

HTB是基于令牌、桶以及分層的思想。令牌就像通行證,數(shù)據(jù)包只有在擁有令牌的情況下才能出隊(duì)。系統(tǒng)以一定的速率產(chǎn)生令牌并填到桶中,直到桶滿(mǎn)為止。這種思想的優(yōu)點(diǎn)在于,如果令牌產(chǎn)生的數(shù)量大于其被消耗的數(shù)量,令牌將會(huì)被積累起來(lái),這樣不僅能保證在較長(zhǎng)一段時(shí)間內(nèi)網(wǎng)絡(luò)流量在限定值以下,又能處理大速率的突發(fā)數(shù)據(jù)傳輸[1]。分層是通過(guò)類(lèi)實(shí)現(xiàn)的,類(lèi)可以有子類(lèi)。通過(guò)層次共享,當(dāng)子類(lèi)流量超過(guò)了某個(gè)值時(shí),可以向其父類(lèi)租借令牌,如果直接父類(lèi)不能滿(mǎn)足,則繼續(xù)向上借用,直到子類(lèi)借到需要的令牌或達(dá)到根節(jié)點(diǎn)為止[2]。HTB租借模型如圖1所示。

圖1 HTB租借模型

在HTB租借模型中,父節(jié)點(diǎn)下的兄弟節(jié)點(diǎn)確保速率必須得到保證,葉子節(jié)點(diǎn)或子分類(lèi)必須向其父對(duì)象歸還借用的令牌,層層向上直到根分類(lèi)。

2 Linux流量控制在A(yíng)P中的實(shí)現(xiàn)

AP是無(wú)線(xiàn)局域網(wǎng)中的橋接器,在硬件平臺(tái)上,給它配置一塊ETH網(wǎng)卡和一塊WiFi網(wǎng)卡。AP通過(guò)ETH卡的eth0口與有線(xiàn)網(wǎng)相連。一塊WiFi卡可以創(chuàng)建多個(gè)虛AP(用athn表示,n可以是0到MAX_ATH之間的任一數(shù)值,MAX_ATH為能創(chuàng)建的最大虛AP個(gè)數(shù)),每個(gè)虛AP對(duì)應(yīng)一個(gè)ESSID,用于被STA關(guān)聯(lián)。eth0和athn之間通過(guò)建立一個(gè)橋接器(這里用br0表示)橋接在一起。

只要給出合法的參數(shù),流量控制系統(tǒng)就能對(duì)ESSID的上下行流量都進(jìn)行有效的控制。上行流中,數(shù)據(jù)先進(jìn)入athn,然后上橋br0,再由br0轉(zhuǎn)入有線(xiàn)口eth0發(fā)送出去。下行流則相反,數(shù)據(jù)先經(jīng)過(guò)eth0,進(jìn)入br0,然后再通過(guò)無(wú)線(xiàn)口athn發(fā)送出去。整個(gè)過(guò)程,數(shù)據(jù)都在二層傳輸,因此要對(duì)數(shù)據(jù)包進(jìn)行過(guò)濾和標(biāo)記,需要使用以太網(wǎng)防火墻工具Ebtables,流量控制工具TC才能根據(jù)標(biāo)記對(duì)數(shù)據(jù)包進(jìn)行整形。Linux內(nèi)核2.6版以上都內(nèi)置了 Ebtables和iproute2(iproute2包含了TC工具)。

2.1 Ebtables數(shù)據(jù)處理

Ebtables的配置包括表、鏈和規(guī)則。表是內(nèi)置且固定的,共有filter,nat和broute這3種。filter用于對(duì)數(shù)據(jù)包進(jìn)行過(guò)濾,nat用于地址轉(zhuǎn)換,broute決定數(shù)據(jù)包是在數(shù)據(jù)鏈路層轉(zhuǎn)發(fā)還是在網(wǎng)絡(luò)層轉(zhuǎn)發(fā),默認(rèn)是在數(shù)據(jù)鏈路層轉(zhuǎn)發(fā)。表包含鏈,broute有 BROUTING鏈;filter有 FORWARD,INPUT和 OUTPUT 鏈;nat有 PREROUTING,OUTPUT和POSTROUTING鏈[3]。一般對(duì)數(shù)據(jù)作標(biāo)記是在filter的FORWARD進(jìn)行。每條鏈中有一系列規(guī)則,每個(gè)規(guī)則定義了一些過(guò)濾選項(xiàng)。進(jìn)入鏈中的數(shù)據(jù)包都會(huì)匹配這些項(xiàng),一但匹配成功就會(huì)執(zhí)行對(duì)應(yīng)的操作,最常用的操作是ACCEPT和DROP,即接收匹配的數(shù)據(jù)包,丟棄不匹配的。

2.2 程序?qū)崿F(xiàn)

流量控制功能以接口的方式實(shí)現(xiàn),接口需要輸入“struct qos{char essid[128];int ratev;int ceilv;int priv;};”結(jié)構(gòu)的一個(gè)數(shù)組和“int num”表示數(shù)組元素個(gè)數(shù)的兩個(gè)參數(shù),num的最大值為MAX_ATH。對(duì)于一個(gè)essid,ratev為系統(tǒng)為其確保的帶寬,ceilv為其最高可占用帶寬,priv為其搶占帶寬的能力,priv數(shù)值越小搶占能力越強(qiáng)。

程序主要分為兩步,第一步將ESSID映射為athn,第二步對(duì)相應(yīng)的網(wǎng)口實(shí)施整形操作。在上行流中,需要在athn口標(biāo)記數(shù)據(jù)包,然后在eth0口對(duì)數(shù)據(jù)包進(jìn)行整形。在下行流中則相反。由于上下行流量控制算法思想類(lèi)似,這里只給出上行流量控制程序流程圖,如圖2所示。

圖2 上行流量控制程序流程圖

3 性能分析

為AP板燒寫(xiě)Linux 2.6版內(nèi)核和簡(jiǎn)單流量控制測(cè)試程序。搭建的測(cè)試網(wǎng)絡(luò)需要一臺(tái)普通PC、兩臺(tái)筆記本計(jì)算機(jī)(STA1和STA2)和一個(gè)AP。在A(yíng)P的ath0和ath1口分別建立ESSID:TC_TEST1,TC_TEST2。ath0,ath1 都通過(guò)br0 與eth0橋接在一起。STA1與TC_TEST1通過(guò)無(wú)線(xiàn)關(guān)聯(lián)(稱(chēng)為pair1),STA2與TC_TEST2關(guān)聯(lián)(稱(chēng)為pair2)。PC與AP的eth0口通過(guò)有線(xiàn)直接相連。為方便測(cè)試,在測(cè)試過(guò)程中將通過(guò)eth0的上行流量始終限制為800 bit/s。采用chariot作為網(wǎng)絡(luò)吞吐量測(cè)試工具,測(cè)試時(shí)間為1 min。

在未作任何其他流量限制前,上行吞吐量變化曲線(xiàn)如圖3所示。由圖可知,兩者的曲線(xiàn)除了在最開(kāi)始的一小段時(shí)間內(nèi)有點(diǎn)變化外,后面都重疊在一起且?guī)缀跏瞧骄€(xiàn)。出現(xiàn)這種現(xiàn)象的原因是,eth0口的上行流量被限制在800 bit/s,且兩條流量的優(yōu)先級(jí)是一樣的。

圖3 無(wú)流控下的上行吞吐量

在簡(jiǎn)單測(cè)試程序中,給流量控制接口傳入?yún)?shù)“struct essid_qos[]={{TC_TEST1,200,600,1},{TC_TEST2,200,600,2}},num=2”。對(duì)流量進(jìn)行限速后,吞吐量曲線(xiàn)出現(xiàn)了明顯的變化,如圖4所示。此時(shí)pair1的曲線(xiàn)要高于 pair2,chariot計(jì)算出 pair1的吞吐量平均值為0.387 Mbit/s,pair2 的為0.376 Mbit/s。造成這種差異性,是因?yàn)殡m然系統(tǒng)給TC_TEST1和TC_TEST2分配的確保帶寬和最高可占用帶寬都一樣,但是給TC_TEST1設(shè)置的優(yōu)先級(jí)要高于TC_TEST2,即TC_TEST1帶寬搶占能力更強(qiáng)。

圖4 限速后的上行吞吐量

從圖4可以看出,兩曲線(xiàn)的形狀具有互補(bǔ)性,即當(dāng)兩線(xiàn)同時(shí)達(dá)到某個(gè)不高的峰時(shí),它們會(huì)同時(shí)下降,且pair2下降得更快。這種現(xiàn)象以及上面給出的pair1和pair2的吞吐量平均值反映了帶寬的共享問(wèn)題。在程序中,給TC_TEST1和TC_TEST2提供的確保帶寬都為200 bit/s,但實(shí)際上,它們的均值超過(guò)了這個(gè)數(shù)字,說(shuō)明都向父類(lèi)租借了一部分帶寬。而父類(lèi)的總空閑帶寬是一定的,當(dāng)它把這部分帶寬租借給了其中一個(gè),就無(wú)法同時(shí)滿(mǎn)足另一個(gè),出現(xiàn)了吞吐量曲線(xiàn)互補(bǔ)的現(xiàn)象。通過(guò)命令行可以查看帶寬的租借情況,圖5顯示的是TC_TEST1的帶寬租借情況。lended表示向外借出了多少數(shù)據(jù)包數(shù),borrowed表示從外借入了多少數(shù)據(jù)包數(shù)。

C_TEST1帶寬租借情況(截圖)

4 小結(jié)

由實(shí)驗(yàn)數(shù)據(jù)和分析可知,采用Linux流量控制工具Ebtables和TC能有效控制無(wú)線(xiàn)接入點(diǎn)中ESSID的上下行流量。在無(wú)線(xiàn)帶寬有限的前提下,不僅能夠防止ESSID用戶(hù)之間發(fā)生的帶寬爭(zhēng)奪,保證帶寬分配的公平性,還可以將用戶(hù)分成不同的類(lèi)別等級(jí),給特權(quán)用戶(hù)較多的帶寬,同時(shí)限制普通用戶(hù)的帶寬。也可以做到在某類(lèi)用戶(hù)不使用帶寬時(shí),將空閑的帶寬租借給其他用戶(hù),這樣能夠達(dá)到充分利用有限資源的目的。

[1]MARTIN A.Brown traffic control howto[EB/OL].[2011-08-22].http://tldp.org/HOWTO/Traffic-Control-HOWTO/index.html.

[2]Manual:HTB.[EB/OL].[2011-08-22].http://wiki.mikrotik.com/wiki/Manual:HTB.

[3]Ebtables/iptables interaction on a Linux-based bridge[EB/OL].[2011-08-20].http://ebtables.sourceforge.net/br_fw_ia/br_fw_ia.html.

猜你喜歡
分類(lèi)
2021年本刊分類(lèi)總目錄
分類(lèi)算一算
垃圾分類(lèi)的困惑你有嗎
大眾健康(2021年6期)2021-06-08 19:30:06
星星的分類(lèi)
我給資源分分類(lèi)
垃圾分類(lèi),你準(zhǔn)備好了嗎
分類(lèi)討論求坐標(biāo)
數(shù)據(jù)分析中的分類(lèi)討論
按需分類(lèi)
教你一招:數(shù)的分類(lèi)
主站蜘蛛池模板: 色婷婷丁香| 国产美女91呻吟求| 国产第一页屁屁影院| 欧美一级高清片欧美国产欧美| 欧美精品啪啪| 97超爽成人免费视频在线播放| 国产麻豆aⅴ精品无码| 国产成人欧美| 久久国产精品夜色| 任我操在线视频| 久久9966精品国产免费| 日本高清免费一本在线观看| 国产成人精品一区二区秒拍1o| 中文字幕亚洲另类天堂| 久爱午夜精品免费视频| 无码日韩人妻精品久久蜜桃| 污视频日本| 国产又大又粗又猛又爽的视频| 日本人妻一区二区三区不卡影院 | 亚洲色无码专线精品观看| 国外欧美一区另类中文字幕| 亚洲a级毛片| 美女视频黄又黄又免费高清| 一级高清毛片免费a级高清毛片| 精品国产中文一级毛片在线看| 欧美午夜在线视频| 亚洲手机在线| 一级做a爰片久久毛片毛片| 亚洲高清在线播放| 人妻丰满熟妇AV无码区| 国产毛片基地| 亚洲欧美日韩久久精品| 一本大道无码日韩精品影视| 女同国产精品一区二区| 亚洲天堂色色人体| 国模在线视频一区二区三区| 免费AV在线播放观看18禁强制| 欧美日韩亚洲国产| 国产a v无码专区亚洲av| 成人精品亚洲| 一级毛片免费观看久| 91精品专区国产盗摄| 91国内在线视频| 国产精品久久久久久久久kt| 玖玖精品视频在线观看| 色135综合网| 91最新精品视频发布页| 欧洲日本亚洲中文字幕| 欧美成人在线免费| 精品无码日韩国产不卡av| 一本无码在线观看| 久久精品最新免费国产成人| 久久精品无码一区二区国产区| 伊人久久大香线蕉综合影视| 久久semm亚洲国产| 日韩小视频在线播放| 欧美一区精品| 国产xxxxx免费视频| 国产亚洲精品无码专| 麻豆精品久久久久久久99蜜桃| 曰AV在线无码| www.亚洲一区| 亚洲欧美日韩另类| 国产午夜无码片在线观看网站| 午夜a级毛片| 波多野结衣无码中文字幕在线观看一区二区 | 国产成人精品一区二区三区| 国产精品永久在线| jijzzizz老师出水喷水喷出| 欧美午夜在线观看| 少妇精品在线| 国产xx在线观看| 午夜毛片福利| 在线观看精品国产入口| 秘书高跟黑色丝袜国产91在线| 欧美成人免费一区在线播放| 国产成人精品视频一区视频二区| 99热最新网址| 久久男人视频| 女同久久精品国产99国| 青青青国产在线播放| 蜜臀AV在线播放|