国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Linux流量控制中的HTB隊列創(chuàng)建與過濾

運(yùn)維 系統(tǒng)運(yùn)維
Linux流量控制需要一個叫TC的輔助工具完成,同時也需要HTB隊列來完成相關(guān)的流量控制。利用HTB中類別和子類別的包含關(guān)系可以實(shí)現(xiàn)靈活的帶寬共享和獨(dú)占模式,達(dá)到企業(yè)級的帶寬管理目的。

眾所周知,在互聯(lián)網(wǎng)誕生之初都是各個高校和科研機(jī)構(gòu)相互通訊,并沒有Linux流量控制方面的考慮和設(shè)計,IP協(xié)議的原則是盡可能好地為所有數(shù)據(jù)流服務(wù),不同的數(shù)據(jù)流之間是平等的。然而多年的實(shí)踐表明,這種原則并不是最理想的,有些數(shù)據(jù)流應(yīng)該得到特別的照顧, 比如,遠(yuǎn)程登錄的交互數(shù)據(jù)流應(yīng)該比數(shù)據(jù)下載有更高的優(yōu)先級。

針對不同的數(shù)據(jù)流采取不同的策略,這種可能性是存在的。并且,隨著研究的發(fā)展和深入, 人們已經(jīng)提出了各種不同的管理模式。IETF已經(jīng)發(fā)布了幾個標(biāo)準(zhǔn), 如綜合服務(wù)(Integrated Services)、區(qū)分服務(wù)(Diferentiated Services)等。其實(shí),Linux內(nèi)核從2 2開始,就已經(jīng)實(shí)現(xiàn)了相關(guān)的流量控制功能。本文將介紹Linux中有關(guān)流量控制的相關(guān)概念, 用于Linux流量控制的工具TC的使用方法,并給出幾個有代表性實(shí)例。

一、相關(guān)概念

由此可以看出, 報文分組從輸入網(wǎng)卡(入口)接收進(jìn)來,經(jīng)過路由的查找, 以確定是發(fā)給本機(jī)的,還是需要轉(zhuǎn)發(fā)的。如果是發(fā)給本機(jī)的,就直接向上遞交給上層的協(xié)議,比如TCP,如果是轉(zhuǎn)發(fā)的, 則會從輸出網(wǎng)卡(出口)發(fā)出。網(wǎng)絡(luò)流量控制通常發(fā)生在輸出網(wǎng)卡處。雖然在路由器的入口處也可以進(jìn)行流量控制,Linux也具有相關(guān)的功能, 但一般說來, 由于我們無法控制自己網(wǎng)絡(luò)之外的設(shè)備, 入口處的Linux流量控制相對較難。本文將集中介紹出口處的流量控制。流量控制的一個基本概念是隊列(Qdisc),每個網(wǎng)卡都與一個隊列(Qdisc)相聯(lián)系, 每當(dāng)內(nèi)核需要將報文分組從網(wǎng)卡發(fā)送出去, 都會首先將該報文分組添加到該網(wǎng)卡所配置的隊列中, 由該隊列決定報文分組的發(fā)送順序。因此可以說,所有的Linux流量控制都發(fā)生在隊列中,詳細(xì)流程圖見圖1。

報文在Linux內(nèi)部流程圖

圖1報文在Linux內(nèi)部流程圖

有些隊列的功能是非常簡單的, 它們對報文分組實(shí)行先來先走的策略。有些隊列則功能復(fù)雜,會將不同的報文分組進(jìn)行排隊、分類,并根據(jù)不同的原則, 以不同的順序發(fā)送隊列中的報文分組。為實(shí)現(xiàn)這樣的功能,這些復(fù)雜的隊列需要使用不同的過濾器(Filter)來把報文分組分成不同的類別(Class)。這里把這些復(fù)雜的隊列稱為可分類(ClassfuI)的隊列。通常, 要實(shí)現(xiàn)功能強(qiáng)大的Linux流量控制, 可分類的隊列是必不可少的。因此,類別(class)和過濾器(Filter)也是流量控制的另外兩個重要的基本概念。圖2所示的是一個可分類隊列的例子。

多類別隊列

圖2多類別隊列

由圖2可以看出,類別(CIass)和過濾器(Filter)都是隊列的內(nèi)部結(jié)構(gòu), 并且可分類的隊列可以包含多個類別,同時,一個類別又可以進(jìn)一步包含有子隊列,或者子類別。所有進(jìn)入該類別的報文分組可以依據(jù)不同的原則放入不同的子隊列或子類別中,以此類推。而過濾器(Filter)是隊列用來對數(shù)據(jù)報文進(jìn)行分類的工具, 它決定一個數(shù)據(jù)報文將被分配到哪個類別中。

二、使用TC

在Linux中,Linux流量控制都是通過TC這個工具來完成的。通常, 要對網(wǎng)卡進(jìn)行流量控制的配置,需要進(jìn)行如下的步驟:

◆ 為網(wǎng)卡配置一個隊列;

◆ 在該隊列上建立分類;

◆ 根據(jù)需要建立子隊列和子分類;

◆ 為每個分類建立過濾器。

在Linux中,可以配置很多類型的隊列,比如CBQ、HTB等,其中CBQ 比較復(fù)雜,不容易理解。HTB(HierarchicaIToken Bucket)是一個可分類的隊列, 與其他復(fù)雜的隊列類型相比,HTB具有功能強(qiáng)大、配置簡單及容易上手等優(yōu)點(diǎn)。在TC 中, 使用"major:minor"這樣的句柄來標(biāo)識隊列和類別,其中major和minor都是數(shù)字。

對于隊列來說,minor總是為0,即"major:0"這樣的形式,也可以簡寫為"major: 比如,隊列1:0可以簡寫為1:。需要注意的是,major在一個網(wǎng)卡的所有隊列中必須是惟一的。對于類別來說,其major必須和它的父類別或父隊列的major相同,而minor在一個隊列內(nèi)部則必須是惟一的(因?yàn)轭悇e肯定是包含在某個隊列中的)。舉個例子,如果隊列2:包含兩個類別,則這兩個類別的句柄必須是2:x這樣的形式,并且它們的x不能相同, 比如2:1和2:2。

下面,將以HTB隊列為主,結(jié)合需求來講述TC的使用。假設(shè)eth0出口有100mbit/s的帶寬, 分配給WWW 、E-mail和Telnet三種數(shù)據(jù)流量, 其中分配給WWW的帶寬為40Mbit/s,分配給Email的帶寬為40Mbit/s, 分配給Telnet的帶寬為20Mbit/S。

需要注意的是, 在TC 中使用下列的縮寫表示相應(yīng)的帶寬:

◆ Kbps kiIobytes per second, 即"千字節(jié)每秒 ;

◆ Mbps megabytes per second, 即"兆字節(jié)每秒 ,

◆ Kbit kilobits per second,即"千比特每秒 ;

◆ Mbit megabits per second, 即"兆比特每秒 。#p#

三、創(chuàng)建HTB隊列

有關(guān)隊列的TC命令的一般形式為:

  1. #tc qdisc [add|change|replace|link] dev DEV [parent qdisk-id|
    root][handle qdisc-id] qdisc[qdisc specific parameters] 

首先,需要為網(wǎng)卡eth0配置一個HTB隊列,使用下列命令:

  1. #tc qdisc add dev eth0 root handle 1:htb default 11 

這里,命令中的"add 表示要添加,"dev eth0 表示要操作的網(wǎng)卡為eth0。"root 表示為網(wǎng)卡eth0添加的是一個根隊列。"handle 1: 表示隊列的句柄為1:。"htb 表示要添加的隊列為HTB隊列。命令***的"default 11 是htb特有的隊列參數(shù),意思是所有未分類的流量都將分配給類別1:11。

四、為根隊列創(chuàng)建相應(yīng)的類別

有關(guān)類別的TC 命令的一般形式為:

  1. #tc class [add|change|replace] dev DEV parent qdisc-id 
    [classid class-id] qdisc [qdisc specific parameters] 

可以利用下面這三個命令為根隊列1創(chuàng)建三個類別,分別是1:1 1、1:12和1:13,它們分別占用40、40和20mb[t的帶寬。

  1. #tc class add dev eth0 parent 1: classid 1:1 htb rate 40mbit ceil 40mbit  
  2. #tc class add dev eth0 parent 1: classid 1:12 htb rate 40mbit ceil 40mbit  
  3. #tc class add dev eth0 parent 1: cllassid 1:13 htb rate 20mbit ceil 20mbit 

命令中,"parent 1:"表示類別的父親為根隊列1:。"classid1:11"表示創(chuàng)建一個標(biāo)識為1:11的類別,"rate 40mbit"表示系統(tǒng)

將為該類別確保帶寬40mbit,"ceil 40mbit",表示該類別的***可占用帶寬為40mbit。

五、為各個類別設(shè)置過濾器

有關(guān)過濾器的TC 命令的一般形式為:

  1. #tc filter [add|change|replace] dev DEV [parent qdisc-id
    |root] protocol protocol prio priority filtertype [filtertype 
    specific parameters] flowid flow-id 

由于需要將WWW、E-mail、Telnet三種流量分配到三個類別,即上述1:11、1:12和1:13,因此,需要創(chuàng)建三個過濾器,如下面的三個命令:

  1. #tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:11  
  2. #tc filter add dev eth0 prtocol ip parent 1:0 prio 1 u32 match ip dport 25 0xffff flowid 1:12  
  3. #tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 23 oxffff flowid 1:13 

這里,"protocol ip"表示該過濾器應(yīng)該檢查報文分組的協(xié)議字段。"pr[o 1" 表示它們對報文處理的優(yōu)先級是相同的,對于不同優(yōu)先級的過濾器, 系統(tǒng)將按照從小到大的優(yōu)先級。

順序來執(zhí)行過濾器, 對于相同的優(yōu)先級,系統(tǒng)將按照命令的先后順序執(zhí)行。這幾個過濾器還用到了u32選擇器(命令中u32后面的部分)來匹配不同的數(shù)據(jù)流。以***個命令為例,判斷的是dport字段,如果該字段與Oxffff進(jìn)行與操作的結(jié)果是8O,則"flowid 1:11" 表示將把該數(shù)據(jù)流分配給類別1:1 1。更加詳細(xì)的有關(guān)TC的用法可以參考TC 的手冊頁。

六、復(fù)雜的實(shí)例

在上面的例子中, 三種數(shù)據(jù)流(www、Email、Telnet)之間是互相排斥的。當(dāng)某個數(shù)據(jù)流的流量沒有達(dá)到配額時,其剩余的帶寬并不能被其他兩個數(shù)據(jù)流所借用。在這里將涉及如何使不同的數(shù)據(jù)流可以共享一定的帶寬。

首先需要用到HTB的一個特性, 即對于一個類別中的所有子類別,它們將共享該父類別所擁有的帶寬,同時,又可以使得各個子類別申請的各自帶寬得到保證。這也就是說,當(dāng)某個數(shù)據(jù)流的實(shí)際使用帶寬沒有達(dá)到其配額時, 其剩余的帶寬可以借給其他的數(shù)據(jù)流。而在借出的過程中,如果本數(shù)據(jù)流的數(shù)據(jù)量增大,則借出的帶寬部分將收回, 以保證本數(shù)據(jù)流的帶寬配額。

下面考慮這樣的需求, 同樣是三個數(shù)據(jù)流WWW、E-mail和Telnet, 其中的Telnet獨(dú)立分配20Mbit/s的帶寬。另一方面,VWVW 和SMTP各自分配40Mbit/s。同時,它們又是共享的關(guān)系, 即它們可以互相借用帶寬。如圖3所示。

Linux流量控制圖三 

圖三

需要的TC命令如下:

  1. #tc qdisc add dev eth0 root handle 1: htb default 21  
  2. #tc class add dev eth0 partent 1: classid 1:1 htb rate 
    20mbit ceil 20mbit  
  3. #tc class add dev eth0 parent 1: classid 1:2 htb rate 
    80mbit ceil 80mbit  
  4. #tc class add dev eth0 parent 1: classid 1:21 htb rate 
    40mbit ceil 20mbit  
  5. #tc class add dev eth0 parent 1:2 classid 1:22 htb rate 
    40mbit ceil 80mbit  
  6. #tc filter add dev eth0 protocol parent 10 prio 1 u32 
    match ip dport 80 0xffff flowid 1:21  
  7. #tc filter add dev eth0 protocol parent 1:0 prio 1 u32 
    match ip dport 25 0xffff flowid 1:22  
  8. #tc filter add dev eth0 protocol parent 1:0 prio 1 u32 
    match ip dport 23 0xffff flowid 1:1 

這里為根隊列1創(chuàng)建兩個根類別,即1:1和1:2,其中1:1對應(yīng)Telnet數(shù)據(jù)流,1:2對應(yīng)80Mbit的數(shù)據(jù)流。然后,在1:2中,創(chuàng)建兩個子類別1:21和1:22,分別對應(yīng)WWW和E-mail數(shù)據(jù)流。由于類別1:21和1:22是類別1:2的子類別,因此他們可以共享分配的80Mbit帶寬。同時,又確保當(dāng)需要時,自己的帶寬至少有40Mbit。

從這個例子可以看出,利用HTB中類別和子類別的包含關(guān)系,可以構(gòu)建更加復(fù)雜的多層次類別樹,從而實(shí)現(xiàn)的更加靈活的帶寬共享和獨(dú)占模式,達(dá)到企業(yè)級的帶寬管理目的。

【編輯推薦】

  1. 詳解Linux網(wǎng)絡(luò)故障解決辦法
  2. 深入了解Linux網(wǎng)絡(luò)命令知識
  3. 教會你如何完成Linux網(wǎng)絡(luò)地址配置
  4. 經(jīng)典文檔:Linux網(wǎng)絡(luò)安全配置基礎(chǔ)詳解
  5. Linux網(wǎng)絡(luò)中ADSL連接故障排除方法
責(zé)任編輯:張浩 來源: IT實(shí)驗(yàn)室
相關(guān)推薦

2010-06-04 10:49:58

Linux流量控制

2010-05-27 11:03:44

Linux流量控制

2010-06-17 17:00:07

Linux流量控制

2010-02-03 23:04:31

流量控制P2P華夏創(chuàng)新

2023-10-08 12:14:42

Sentinel流量控制

2010-06-04 11:21:42

Linux 流量控制

2010-06-13 13:34:47

Linux 流量控制

2010-05-27 10:43:29

Linux流量控制

2024-03-04 00:02:00

Redis存儲令牌

2010-08-06 09:39:53

Linux流量控制

2011-06-23 09:09:37

流量控制

2013-07-22 14:25:29

iOS開發(fā)ASIHTTPRequ

2012-11-29 09:56:37

流量控制器過濾器Linux TC

2010-08-06 10:02:07

2021-03-09 07:38:15

Percona Xtr流量控制運(yùn)維

2021-03-22 08:06:59

SpringBootSentinel項目

2019-07-02 10:22:15

TCP流量數(shù)據(jù)

2009-02-05 10:13:00

局域網(wǎng)流量控制數(shù)據(jù)流量

2024-12-02 08:02:36

2024-04-30 11:00:10

數(shù)據(jù)中心
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

影音先锋久久久| 中文成人综合网| 国产69精品久久久久99| 深夜福利免费在线观看| 久久99精品网久久| 国产在线一区二区三区| 日韩网站中文字幕| 日本久久电影网| 少妇性l交大片| 自产国语精品视频| 中日韩美女免费视频网址在线观看| 天天看片激情网站| 成人精品小蝌蚪| 久久一区二区三区av| 国产日产精品一区二区三区四区的观看方式 | 欧美日韩日本视频| 天天综合网日韩| 国产麻豆日韩欧美久久| 91在线观看免费高清完整版在线观看| 久久精品国产福利| 欧美大胆人体bbbb| 91成人福利在线观看| 国产欧美日韩视频一区二区| 亚洲一区二区不卡视频| 91精品啪在线观看国产81旧版| 另类少妇人与禽zozz0性伦| 国产啊啊啊视频在线观看| 色婷婷av一区| 全部孕妇毛片丰满孕妇孕| 久久综合狠狠综合久久综合88 | 成人av免费观看| 亚洲砖区区免费| 欧美日韩亚洲一区在线观看| 国产精品视频不卡| 亚洲精品动态| 久久久久久久久久久亚洲| 国产成人免费av一区二区午夜| 亚洲激情视频在线| a级网站在线播放| 欧美日韩成人高清| 一不卡在线视频| 一区二区在线观看av| caoliu在线| 一级中文字幕一区二区| 啊啊啊好爽视频| 亚洲另类在线一区| 日本性视频网| 精品久久久视频| 中日韩一区二区三区| 欧美日韩国产综合视频在线观看中文| jizzjizz亚洲中国少妇| 亚洲成av人片| 蝌蚪视频在线播放| 色又黄又爽网站www久久| 五丁香在线视频| 日本精品视频一区二区三区| 欧美日韩在线精品一区二区三区激情综| 亚洲另类春色国产| 97在线观看免费高清视频| 一区二区欧美国产| 三级av在线| 666欧美在线视频| 丁香花视频在线观看| 日韩精品免费在线播放| 免费毛片b在线观看| 中文字幕欧美日韩精品| 一区二区免费| 国产精品入口夜色视频大尺度| 亚洲精品va| 欧美一级片免费观看| 国产一区中文字幕| 国产午夜福利视频在线观看| 亚洲欧洲www| 国产中文字幕在线视频| 精品福利一区二区三区免费视频| 久久青青视频| 欧美大学生性色视频| 日本精品视频| 国产在线播放不卡| 亚洲欧美高清| 成人短视频在线观看免费| 久久你懂得1024| 香蕉视频色版| 欧美v国产在线一区二区三区| 久久野战av| 668精品在线视频| 亚洲视频久久| www.夜夜爱| 亚洲一卡二卡三卡四卡| 日韩av大全| 欧美久久久久免费| 麻豆视频免费在线观看| 久久精品国产欧美激情| 欧美在线首页| 黄色一级片视频| 91精品国产91久久久| 黑丝美女一区二区| 久久色在线播放| 国产成人在线一区| 日韩一区二区精品葵司在线| 国产精品极品国产中出| 91久久国产综合久久91精品网站| 91在线一区二区| 伊甸园亚洲一区| 懂色av中文在线| 欧美精品18videosex性欧美| 91丨九色丨蝌蚪丨老版| 一本色道久久综合| 国产精品综合一区二区| 欧美激情午夜| 看一级黄色录像| 国产精品一区=区| 精品福利一区二区三区| av成人免费在线| 秋霞影院一区| 日韩精品看片| 亚洲精品三区| 最近中文字幕mv2018在线高清| 亚洲女人天堂网| 久久久亚洲一区| 波多野结衣在线影院| 国产精品人成电影| 亚洲精品视频免费观看| 精品国产亚洲一区二区三区大结局| 91视频成人免费| 亚洲第一中文字幕在线观看| 在线视频日韩| 色综合888| 成人精品在线观看| 狠狠躁夜夜躁人人爽天天天天97| 欧美亚洲国产精品久久| 国产男小鲜肉同志免费| 欧美在线视频一区二区| 国产精品乱码久久久久久| 中文字幕一区日韩精品| 欧美婷婷精品激情| 日本精品免费一区二区三区| 亚洲一区二区三区美女| 亚洲v在线看| 在线观看小视频| 天堂av在线中文| 中文字幕欧美日韩精品| 久久蜜桃av一区二区天堂 | 久久久999| 国语对白在线刺激| 日韩国产精品毛片| 国产午夜精品视频免费不卡69堂| 成人黄色777网| 欧美精品中文字幕亚洲专区| 免费羞羞视频| 成人一区二区电影| 欧美日韩国产在线播放网站| 日韩电影在线免费看| www.成人在线视频| 免费福利影院| 国产一区二区无遮挡| 亚洲国产一区二区三区在线观看 | 亚洲欧美自拍偷拍色图| 国产一区二区在线| 黄色免费在线播放| 亚洲开发第一视频在线播放| 最近日韩中文字幕中文| 亚洲精品免费电影| 中文日韩欧美| 中文字幕日韩亚洲| 九色porny在线观看| 欧美日韩一区二区视频在线| 亚洲欧美激情精品一区二区| 26uuu久久天堂性欧美| 宅男在线一区| 最新日本在线观看| 日韩亚洲在线视频| 超碰在线97av| 最近2019中文免费高清视频观看www99| 国产精品剧情在线亚洲| 国产精品chinese| 亚洲优女在线| 视频黄页在线| 轻点好疼好大好爽视频| 国产精品美女999| 日韩精品久久久久| 一区二区三区国产| 精品一区二区三区在线观看| gogo人体一区| av在线播放国产| 另类小说第一页| 精品伦精品一区二区三区视频| 日韩在线激情视频| 色婷婷av一区二区三区软件| 成人网页在线观看| 欧美精品成人| 一区二区三区四区精品视频| 黄色av网站在线播放| 日本视频一二三区中文字幕| 亚洲成色777777在线观看影院| 久久综合五月| 久久69av| 91精品国产综合久久久久久豆腐| 亚洲啊啊啊啊啊| 亚洲自拍偷拍视频|