中文字幕亚洲第一精品|精品国产免费一区二区|久久婷婷五月六月综合版|中文字幕熟妇久久久人妻|久久综合精品国产一区无码|国产成人精品永久免费视频|午夜亚洲国产精品理论片a级|久久精品一区二区三区无码护土

 訪問手機(jī)版  

Linux常用命令|Linux培訓(xùn)學(xué)習(xí)|考試認(rèn)證|工資待遇與招聘,認(rèn)準(zhǔn)超級(jí)網(wǎng)工!

招聘|合作 登陸|注冊(cè)

網(wǎng)絡(luò)工程師培訓(xùn)

當(dāng)前位置:網(wǎng)絡(luò)工程師 > 技術(shù)課程 > linux > 熱點(diǎn)關(guān)注 > linux常用命令

Linux TC(8) 顯示/操作流量控制工具命令:Tc 詳解

時(shí)間:2019-09-06

linux命令大全_linux命令大全 root_linux命令分類大全

TC是Linux自帶的模塊,一般情況下不需要另行安裝的,可以直接用“ man tc ”查看tc 相關(guān)命令細(xì)節(jié),tc 要求內(nèi)核 2.4.18 以上;

注意:64位機(jī)器上,或許需要先執(zhí)行下面命令,做個(gè)軟鏈接:

ln -s /usr/lib64/tc /usr/lib/tc

Linux 操作系統(tǒng)中的流量控制器 TC(Traffic Control) 用于Linux內(nèi)核的流量控制,它利用隊(duì)列規(guī)定建立處理數(shù)據(jù)包的隊(duì)列,并定義隊(duì)列中的數(shù)據(jù)包被發(fā)送的方式,從而實(shí)現(xiàn)對(duì)流量的控制。TC 模塊實(shí)現(xiàn)流量控制功能使用的隊(duì)列規(guī)定分為兩類,一類是無類隊(duì)列規(guī)定,另一類是分類隊(duì)列規(guī)定。無類隊(duì)列規(guī)定相對(duì)簡(jiǎn)單,而分類隊(duì)列規(guī)定則引出了分類和過濾器等概念,使其流量控制功能增強(qiáng)。

無類隊(duì)列規(guī)定是對(duì)進(jìn)入網(wǎng)絡(luò)設(shè)備(網(wǎng)卡)的數(shù)據(jù)流不加區(qū)分統(tǒng)一對(duì)待的隊(duì)列規(guī)定。使用無類隊(duì)列規(guī)定形成的隊(duì)列能夠接收數(shù)據(jù)包以及重新編排、延遲或丟棄數(shù)據(jù)包。這類隊(duì)列規(guī)定形成的隊(duì)列可以對(duì)整個(gè)網(wǎng)絡(luò)設(shè)備(網(wǎng)卡)的流量進(jìn)行整形,但不能細(xì)分各種情況。常用的無類隊(duì)列規(guī)定主要有 pfifo_fast(先進(jìn)先出)、TBF(令牌桶過濾器)、SFQ(隨機(jī)公平隊(duì)列)、ID(前向隨機(jī)丟包)等等。這類隊(duì)列規(guī)定使用的流量整形手段主要是排序、限速和丟包。

高并發(fā)情況,先將用戶進(jìn)入排隊(duì)隊(duì)列,用一個(gè)線程循環(huán)處理從排隊(duì)隊(duì)列取出一個(gè)用戶,判斷用戶是否已在搶購結(jié)果隊(duì)列,如果在,則已搶購,否則未搶購,庫存減1,寫數(shù)據(jù)庫,將用戶入結(jié)果隊(duì)列。其實(shí)這個(gè)bug導(dǎo)致的原因在于我在filter中,對(duì)body數(shù)據(jù)重新包裝了,主要是要在filter中過濾body中的數(shù)據(jù),因此加了一個(gè)包裝器,如果沒有這個(gè)包裝器,編碼應(yīng)該是沒有問題的,filter中的包裝器代碼如下:。因?yàn)楣艹淌腔コ膺M(jìn)入的, 所以當(dāng)一個(gè)進(jìn)程試圖進(jìn)入一個(gè)已被占用的 管程時(shí)它應(yīng)當(dāng)在管程的入口處等待, 因而在管程的入口處應(yīng)當(dāng)有一 個(gè)進(jìn)程等待隊(duì)列, 稱作入口等待隊(duì)列. 在管程內(nèi)部, 可以說明和使用一種用于進(jìn)程等待的隊(duì)列變量, 稱作 條件型變量: 在進(jìn)程進(jìn)入管程時(shí)和離開管程時(shí), 分別應(yīng)當(dāng)執(zhí)行如下的操作: 進(jìn)入管程: 申請(qǐng)管程的互斥權(quán). 離開管程: 如果緊急等待隊(duì)列非空, 則喚醒第一個(gè)等待者, 否則釋放 管程的互斥權(quán).。

Linux流量控制的基本原理如下圖所示:

Linux流量控制的基本原理

接收包從輸入接口(Input Interface)進(jìn)來后,經(jīng)過流量限制(Ingress Policing)丟棄不符合規(guī)定的數(shù)據(jù)包,由輸入多路分配器(Input De-Multiplexing)進(jìn)行判斷選擇。如果接收包的目的地是本主機(jī),那么將該包送給上層處理,否則需要進(jìn)行轉(zhuǎn)發(fā),將接收包交到轉(zhuǎn)發(fā)塊(Forwarding Block)處理。轉(zhuǎn)發(fā)塊同時(shí)也接收本主機(jī)上層(TCP、UDP等)產(chǎn)生的包。轉(zhuǎn)發(fā)塊通過查看路由表,決定所處理包的下一跳。然后,對(duì)包進(jìn)行排列以便將它們傳送到輸出接口(Output Interface)。一般我們只能限制網(wǎng)卡發(fā)送的數(shù)據(jù)包,不能限制網(wǎng)卡接收的數(shù)據(jù)包,所以我們可以通過改變發(fā)送次序來控制傳輸速率。Linux流量控制主要是在輸出接口排列時(shí)進(jìn)行處理和實(shí)現(xiàn)的。

一、流量控制方式

流量控制包括一下幾種方式:SHAPING、SCHEDULING、POLICING、DROPPING;

SHAPING(限制)

當(dāng)流量被限制時(shí),它的傳輸速率就被控制在某個(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)度)也只適用于向外的流量。