Linux流量控制的實現(xiàn)方法
目前很多企業(yè)的內(nèi)部局域網(wǎng)已經(jīng)建立,很多還在局域網(wǎng)基礎(chǔ)上建立了企業(yè)內(nèi)部的MIS系統(tǒng)和郵件服務(wù)器等,甚至在系統(tǒng)中開展了視頻點播等數(shù)據(jù)流量較大的業(yè)務(wù)。 Linux流量控制給企業(yè)服務(wù)帶來便利和高效。
企業(yè)內(nèi)部網(wǎng)絡(luò)有足夠的帶寬可以使用。但是,一般在企業(yè)接入Internet的部分都是一個有限的流量。為了提高網(wǎng)絡(luò)的使用質(zhì)量,保證用戶按照網(wǎng)絡(luò)中業(yè)務(wù)設(shè)計的要求來使用整個網(wǎng)絡(luò)的帶寬,可以從流量控制服務(wù)器的角度分析、優(yōu)化Linux系統(tǒng),給企業(yè)服務(wù)帶來便利和高效。
Linux流量控制的基本實現(xiàn)
Linux操作系統(tǒng)中的流量控制器(TC)主要是通過在輸出端口處建立一個隊列來實現(xiàn)流量控制。Linux從2.1.105版內(nèi)核開始支持流量控制,使用時需要重新編譯內(nèi)核。Linux流量控制的基本實現(xiàn)可簡單地由圖1來描述。從圖1可以看出,內(nèi)核是如何處理接收包、如何產(chǎn)生發(fā)送包,并送往網(wǎng)絡(luò)的。
圖1 Linux流量控制的基本實現(xiàn)
接收包進(jìn)來后,由輸入多路分配器(Input De-Multiplexing)進(jìn)行判斷選擇:如果接收包的目的是本主機(jī),那么將該包送給上層處理;否則需要進(jìn)行轉(zhuǎn)發(fā),將接收包交到轉(zhuǎn)發(fā)塊(Forwarding Block)處理。轉(zhuǎn)發(fā)塊同時也接收本主機(jī)上層(TCP、UDP等)產(chǎn)生的包。轉(zhuǎn)發(fā)塊通過查看路由表,決定所處理包的下一跳。然后,對包進(jìn)排列以便將它們傳送到輸出接口(Output Interface)。Linux流量控制正是在排列時進(jìn)行處理和實現(xiàn)的。
圖2 流量控制基本框架
如圖2所示,Linux流量控制主要由三大部分來實現(xiàn):
◆ 隊列規(guī)則(Queue Discipline)
◆ 分類(Classes)
◆ 過濾器(Filters)
因此,Linux流量控制主要分為建立隊列、建立分類和建立過濾器三個方面。其基本實現(xiàn)步驟為:
(1)針對網(wǎng)絡(luò)物理設(shè)備(如以太網(wǎng)卡eth0)綁定一個隊列;
(2)在該隊列上建立分類;
(3)為每一分類建立一個基于路由的過濾器。
【編輯推薦】
- Linux性能測試工具Lmbench介紹和使用說明
- Linux 編程工具介紹及Linux下的編程
- Linux 開發(fā)工具詳細(xì)介紹
- Linux下載工具Curl詳解
- Linux 測試軟件:從源代碼開始