• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      王德勁,杜 仲

      (1.光纖通信技術和網(wǎng)絡國家重點試驗實,湖北 武漢 430074;2.武漢郵電科學研究院,湖北 武漢 430074)

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

      1 Linux流量控制原理

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

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

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

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

      圖1 HTB租借模型

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

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

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

      只要給出合法的參數(shù),流量控制系統(tǒng)就能對ESSID的上下行流量都進行有效的控制。上行流中,數(shù)據(jù)先進入athn,然后上橋br0,再由br0轉(zhuǎn)入有線口eth0發(fā)送出去。下行流則相反,數(shù)據(jù)先經(jīng)過eth0,進入br0,然后再通過無線口athn發(fā)送出去。整個過程,數(shù)據(jù)都在二層傳輸,因此要對數(shù)據(jù)包進行過濾和標記,需要使用以太網(wǎng)防火墻工具Ebtables,流量控制工具TC才能根據(jù)標記對數(shù)據(jù)包進行整形。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ù)包進行過濾,nat用于地址轉(zhuǎn)換,broute決定數(shù)據(jù)包是在數(shù)據(jù)鏈路層轉(zhuǎn)發(fā)還是在網(wǎng)絡層轉(zhuǎn)發(fā),默認是在數(shù)據(jù)鏈路層轉(zhuǎn)發(fā)。表包含鏈,broute有 BROUTING鏈;filter有 FORWARD,INPUT和 OUTPUT 鏈;nat有 PREROUTING,OUTPUT和POSTROUTING鏈[3]。一般對數(shù)據(jù)作標記是在filter的FORWARD進行。每條鏈中有一系列規(guī)則,每個規(guī)則定義了一些過濾選項。進入鏈中的數(shù)據(jù)包都會匹配這些項,一但匹配成功就會執(zhí)行對應的操作,最常用的操作是ACCEPT和DROP,即接收匹配的數(shù)據(jù)包,丟棄不匹配的。

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

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

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

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

      3 性能分析

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

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

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

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

      圖4 限速后的上行吞吐量

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

      C_TEST1帶寬租借情況(截圖)

      4 小結(jié)

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

      [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)絡傳輸融合及網(wǎng)絡安全防控技術研究
      稱金塊
      基于多空間內(nèi)存共享的數(shù)據(jù)鏈路層網(wǎng)絡包捕獲方法
      卷入Hohlov算子的某解析雙單葉函數(shù)子類的系數(shù)估計
      基于路由和QoS令牌桶的集中式限速網(wǎng)關
      動態(tài)令牌分配的TCSN多級令牌桶流量監(jiān)管算法
      計算機工程(2018年8期)2018-08-17 00:26:54
      關于對稱共軛點的倒星象函數(shù)某些子類的系數(shù)估計
      數(shù)據(jù)鏈路層的選擇重傳協(xié)議的優(yōu)化改進
      IEEE 1394事務層接口的設計與實現(xiàn)
      塊H矩陣新的子類
      龙井市| 咸丰县| 望城县| 阳信县| 新民市| 博爱县| 凉山| 定西市| 涞水县| 正蓝旗| 婺源县| 信丰县| 江西省| 宜城市| SHOW| 平安县| 时尚| 桐梓县| 郓城县| 荣昌县| 深圳市| 吉隆县| 林周县| 井研县| 宁乡县| 蓬溪县| 上饶县| 根河市| 类乌齐县| 旺苍县| 积石山| 称多县| 若尔盖县| 保康县| 宜良县| 金坛市| 水城县| 隆子县| 浮梁县| 西畴县| 土默特右旗|