TC限速原理和TC限速的實現(xiàn)-創(chuàng)新互聯(lián)

10年積累的成都網站設計、網站制作經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站制作后付款的網站建設流程,更有斗門免費網站建設讓你可以放心的選擇與我們合作。

這篇文章主要為大家分享TC限速的實現(xiàn)步驟。文中還介紹了TC限速原理和TC限速的隊列規(guī)則分類器等,希望大家通過這篇文章能有所收獲。

一.TC限速相關介紹

1.TC限速原理介紹
Linux操作系統(tǒng)中的流量控制器TC(Traffic Control)用于Linux內核的流量控制,主要是通過在輸出端口處建立一個隊列來實現(xiàn)流量控制。
接收包從輸入接口進來后,經過流量限制丟棄不符合規(guī)定的數(shù)據(jù)包,由輸入多路分配器進行判斷選擇,如果接收包的目的主機是本主機,那么將該包送給上層處理,否則需要進行轉發(fā),將接收包交到轉發(fā)塊(Forwarding Block)處理。轉發(fā)塊同時也接收本主機上層(TCP、UDP等)產生的包,通過查看路由表,決定所處理包的下一跳。然后,對包進行排列以便將它們送到輸出接口。
從以上介紹可以看出,TC只能對網卡發(fā)出的數(shù)據(jù)包做分類限制,不能對網卡接收的數(shù)據(jù)包做分類限制,但是可以對網卡接收的數(shù)據(jù)包流量做一個整體限制。因為我們項目中只需要對網卡接收的流量做整體限制,所以TC剛好可以滿足我們對網卡流量雙向限制的要求。

2.TC限速基本概念介紹
TC對流量的處理由三種對象控制,它們是:
隊列規(guī)則 qdisc(queueing discipline)
類(class)
分類器(Classifiers).

qdisc隊列規(guī)則(queueing discipline)
qdisc(隊列規(guī)則)是queueing discipline的簡寫,它是理解流量控制(traffic control)的基礎。無論何時,內核如果需要通過某個網絡接口發(fā)送數(shù)據(jù)包,它都需要按照為這個接口配置的qdisc把數(shù)據(jù)包加入隊列。然后,內核會盡可能多地從qdisc里面取出數(shù)據(jù)包,把它們交給網絡適配器驅動模塊。最簡單的qdisc是pfifo,它不對進入的數(shù)據(jù)包做任何的處理,數(shù)據(jù)包采用先入先出的方式通過隊列。不過,它會保存網絡接口一時無法處理的數(shù)據(jù)包。
可分類的qdisc包括:
(1)CBQ
CBQ是Class Based Queueing(基于類別排隊)的縮寫。它實現(xiàn)了一個豐富的連接共享類別結構,既有限制(shaping)帶寬的能力,也具有帶寬優(yōu)先級管理的能力。帶寬限制是通過計算連接的空閑時間完成的。空閑時間的計算標準是數(shù)據(jù)包離隊事件的頻率和下層連接(數(shù)據(jù)鏈路層)的帶寬。
(2)HTB
HTB是Hierarchy Token Bucket的縮寫。通過在實踐基礎上的改進,它實現(xiàn)了一個豐富的連接共享類別體系。使用HTB可以很容易地保證每個類別的帶寬,雖然它也允許特定的類可以突破帶寬上限,占用別的類的帶寬。HTB可以通過TBF(Token Bucket Filter)實現(xiàn)帶寬限制,也能夠劃分類別的優(yōu)先級。
(3)PRIO
PRIO qdisc不能限制帶寬,因為屬于不同類別的數(shù)據(jù)包是順序離隊的。使用PRIO qdisc可以很容易對流量進行優(yōu)先級管理,只有屬于高優(yōu)先級類別的數(shù)據(jù)包全部發(fā)送完畢,才會發(fā)送屬于低優(yōu)先級類別的數(shù)據(jù)包。為了方便管理,需要使用iptables或者ipchains處理數(shù)據(jù)包的服務類型(Type Of Service,ToS)。

Class 類
某些qdisc可以包含一些類別,不同的類別中可以包含更深入的qdisc,通過這些細分的qdisc還可以為進入隊列的數(shù)據(jù)包排隊。通過設置各種類別數(shù)據(jù)包的離隊次序,qdisc可以設置網絡數(shù)據(jù)流量的優(yōu)先級。

Filter 規(guī)則
Filter(過濾器)用于為數(shù)據(jù)包分類,決定它們按照何種qdisc進入隊列。無論何時數(shù)據(jù)包進入一個劃分子類的類別中,都需要進行分類。分類的方法可以有多種,使用fileter(過濾器)就是其中之一。使用filter(過濾器)分類時,內核會調用附屬于這個類(class)的所有過濾器,直到返回一個判決。如果沒有判決返回,就作進一步的處理,而處理方式和qdisc有關。需要注意的是,filter(過濾器)是在qdisc內部,它們不能作為主體。

二.TC限速操作

1.虛擬機流入流量限制
(1)清除tap01網卡設備上所有的流入規(guī)則,防止與新添加的規(guī)則沖突。
# tc qdisc del dev tap01 root
(2)在網絡設備tap01上綁定一個htb類型的qdisc根隊列
# tc qdisc add dev tap01 root handle 1: htb default 9999
(3)在qdisc根隊列1:下創(chuàng)建一個子類1:5,并設置子類的流量速率為50Mb/s
# tc class add dev tap01 parent 1: classid 1:5 htb rate 50Mbit burst 1Mbit
(4)為子類1:5添加隨機公平隊列sfq,防止該類被某一會話連接獨占
# tc qdisc add dev tap01 parent 1:5 handle 5: sfq perturb 10
(5)為子類1:5添加過濾器,用來將目標地址為0.0.0.0/0(指所有網絡)的數(shù)據(jù)包發(fā)往類1:5,使用其中的規(guī)則出隊
# tc filter add dev tap01 parent 1: protocol ip prio 1 u32 match ip dst 0.0.0.0/0 flowid 1:5
注: tap01為虛擬機連接到網橋的網卡,與虛擬機內部的網卡一一對應。因tap01口的出方向的流量就是進入虛擬機內部網卡的流量,所以限制tap01口的出方向的流量,就可以限制流入虛擬機的網絡流量。

2.虛擬機流出流量限制
(1)清除tap01網卡設備上所有的流入規(guī)則,防止與新添加的規(guī)則沖突。
# tc qdisc del dev tap01 ingress
(2)在網絡設備tap01上綁定一個處理ingress流量的qdisc根隊列
# tc qdisc add dev tap01 ingress handle ffff:
(3)為類ffff:添加過濾器,并限制流量為50Mb/s
# tc filter add dev tap01 parent ffff: protocol all prio 1 basic police rate 50Mbit burst 10Mbit mtu 65535 drop
注: tap01為虛擬機連接到網橋的網卡,與虛擬機內部的網卡一一對應。因tap01口的入方向的流量就是虛擬機內部網卡發(fā)出的流量,所以限制tap01口的入方向的流量,即可限制流出虛擬機的網絡流量。
命令中的數(shù)字10和65535存在關聯(lián)性,需要一起修改,否則會導致限速不準確。

看完上述內容,你們對TC限速原理和TC限速的實現(xiàn)大概了解了嗎?如果想了解更多相關文章內容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前名稱:TC限速原理和TC限速的實現(xiàn)-創(chuàng)新互聯(lián)
當前網址:http://bm7419.com/article22/dgdgcc.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供動態(tài)網站、小程序開發(fā)、軟件開發(fā)、品牌網站建設品牌網站制作、微信小程序

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網站建設