參考: TC - Linux 流量控制工具 | Life is magic. Coding is art. (int64.me)

10多年的班瑪網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整班瑪建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“班瑪網(wǎng)站設(shè)計”,“班瑪網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
TC(Linux下流量控制工具)詳細(xì)說明及應(yīng)用_Gino的專欄-CSDN博客
本來打算直接列一波用法,但是總覺得,不記錄一下原理,操作起來也是一臉懵逼。 TC 通過建立處理數(shù)據(jù)包隊列,并定義隊列中數(shù)據(jù)包被發(fā)送的方式,從而實(shí)現(xiàn)進(jìn)行流量控制。TC 模擬實(shí)現(xiàn)流量控制功能使用的隊列分為兩類:
classful 隊列規(guī)定(qdisc), 類(class)和過濾器(filter)這 3 個組件組成,繪圖中一般用圓形表示隊列規(guī)定,用矩形表示類,圖 copy 自 Linux 下 TC 以及 netem 隊列的使用
都是以一個根 qdisc 開始的,若根 qdisc 是不分類的隊列規(guī)定,那它就沒有子類,因此不可能包含其他的子對象,也不會有過濾器與之關(guān)聯(lián),發(fā)送數(shù)據(jù)時,數(shù)據(jù)包進(jìn)入這個隊列里面排隊,然后根據(jù)該隊列規(guī)定的處理方式將數(shù)據(jù)包發(fā)送出去。
分類的 qdisc 內(nèi)部包含一個或多個類,而每個類可以包含一個隊列規(guī)定或者包含若干個子類,這些子類友可以包含分類或者不分類的隊列規(guī)定,如此遞歸,形成了一個樹。
句柄號:qdisc 和類都使用一個句柄進(jìn)行標(biāo)識,且在一棵樹中必須是唯一的,每個句柄由主號碼和次號碼組成 qdisc 的次號碼必須為 0(0 通常可以省略不寫)
根 qdisc 的句柄為 1:,也就是 1:0。類的句柄的主號碼與它的父輩相同(父類或者父 qdisc),如類 1:1 的主號碼與包含他的隊列規(guī)定 1:的主號碼相同,1:10 和 1:11 與他們的父類 1:1 的主號碼相同,也為 1。
新建一個類時,默認(rèn)帶有一個 pfifo_fast 類型的不分類隊列規(guī)定,當(dāng)添加一個子類時,這個類型的 qdisc 就會被刪除,所以,非葉子類是沒有隊列規(guī)定的,數(shù)據(jù)包最后只能到葉子類的隊列規(guī)定里面排隊。
若一個類有子類,那么允許這些子類競爭父類的帶寬,但是,以隊列規(guī)定為父輩的類之間是不允許相互競爭帶寬的。
默認(rèn) TC 的 qdisc 控制就是出口流量,要使用 TC 控制入口,需要把流量重定向到 ifb 網(wǎng)卡,其實(shí)就是加了一層,原理上還是控制出口 。
為何要先說 classless 隊列,畢竟這個簡單嘛,要快速使用,那么這個就是首選了。基于 classless 隊列,我們可以進(jìn)行故障模擬,也可以用來限制帶寬。
TC 使用 linux network netem 模塊進(jìn)行網(wǎng)絡(luò)故障模擬
網(wǎng)絡(luò)傳輸并不能保證順序,傳輸層 TCP 會對報文進(jìn)行重組保證順序,所以報文亂序?qū)?yīng)用的影響比上面的幾種問題要小。
報文亂序可前面的參數(shù)不太一樣,因?yàn)樯厦娴膱笪膯栴}都是獨(dú)立的,針對單個報文做操作就行,而亂序則牽涉到多個報文的重組。模擬報亂序一定會用到延遲(因?yàn)槟M亂序的本質(zhì)就是把一些包延遲發(fā)送),netem 有兩種方法可以做。
以 tbf (Token Bucket Filter) 為例,
參數(shù)說明:
限制 100mbit
限制延遲 100ms, 流量 100mbit
這個就復(fù)雜一些,同樣也特別靈活,可以限制特定的 ip 或者服務(wù)類型以及端口
以使用 htb 為例
使用 TC 進(jìn)行入口限流,需要把流量重定向到 ifb 虛擬網(wǎng)卡,然后在控制 ifb 的輸出流量
你問的這么詳細(xì)不如直接去看教程
但是初接觸TC看教程還真有點(diǎn)費(fèi)力,你還是多寫寫,讀別人寫的腳本去理解他們的意思
class就是規(guī)則分支,你用TC來限制速度,首先要寫一些規(guī)則,比如優(yōu)先級別,流量限制等
規(guī)則寫完后,接下來就要過濾,,就是讓系統(tǒng)知道哪些包符合規(guī)則,根據(jù)你的過濾條件來讓數(shù)據(jù)包走不同的分支(規(guī)則,class)
基本步驟就是這樣,具體清你看教程去把。
只需要修改iproute2應(yīng)用層的makefile就可以了,編譯tc并把tc拷貝到執(zhí)行目錄里
新聞名稱:關(guān)于tc命令linux的信息
文章起源:http://chinadenli.net/article29/dsecpjh.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、域名注冊、云服務(wù)器、App設(shè)計、虛擬主機(jī)、軟件開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)