亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于AP ESSID的智能流量控制方法

        2012-06-25 07:02:44王德勁
        電視技術(shù) 2012年7期
        關(guān)鍵詞:鏈路層子類令牌

        王德勁,杜 仲

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

        無線局域網(wǎng)運(yùn)用越來越廣泛,保證網(wǎng)絡(luò)的穩(wěn)定性和網(wǎng)絡(luò)帶寬的有效利用十分重要。AP作為用戶通過無線網(wǎng)絡(luò)接入Internet的橋接器,透傳二層數(shù)據(jù)包。Ebtables是以太網(wǎng)橋防火墻,工作在數(shù)據(jù)鏈路層,可用來過濾數(shù)據(jù)鏈路層數(shù)據(jù)包。本文基于Linux操作系統(tǒng),利用Ebtalbes二層打標(biāo)功能,結(jié)合開源工具TC filter對數(shù)據(jù)包進(jìn)行分類,再利用分類的隊(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)核的流量控制,主要通過在輸出端口建立一個(gè)隊(duì)列來實(shí)現(xiàn)。一般只限制網(wǎng)卡發(fā)送的數(shù)據(jù)包,而不限制接收的數(shù)據(jù)包,即“控發(fā)不控收”。

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

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

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

        圖1 HTB租借模型

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

        2 Linux流量控制在AP中的實(shí)現(xiàn)

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

        只要給出合法的參數(shù),流量控制系統(tǒng)就能對ESSID的上下行流量都進(jìn)行有效的控制。上行流中,數(shù)據(jù)先進(jìn)入athn,然后上橋br0,再由br0轉(zhuǎn)入有線口eth0發(fā)送出去。下行流則相反,數(shù)據(jù)先經(jīng)過eth0,進(jìn)入br0,然后再通過無線口athn發(fā)送出去。整個(gè)過程,數(shù)據(jù)都在二層傳輸,因此要對數(shù)據(jù)包進(jìn)行過濾和標(biāo)記,需要使用以太網(wǎng)防火墻工具Ebtables,流量控制工具TC才能根據(jù)標(biāo)記對數(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用于對數(shù)據(jù)包進(jìn)行過濾,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]。一般對數(shù)據(jù)作標(biāo)記是在filter的FORWARD進(jìn)行。每條鏈中有一系列規(guī)則,每個(gè)規(guī)則定義了一些過濾選項(xiàng)。進(jìn)入鏈中的數(shù)據(jù)包都會(huì)匹配這些項(xiàng),一但匹配成功就會(huì)執(zhí)行對應(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。對于一個(gè)essid,ratev為系統(tǒng)為其確保的帶寬,ceilv為其最高可占用帶寬,priv為其搶占帶寬的能力,priv數(shù)值越小搶占能力越強(qiáng)。

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

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

        3 性能分析

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

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

        圖3 無流控下的上行吞吐量

        在簡單測試程序中,給流量控制接口傳入?yún)?shù)“struct essid_qos[]={{TC_TEST1,200,600,1},{TC_TEST2,200,600,2}},num=2”。對流量進(jìn)行限速后,吞吐量曲線出現(xiàn)了明顯的變化,如圖4所示。此時(shí)pair1的曲線要高于 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可以看出,兩曲線的形狀具有互補(bǔ)性,即當(dāng)兩線同時(shí)達(dá)到某個(gè)不高的峰時(shí),它們會(huì)同時(shí)下降,且pair2下降得更快。這種現(xiàn)象以及上面給出的pair1和pair2的吞吐量平均值反映了帶寬的共享問題。在程序中,給TC_TEST1和TC_TEST2提供的確保帶寬都為200 bit/s,但實(shí)際上,它們的均值超過了這個(gè)數(shù)字,說明都向父類租借了一部分帶寬。而父類的總空閑帶寬是一定的,當(dāng)它把這部分帶寬租借給了其中一個(gè),就無法同時(shí)滿足另一個(gè),出現(xiàn)了吞吐量曲線互補(bǔ)的現(xiàn)象。通過命令行可以查看帶寬的租借情況,圖5顯示的是TC_TEST1的帶寬租借情況。lended表示向外借出了多少數(shù)據(jù)包數(shù),borrowed表示從外借入了多少數(shù)據(jù)包數(shù)。

        C_TEST1帶寬租借情況(截圖)

        4 小結(jié)

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

        猜你喜歡
        鏈路層子類令牌
        網(wǎng)絡(luò)傳輸融合及網(wǎng)絡(luò)安全防控技術(shù)研究
        稱金塊
        基于多空間內(nèi)存共享的數(shù)據(jù)鏈路層網(wǎng)絡(luò)包捕獲方法
        卷入Hohlov算子的某解析雙單葉函數(shù)子類的系數(shù)估計(jì)
        基于路由和QoS令牌桶的集中式限速網(wǎng)關(guān)
        動(dòng)態(tài)令牌分配的TCSN多級(jí)令牌桶流量監(jiān)管算法
        關(guān)于對稱共軛點(diǎn)的倒星象函數(shù)某些子類的系數(shù)估計(jì)
        數(shù)據(jù)鏈路層的選擇重傳協(xié)議的優(yōu)化改進(jìn)
        IEEE 1394事務(wù)層接口的設(shè)計(jì)與實(shí)現(xiàn)
        塊H矩陣新的子類
        失禁大喷潮在线播放| 日本免费一区二区三区在线播放| 国产亚洲自拍日本亚洲| 久久久久亚洲av片无码| 人人澡人人澡人人看添av| 国产一区二区三区小说| 精品亚洲不卡一区二区| 人妻人妇av一区二区三区四区| 午夜视频在线瓜伦| 亚洲色爱免费观看视频| 中文在线√天堂| 亚洲一区二区国产精品视频| 少妇被粗大的猛进69视频| 午夜精品久久久久久久| 日本理伦片午夜理伦片| 国产国拍亚洲精品午夜不卡17| 风韵丰满妇啪啪区老老熟女杏吧| 中文av字幕一区二区三区| 国产a级三级三级三级| 国产最新进精品视频| 婷婷激情六月| 日本高清人妻一区二区| 手机免费在线观看av网址| 99国产精品自在自在久久| 欧美老妇与禽交| 国产精品性一区二区三区| 国产视频一区二区三区观看 | 亚洲成av人片在www鸭子| 中文乱码字慕人妻熟女人妻| 在线观看亚洲AV日韩A∨| 午夜av福利亚洲写真集| 丰满少妇人妻久久精品| 无码中文字幕免费一区二区三区| www插插插无码视频网站| 日韩精品国产一区在线| 中文字幕av长濑麻美| 蜜臀av午夜一区二区三区| 色av综合av综合无码网站| 99久久免费精品色老| 国产精品高潮呻吟av久久黄| 精品无码国产一区二区三区av|