版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PAGE1頁共SECTIONPAGES5頁trafficcontrol(TC)學(xué)習(xí)文檔目錄26934第一章.概念 2119631.1Netem 25231第二章.原理 6266182.1TC 6105162.2簡(jiǎn)單的無類隊(duì)列規(guī)則 85507第三章.實(shí)踐應(yīng)用 9概念Netem是linux2.6及以上內(nèi)核版本提供的一個(gè)網(wǎng)絡(luò)模擬功能模塊。該功能模塊可以用在性能良好的局域網(wǎng)中,模擬出復(fù)雜的互聯(lián)網(wǎng)傳輸性能,諸如低帶寬,傳輸延遲,丟包等網(wǎng)絡(luò)故障情況。TC是linux系統(tǒng)中的一個(gè)工具,全名為trafficcontrol(流量控制)。TC可以用來控制netem的工作模式。也就是說,如果想使用netem,需要至少兩個(gè)條件,一個(gè)是內(nèi)核中的netem功能被包含,另一個(gè)是要有TC。通過TC,可以控制網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù)的速率,每個(gè)網(wǎng)絡(luò)接口(如eth0)都有一個(gè)隊(duì)列,用戶管理和調(diào)度待發(fā)的數(shù)據(jù)。Tc的原理就是,通過設(shè)置不同類型的網(wǎng)絡(luò)接口隊(duì)列,從而改變數(shù)據(jù)包發(fā)送的速率和優(yōu)先級(jí),達(dá)到流量控制的目的。原理Tc用于Linux內(nèi)核的流量控制?;靖拍盍髁靠刂瓢ㄒ韵聨追N方式:SHAPING(限制)當(dāng)流量被限制,他的傳輸速率就被控制在某個(gè)值以下。限制值能夠大大小于有效帶寬,這樣能夠平滑突發(fā)數(shù)據(jù)流量,使網(wǎng)絡(luò)更為穩(wěn)定。shaping(限制)只適用于向外的流量。SCHEDULING(調(diào)度)通過調(diào)度數(shù)據(jù)包的傳輸,能夠在帶寬范圍內(nèi),按照優(yōu)先級(jí)分配帶寬。SCHEDULING(調(diào)度)也只適于向外的流量。POLICING(策略)SHAPING用于處理向外的流量,而POLICIING(策略)用于處理接收到的數(shù)據(jù)。DROPPING(丟棄)假如流量超過某個(gè)設(shè)定的帶寬,就丟棄數(shù)據(jù)包,不管是向內(nèi)還是向外。流量的處理由三種對(duì)象控制,他們是:qdisc(排隊(duì)規(guī)則)、class(類別)和filter(過濾器)。QDISC(排隊(duì)規(guī)則)QDisc(排隊(duì)規(guī)則)是queueingdiscipline的簡(jiǎn)寫,他是理解流量控制(trafficcontrol)的基礎(chǔ)。無論何時(shí),內(nèi)核假如需要通過某個(gè)網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù)包,他都需要按照為這個(gè)接口配置的qdisc(排隊(duì)規(guī)則)把數(shù)據(jù)包加入隊(duì)列。然后,內(nèi)核會(huì)盡可能多地從qdisc里面取出數(shù)據(jù)包,把他們交給網(wǎng)絡(luò)適配器驅(qū)動(dòng)模塊。最簡(jiǎn)單的QDisc是pfifo他不對(duì)進(jìn)入的數(shù)據(jù)包做任何的處理,數(shù)據(jù)包采用先入先出的方式通過隊(duì)列。但是,他會(huì)保存網(wǎng)絡(luò)接口一時(shí)無法處理的數(shù)據(jù)包。CLASS(類)某些QDisc(排隊(duì)規(guī)則)能夠包含一些類別,不同的類別中能夠包含更深入的QDisc(排隊(duì)規(guī)則),通過這些細(xì)分的QDisc還能夠?yàn)檫M(jìn)入的隊(duì)列的數(shù)據(jù)包排隊(duì)。通過配置各種類別數(shù)據(jù)包的離隊(duì)次序,QDisc能夠?yàn)榕渲镁W(wǎng)絡(luò)數(shù)據(jù)流量的優(yōu)先級(jí)。FILTER(過濾器)filter(過濾器)用于為數(shù)據(jù)包分類,決定他們按照何種QDisc進(jìn)入隊(duì)列。無論何時(shí)數(shù)據(jù)包進(jìn)入一個(gè)劃分子類的類別中,都需要進(jìn)行分類。分類的方法能夠有多種,使用fileter(過濾器)就是其中之一。使用filter(過濾器)分類時(shí),內(nèi)核會(huì)調(diào)用附屬于這個(gè)類(class)的任何過濾器,直到返回一個(gè)判決。假如沒有判決返回,就作進(jìn)一步的處理,而處理方式和QDISC有關(guān)。需要注意的是,filter(過濾器)是在QDisc內(nèi)部,他們不能作為主體。TC實(shí)現(xiàn)原理TC在流量控制中使用的隊(duì)列分為兩類:1無類隊(duì)列2有類隊(duì)列。無類隊(duì)列比較簡(jiǎn)單,分類隊(duì)列則有分類和過濾器等概念,比較復(fù)雜。無類隊(duì)列對(duì)進(jìn)入網(wǎng)卡的數(shù)據(jù)流統(tǒng)一對(duì)待,不進(jìn)行區(qū)分,無類隊(duì)列形成的隊(duì)列能夠接受數(shù)據(jù)包以及重新編排、延遲、丟包,它可以對(duì)網(wǎng)卡流量進(jìn)行整形,但是不能細(xì)分各種情況,無類隊(duì)列規(guī)定主要有pfifo_fast、tbf、sfq等,無類隊(duì)列的流量整形手段主要是排序、限速、丟包。有類隊(duì)列規(guī)定則是對(duì)進(jìn)入網(wǎng)卡的數(shù)據(jù)包根據(jù)不同的需求以分類的方式區(qū)分對(duì)待的分類規(guī)定,數(shù)據(jù)包進(jìn)入分類隊(duì)列后,通過過濾器對(duì)數(shù)據(jù)包進(jìn)行分類,過濾器返回一個(gè)決定,隊(duì)列就根據(jù)這個(gè)返回的決定把數(shù)據(jù)包發(fā)送到相應(yīng)的某一類隊(duì)列中進(jìn)行排隊(duì)。每個(gè)子類可以再次使用他們的過濾器進(jìn)行進(jìn)一步的分類,直到不需要分類為止,數(shù)據(jù)包才會(huì)進(jìn)入相關(guān)類的隊(duì)列中進(jìn)行排隊(duì)。TC包括三個(gè)基本的構(gòu)成塊:隊(duì)列規(guī)定qdisc(queueingdiscipline)、類(class)和分類器(Classifiers)1)TC中的隊(duì)列(queueingdiscipline):用來實(shí)現(xiàn)控制網(wǎng)絡(luò)的收發(fā)速度.通過隊(duì)列,linux可以將網(wǎng)絡(luò)數(shù)據(jù)包緩存起來,然后根據(jù)用戶的設(shè)置,在盡量不中斷連接(如TCP)的前提下來平滑網(wǎng)絡(luò)流量.需要注意的是,linux對(duì)接收隊(duì)列的控制不夠好,所以我們一般只用發(fā)送隊(duì)列,即“控發(fā)不控收”.它封裝了其他兩個(gè)主要TC組件(類和分類器)。內(nèi)核如果需要通過某個(gè)網(wǎng)絡(luò)接口發(fā)送數(shù)據(jù)包,它都需要按照為這個(gè)接口配置的qdisc(排隊(duì)規(guī)則)把數(shù)據(jù)包加入隊(duì)列。然后,內(nèi)核會(huì)盡可能多地從qdisc里面取出數(shù)據(jù)包,把它們交給網(wǎng)絡(luò)適配器驅(qū)動(dòng)模塊。最簡(jiǎn)單的QDisc是PFIFO,它不對(duì)進(jìn)入的數(shù)據(jù)包做任何的處理,數(shù)據(jù)包采用先入先出的方式通過隊(duì)列。不過,它會(huì)保存網(wǎng)絡(luò)接口一時(shí)無法處理的數(shù)據(jù)包。
隊(duì)列規(guī)則包括FIFO(先進(jìn)先出),RED(隨機(jī)早期探測(cè)),SFQ(隨機(jī)公平隊(duì)列)和令牌桶(TokenBucket),類基隊(duì)列(CBQ),CBQ是一種超級(jí)隊(duì)列,即它能夠包含其它隊(duì)列(甚至其它CBQ)。2)TC中的Class類:class用來表示控制策略.很顯然,很多時(shí)候,我們很可能要對(duì)不同的IP實(shí)行不同的流量控制策略,這時(shí)候我們就得用不同的class來表示不同的控制策略了.3)TC中的Filter規(guī)則:filter用來將用戶劃入到具體的控制策略中(即不同的class中).比如,現(xiàn)在,我們想對(duì)xxa,xxb兩個(gè)IP實(shí)行不同的控制策略(A,B),這時(shí),我們可用filter將xxa劃入到控制策略A,將xxb劃入到控制策略B,filter劃分的標(biāo)志位可用u32打標(biāo)功能或IPtables的set-mark(大多使用iptables來做標(biāo)記)功能來實(shí)現(xiàn)。
目前,TC可以使用的過濾器有:fwmark分類器,u32分類器,基于路由的分類器和RSVP分類器(分別用于IPV6、IPV4)等;其中,fwmark分類器允許我們使用Linuxnetfilter代碼選擇流量,而u32分類器允許我們選擇基于ANY頭的流量.需要注意的是,filter(過濾器)是在QDisc內(nèi)部,它們不能作為主體。4)TC的應(yīng)用流程數(shù)據(jù)包->iptables(在通過iptables時(shí),iptables根據(jù)不同的ip來設(shè)置不同的mark)->TC(class)->TC(queue)5)TC對(duì)最對(duì)高速度的控制(1Rateceiling速率限度參數(shù)ceil指定了一個(gè)類可以用的最大帶寬,用來限制類可以借用多少帶寬。缺省的ceil是和速率一樣(2Burst突發(fā)burst和cburst參數(shù)控制多少數(shù)據(jù)可以以硬件最大的速度不費(fèi)力的發(fā)送給需要的其他類。網(wǎng)絡(luò)硬件只能在一個(gè)時(shí)間發(fā)送一個(gè)包這僅僅取決于一個(gè)硬件的速率。鏈路共享軟件可以利用這個(gè)能力動(dòng)態(tài)產(chǎn)生多個(gè)連接運(yùn)行在不同的速度。所以速率和ceil不是一個(gè)即時(shí)度量只是一個(gè)在一個(gè)時(shí)間里發(fā)送包的平均值。實(shí)際的情況是怎樣使一個(gè)流量很小的類在某個(gè)時(shí)間類以最大的速率提供給其他類。
注:burst和cburst至少要和其子類的值一樣大。TC流量控制在Linux操作系統(tǒng)中流量控制器(TC)主要是在輸出端口處建立一個(gè)隊(duì)列進(jìn)行流量控制,控制的方式是基于路由,亦即基于目的IP地址或目的子網(wǎng)的網(wǎng)絡(luò)號(hào)的流量控制。流量控制器TC,其基本的功能模塊為隊(duì)列、分類和過濾器。Linux內(nèi)核中支持的隊(duì)列有,ClassBasedQueue,TokenBucketFlow(TBF,令牌桶過濾器),CSZ,F(xiàn)irstInFirstOut,Priority,TEQL,SFQ,ATM,RED。Pfifo_fast(ThirdBandFirstInFirstOutQueue先進(jìn)先出隊(duì)列),SFQ(StochasticFairnessQueueing隨機(jī)公平隊(duì)列),HTB(HierarchyTokenBucket分層令牌桶)等。報(bào)文分組從輸入網(wǎng)卡(入口)接收進(jìn)來,經(jīng)過路由的查找,以確定是發(fā)給本機(jī)的,還是需要轉(zhuǎn)發(fā)的。如果是發(fā)給本機(jī)的,就直接向上遞交給上層的協(xié)議,比如TCP,如果是轉(zhuǎn)發(fā)的,則會(huì)從輸出網(wǎng)卡(出口)發(fā)出。網(wǎng)絡(luò)流量的控制通常發(fā)生在輸出網(wǎng)卡處。雖然在路由器的入口處也可以進(jìn)行流量控制,Linux也具有相關(guān)的功能,但一般說來,由于我們無法控制自己網(wǎng)絡(luò)之外的設(shè)備,入口處的流量控制相對(duì)較難。因此我們這里處理的流量控制一般指出口處的流量控制。流量控制的一個(gè)基本概念是隊(duì)列(Qdisc),每個(gè)網(wǎng)卡都與一個(gè)隊(duì)列(Qdisc)相聯(lián)系,每當(dāng)內(nèi)核需要將報(bào)文分組從網(wǎng)卡發(fā)送出去,都會(huì)首先將該報(bào)文分組添加到該網(wǎng)卡所配置的隊(duì)列中,由該隊(duì)列決定報(bào)文分組的發(fā)送順序。因此可以說,所有的流量控制都發(fā)生在隊(duì)列中,詳細(xì)流程圖見圖1。圖1報(bào)文在Linux內(nèi)部流程圖有些隊(duì)列的功能是非常簡(jiǎn)單的,它們對(duì)報(bào)文分組實(shí)行先來先走的策略。有些隊(duì)列則功能復(fù)雜,會(huì)將不同的報(bào)文分組進(jìn)行排隊(duì)、分類,并根據(jù)不同的原則,以不同的順序發(fā)送隊(duì)列中的報(bào)文分組。為實(shí)現(xiàn)這樣的功能,這些復(fù)雜的隊(duì)列需要使用不同的過濾器(Filter)來把報(bào)文分組分成不同的類別(Class)。這里把這些復(fù)雜的隊(duì)列稱為可分類(Classiful)的隊(duì)列。通常,要實(shí)現(xiàn)功能強(qiáng)大的流量控制,可分類的隊(duì)列是必不可少的。因此,類別(Class)和過濾器(Filter)也是流量控制的另外兩個(gè)重要的基本概念。圖2所示的是一個(gè)可分類隊(duì)列的例子。圖2多類別隊(duì)列由圖2可以看出,類別(Class)和過濾器(Filter)都是隊(duì)列的內(nèi)部結(jié)構(gòu),并且可分類的隊(duì)列可以包含多個(gè)類別,同時(shí),一個(gè)類別又可以進(jìn)一步包含有子隊(duì)列,或者子類別。所有進(jìn)入該類別的報(bào)文分組可以依據(jù)不同的原則放入不同的子隊(duì)列或子類別中,以此類推。而過濾器(Filter)是隊(duì)列用來對(duì)數(shù)據(jù)報(bào)文進(jìn)行分類的工具,它決定一個(gè)數(shù)據(jù)報(bào)文將被分配到哪個(gè)類別中。實(shí)踐應(yīng)用TC命令的一般形式:tcqdisc[add|change|replace|link]devDEV[parentqdisk-id|root][handleqdisc-id]qdisc[qdiscspecificparameters]qdiscadd添加一個(gè)派對(duì)規(guī)則devDEV指定和排隊(duì)規(guī)則相關(guān)對(duì)應(yīng)的設(shè)備。root對(duì)于TC來說,root就是指“egress”handle是用戶指定的一個(gè)編號(hào),其格式是主編號(hào):次編號(hào)。對(duì)任何排隊(duì)規(guī)則句柄來說,次編號(hào)必需是0.排隊(duì)規(guī)則(qdisc)句柄的一種可用簡(jiǎn)寫形式是“1:”當(dāng)沒有指定次編號(hào)時(shí)就默認(rèn)為0.使用TC給一個(gè)存在的父class添加子classtcclassadddeveth0parent1:1classid1:6htbrate256kbitceil512kbitclassadd:添加一個(gè)class,也可以用del刪除deveth0:指定我們要關(guān)聯(lián)新的class的設(shè)備。parent:指定我們要關(guān)聯(lián)新class的父class句柄classid1:6:標(biāo)識(shí)此class的唯一句柄(主編號(hào):次編號(hào))。次編號(hào)必需為非零值。htb:帶分類的qdisc需要所有子class都和其是相同的類型。因此,HTBqdisc將包含HTBclasses。rate256kbitceil512kbit:class的參數(shù)。實(shí)例解析tcfilteradddeveth0parent1:0protocolipprio5u32matchipport220xffffmatchiptos0x100xffflowid1:6policerate32000bpsburst10240mpu0actiondrop/continuetcfilteradd:添加一個(gè)filter,也可以使用del來刪除。deveth0:指定新的filter要關(guān)聯(lián)的設(shè)備parent1:0:指定新的filter要關(guān)聯(lián)的父句柄protocolip:這個(gè)參數(shù)是必要的prio5:prio參數(shù)能使一個(gè)filter在另一個(gè)之前被使用,pref是prio的同義詞。u32:這是一個(gè)分類器(classifer),所有tcfilter命令都需包含該選項(xiàng)。matchipport220xffffmatchiptos0x100xff:這是分類器的參數(shù)。帶有服務(wù)標(biāo)識(shí)且端口號(hào)是22的數(shù)據(jù)包將會(huì)被選擇。flowid1:6:flowid指定一個(gè)目標(biāo)class句柄,filter所選擇的數(shù)據(jù)包將發(fā)往這個(gè)句柄所指向的class。police:這是一個(gè)監(jiān)管器(policer),在tcfilter命令中是可選項(xiàng)。rate32000bps:當(dāng)超過這個(gè)速率時(shí),監(jiān)管器將執(zhí)行一個(gè)動(dòng)作,低于這個(gè)速率時(shí),監(jiān)管期將執(zhí)行另一個(gè)動(dòng)作。burst10240:burstmpu0:被監(jiān)管的最小數(shù)據(jù)單位。為了統(tǒng)計(jì)所有流量,使用mpu0.actiondrop/continue:action指定了當(dāng)流量大于給politer所配置的rate時(shí)應(yīng)采取的動(dòng)作。第一個(gè)詞指明了當(dāng)流量超過rate時(shí)所要執(zhí)行的操作,第二個(gè)詞指明了其他情況下應(yīng)該采取的操作。網(wǎng)絡(luò)延遲命令:tcqdiscadddeveth0rootnetemdelay100ms將eth0網(wǎng)卡的傳輸設(shè)置為延遲100ms發(fā)送命令:tcqdiscadddeveth0rootnetemdelay100ms10ms模擬出帶有波動(dòng)性的延遲值命令:tcqdiscadddeveth0rootnetemdelay100ms10ms30%模擬一定概率帶有波動(dòng)性的延遲值命令:tcqdiscchangedeveth0rootnetemdelay100ms10msdistributionnormal在eth0口模擬時(shí)延,在100ms+-10ms之間的正態(tài)分布模擬網(wǎng)絡(luò)丟包命令:tcqdiscadddeveth0rootnetemloss1%將eth0網(wǎng)卡的傳輸設(shè)置為隨機(jī)丟掉1%的數(shù)據(jù)包也可以設(shè)置丟包
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位管理制度匯編大合集【人事管理篇】十篇
- 單位管理制度合并匯編員工管理
- 《眩暈基礎(chǔ)知識(shí)》課件
- 單位管理制度分享大全【職工管理篇】十篇
- 單位管理制度范例合集【員工管理】十篇
- 單位管理制度呈現(xiàn)匯編人力資源管理十篇
- 單位管理制度呈現(xiàn)大合集【職工管理】十篇
- 《離心泵工作點(diǎn)》課件
- 貴都高速某合同段施工組織設(shè)計(jì)
- 《祝世界好友周快樂》課件
- 公共機(jī)構(gòu)能耗定額 第3部分:教育機(jī)構(gòu)DB41-T 1960.3-2021
- “雙減”初中九年級(jí)英語課時(shí)作業(yè)設(shè)計(jì)案例
- 廣東省潮州市暨實(shí)高級(jí)中學(xué)2024-2025學(xué)年高二上學(xué)期9月月考語文試題
- GB/T 44415-2024基于全球衛(wèi)星導(dǎo)航的機(jī)動(dòng)車制動(dòng)性能路試檢驗(yàn)要求和方法
- 物流園區(qū)運(yùn)營(yíng)管理合同
- 紅船女子(2022年安徽中考語文試卷記敘文閱讀題及答案)
- 空氣動(dòng)力學(xué)實(shí)驗(yàn)方法:激光多普勒測(cè)速(LDV):原理與應(yīng)用
- 反思單元 沈括的“海陸變遷”說(習(xí)題教學(xué)設(shè)計(jì))2023-2024學(xué)年三年級(jí)上冊(cè)科學(xué)(大象版 河南專用)
- 2023-2024屆高考語文復(fù)習(xí)-閱讀與訓(xùn)練主題+工匠精神(含答案)
- 裝表接電培訓(xùn)課件
- 新蘇教版五年級(jí)上冊(cè)科學(xué)全冊(cè)期末復(fù)習(xí)知識(shí)點(diǎn)(彩版)
評(píng)論
0/150
提交評(píng)論