CIR,CBS,EBS,PIR,PBS傻傻分不清楚?看这里!—-揭秘令牌桶
概述
春暖花開的時候,大家都開著汽車外出旅游欣賞美麗的風(fēng)景,卻被堵在高速公路上,你是否為此感到痛苦?但如果有一種機制可以評估高速公路上的車流量、控制車流情況,確保進入高速公路的汽車都能在路上安全暢行,你是不是會覺得很開心?
與此相似,網(wǎng)絡(luò)發(fā)生擁塞的時候,也是一件非常痛苦的事情,如圖1和圖2所示。
圖1 網(wǎng)絡(luò)擁塞場景1
圖2 網(wǎng)絡(luò)擁塞場景2
如果不限制用戶發(fā)送的業(yè)務(wù)流量大小,大量不斷突發(fā)的業(yè)務(wù)數(shù)據(jù)會使網(wǎng)絡(luò)更加擁擠,嚴(yán)重時會出現(xiàn)網(wǎng)絡(luò)擁塞,造成業(yè)務(wù)出現(xiàn)異常,同時也浪費網(wǎng)絡(luò)資源,如圖3和圖4所示。
圖3 網(wǎng)絡(luò)擁塞造成資源浪費
圖4 網(wǎng)絡(luò)擁塞引起業(yè)務(wù)異常
那么,你是否很期待有一種機制可以在網(wǎng)絡(luò)上通過監(jiān)督進入網(wǎng)絡(luò)的流量速率,以達(dá)到限制流量、提高網(wǎng)絡(luò)資源使用效率的目的,從而保證有限的網(wǎng)絡(luò)資源提供更好的網(wǎng)絡(luò)服務(wù)?
流量評估
為了達(dá)到上述目的,我們需要對進入網(wǎng)絡(luò)的流量進行監(jiān)督,實現(xiàn)CAR(Committed Access Rate)。
CAR:將進入網(wǎng)絡(luò)的用戶流量的速率限制在約定的范圍之內(nèi),從而避免引起網(wǎng)絡(luò)擁塞。
要實現(xiàn)CAR,就需要對流量進行評估,然后根據(jù)評估的結(jié)果對流量采取相應(yīng)的動作:
l? 如果流量沒有超速,設(shè)備會為報文獎勵綠牌(將報文染色為綠色)。報文可暢通無阻,即被轉(zhuǎn)發(fā)。
l? 如果流量稍微超速,設(shè)備會發(fā)出黃牌警告(將報文染色為黃色)。通常報文會被降級,即修改報文的內(nèi)部優(yōu)先級,然后進行盡力而為的轉(zhuǎn)發(fā)。
l? 如果流量超速太多,設(shè)備會發(fā)出紅牌將報文罰下(將報文染色為紅色)。報文被禁止通行,即丟棄。
然而,報文不像汽車那樣可以通過測速儀之類的儀器進行測速。那么,如何對報文的速率進行評估呢?——答案在這里:令牌桶。
令牌桶可以看作是一個存放令牌的容器,預(yù)先設(shè)定一定的容量。系統(tǒng)按給定的速度向桶中放置令牌,當(dāng)桶中令牌滿時,多余的令牌溢出。令牌桶是一種流量測量方法。
不得不說的令牌桶
接著上面高速公路的例子,假設(shè)進入高速公路的車輛需要在入口處領(lǐng)取到通行卡才能進入高速公路。為了節(jié)約人力成本,入口處放置自動出卡機。按照國家高速公路交通安全法的規(guī)定,在高速公路上行駛的車輛,車速超過100km/h時,應(yīng)與同車道前車保持100米以上距離。為了保持最小安全行車距離100米,按車速100km/h計算,需要間隔至少3.6秒才能放行一輛車,因此出卡機每隔3.6秒出一張通行卡。在自動出卡機下放置一個盒子,自動出卡機按照3.6秒的間隔向盒子中投放通行卡。每輛進入高速公路的車輛,從盒子中領(lǐng)取通行卡之后才可以進入高速公路。
令牌桶算法與此類似。簡單來說,令牌桶可以看作是一個存放一定數(shù)量令牌的容器。系統(tǒng)按設(shè)定的速度向桶中放置令牌。當(dāng)桶中令牌滿時,多出的令牌溢出,桶中令牌不再增加。在使用令牌桶對流量規(guī)格進行評估時,是以令牌桶中的令牌數(shù)量是否足夠滿足報文的轉(zhuǎn)發(fā)為依據(jù)的。每個需要被轉(zhuǎn)發(fā)的報文,都要從令牌桶中領(lǐng)取一定數(shù)量的令牌(具體數(shù)量視報文大小而定),才可以被正常轉(zhuǎn)發(fā)。如果桶中存在足夠的令牌可以用來轉(zhuǎn)發(fā)報文,稱流量遵守或符合約定值,否則稱為不符合或超標(biāo)。
按照系統(tǒng)向令牌桶投放令牌的速率和令牌桶的數(shù)量劃分,令牌桶算法有三種模式:
l? 單速單桶
l? 單速雙桶
l? 雙速雙桶
下面我們以色盲模式為例詳細(xì)介紹這三種模式。
單速單桶
假設(shè)有一套自動出卡系統(tǒng),包括一臺自動出卡機和一個盒子C。自動出卡機以固定的速率(3.6秒出一張通行卡)向盒子中投放通行卡。這個固定的速率,就相當(dāng)于是單速單桶模式中的CIR參數(shù)。
CIR(Committed Information Rate):承諾信息速率,表示向C桶(單桶模式中只有一個令牌桶,稱為C桶)中投放令牌的速率,即C桶允許傳輸或轉(zhuǎn)發(fā)報文的平均速率。
如果平均每3.6秒來了不止1輛車,通行卡很快就領(lǐng)完了。這時自動出卡機上的紅燈亮起,新到的車輛禁止進入高速公路。這就起到了限定作用,將放行車輛的速率限制在放卡速率范圍內(nèi)。
如果平均每3.6秒來了不到1輛車,盒子里就會有一些積累起來的通行卡。這些累積起來的通行卡可以應(yīng)付車隊(比如車友俱樂部的車隊)要進入高速公路這樣的情況。我們規(guī)定每輛車都要領(lǐng)取通行卡,都由領(lǐng)隊的車領(lǐng)取。
假設(shè)某時刻來了一個車隊共8輛車,但盒子里只有6張通行卡,領(lǐng)隊車拿起通行卡一數(shù),發(fā)現(xiàn)不夠,那么這個車隊不允許進入高速,通行卡放回盒子中。
盒子中的通行卡不停累積,總有盒子裝滿的時候。這個盒子的容積,就相當(dāng)于單速單桶模式中的CBS參數(shù)。
CBS(Committed Burst Size):承諾突發(fā)尺寸,表示C桶的容量,即C桶瞬間能夠通過的承諾突發(fā)流量。相當(dāng)于盛放通行卡的盒子里最多可以放多少張通行卡,也就是說,該自動出卡系統(tǒng)允許通過的車隊中最多可以有多少輛車。
在單速單桶模式中,系統(tǒng)按照CIR速率向C桶中投放令牌。
l? 如果可用令牌的總數(shù)量(Tc)小于CBS,則令牌數(shù)繼續(xù)增加。
l? 如果令牌桶已滿,則令牌數(shù)不再增加。
對于到達(dá)的報文(報文大小為B),
l? 如果B ≤ Tc,報文被標(biāo)記為綠色,且Tc減少B。
l? 如果B > Tc,報文被標(biāo)記為紅色,Tc不減少。
假設(shè)設(shè)備端口的CIR設(shè)置為1Mbit/s,CBS為2000bytes,初始狀態(tài)時C桶滿。
說明:為方便計算,此處1Mbit/s按1*106bit/s計算。
l? 假設(shè)第1個到達(dá)的報文是1500bytes時,檢查C桶發(fā)現(xiàn)令牌數(shù)大于數(shù)據(jù)包的長度,所以數(shù)據(jù)包被標(biāo)為綠色,C桶減少令牌1500bytes,還剩500bytes。
l? 假設(shè)1ms之后到達(dá)第2個報文1500bytes。在此間隔內(nèi),C桶新增令牌 = CIR * 1ms = 1000bit = 125bytes,加上C桶原來剩余的令牌500bytes,此時C桶共有625bytes。令牌數(shù)量不夠,報文標(biāo)記為紅色。
l? 假設(shè)又過1ms后到達(dá)第3個報文1000bytes。在此間隔內(nèi),C桶新增令牌125bytes,加上C桶原來剩余的令牌625bytes,此時C桶共有750bytes。令牌數(shù)量不夠,因此報文被標(biāo)記為紅色。
l? 假設(shè)又過20ms后到達(dá)第4個報文1500bytes。在此間隔內(nèi),C桶新增令牌 = CIR * 20ms = 20000bit = 2500bytes,加上C桶原來剩余的令牌750bytes,C桶此時令牌數(shù)為3250bytes。而CBS = 2000bytes,因此溢出1250bytes令牌被丟棄。此時C桶令牌數(shù)大于報文長度,報文標(biāo)記為綠色,C桶減少令牌1500bytes,剩500bytes。
報文處理過程匯總見下表。
| 包序號 | 時刻 ? (ms) | 包長 ? (bytes) | 與上次添加令牌的間隔 | 本輪增加令牌 | 令牌增加后C桶令牌 | 報文處理后C桶剩余令牌 | 報文標(biāo)記結(jié)果 |
| ? | ? | ? | ? | ? | 2000 | 2000 | – |
| 1 | 0 | 1500 | 0 | 0 | 2000 | 500 | 綠色 |
| 2 | 1 | 1500 | 1 | 125 | 625 | 625 | 紅色 |
| 3 | 2 | 1000 | 1 | 125 | 750 | 750 | 紅色 |
| 4 | 22 | 1500 | 20 | 2500 | 2000 | 500 | 綠色 |
?
單速雙桶
在單速單桶模式中說到,如果平均每3.6秒來了不到1輛車,盒子里就會有一些積累起來的通行卡。如果一直沒有車輛過來,盒子中的通行卡不停地累積。盒子的容量是有限的,當(dāng)盒子中裝滿通行卡之后,不斷投放的通行卡就溢出盒子,會造成浪費。
為了避免這種浪費,我們改進了這個自動出卡系統(tǒng),在原來的基礎(chǔ)上增加一個盒子E(改進后的系統(tǒng)對應(yīng)單速雙桶模式,盒子E對應(yīng)單速雙桶中的E桶)。自動出卡機首先向C盒中投放通行卡。當(dāng)C盒滿了,自動出卡機就向E盒中投放通行卡。
為了保證通行卡有序領(lǐng)取,我們規(guī)定先領(lǐng)取C盒中的通行卡。如果C盒中的通行卡不夠用,就把卡放回C盒,再從E盒中重新領(lǐng)取通行卡。C盒和E盒中的通行卡不能同時取用。
按照通行卡的取用,可以分為三種情況:
l? 如果C盒中的通行卡夠用,綠燈亮,車輛領(lǐng)取C盒中的通行卡后通行。
l? 如果C盒中的通行卡不夠用但E盒中的通行卡夠用,黃燈亮,從C盒中領(lǐng)取的通行卡領(lǐng)取的通行卡要歸還,車輛領(lǐng)取E盒中的通信卡后通行。
l? 如果E盒中的通行卡也不夠用,紅燈亮,車輛禁止通行,從E盒中領(lǐng)取的通行卡領(lǐng)取通行卡要歸還。
和單速單桶模式一樣,對于車隊,有幾輛車,就領(lǐng)取幾張通行卡。當(dāng)然,E盒的容量也是有限的。E盒的容量就相當(dāng)于單速雙桶模式中的EBS。
EBS(Excess Burst Size):超額突發(fā)尺寸,表示E桶的容量,即E桶瞬間能夠通過的超出突發(fā)流量。
假設(shè)某時刻來了一個車隊有8輛車,但C盒里只有5張通行卡,而E盒中有9張通行卡,那么黃燈亮起,這輛長車從E盒中領(lǐng)取8張通行卡。
在單速雙桶模式中,系統(tǒng)按照CIR速率向桶中投放令牌。
l? 如果C桶中可用令牌的總數(shù)量(Tc)小于CBS,則C桶中令牌數(shù)增加。
l? 如果Tc等于CBS且E桶中的可用令牌總數(shù)量(Te)小于EBS,則C桶中令牌數(shù)不增加,E桶中令牌數(shù)增加。
l? 如果C桶和E桶中的令牌都已滿,則兩個桶中的令牌數(shù)都不再增加。
對于到達(dá)的報文(報文大小為B),
l? 如果B ≤ Tc,報文被標(biāo)記為綠色,且Tc減少B。
l? 如果Tc < B ≤ Te,報文被標(biāo)記為黃色,且Te減少B,Tc不減少。
l? 如果B > Te,報文被標(biāo)記為紅色,且Tc和Te都不減少。
假設(shè)設(shè)備端口的CIR設(shè)置為1Mbit/s,CBS為2000bytes,EBS為2000bytes,初始狀態(tài)時C桶和E桶滿。
說明:為方便計算,此處1Mbit/s按1*106bit/s計算。
l? 假設(shè)第1個到達(dá)的報文是1500bytes時,檢查C桶發(fā)現(xiàn)令牌數(shù)大于數(shù)據(jù)包的長度,所以數(shù)據(jù)包被標(biāo)為綠色,C桶減少令牌1500bytes,還剩500bytes,E桶令牌數(shù)量保持不變。
l? 假設(shè)1ms之后到達(dá)第2個報文1500bytes。在此間隔內(nèi),C桶新增令牌 = CIR * 1ms = 1000bit = 125bytes,加上C桶原來剩余的令牌500bytes,此時C桶共有625bytes,檢查發(fā)現(xiàn)C桶內(nèi)令牌數(shù)量不夠。檢查E桶發(fā)現(xiàn)有足夠令牌,因此報文標(biāo)記為黃色,E桶減少令牌1500bytes,剩余500bytes,C桶剩余625byte保持不變。
l? 假設(shè)又過1ms后到達(dá)第3個報文1000bytes。在此間隔內(nèi),C桶新增令牌125bytes,加上C桶原來剩余的令牌625bytes,此時C桶共有750bytes,檢查發(fā)現(xiàn)C桶內(nèi)令牌數(shù)量不夠。檢查E桶發(fā)現(xiàn)令牌數(shù)量也不夠,因此報文被標(biāo)記為紅色,C桶、E桶令牌數(shù)不變。
l? 假設(shè)又過20ms后到達(dá)第4個報文1500bytes。在此間隔內(nèi),C桶新增令牌 = CIR * 20ms = 20000bit = 2500bytes,加上C桶原來剩余的令牌750bytes,C桶此時令牌數(shù)為3250bytes。而CBS = 2000bytes,因此溢出的1250bytes添加到E桶,此時E桶有1750bytes。由于C桶中令牌數(shù)大于報文長度,報文標(biāo)記為綠色,C桶減少令牌1500bytes,剩余500bytes,E桶不變。
報文處理過程匯總見下表。
| 包序號 | 時刻 ? (ms) | 包長 ? (bytes) | 與上次添加令牌的間隔 | 本輪增加令牌 | 令牌增加后各桶令牌 | 報文處理后各桶剩余令牌 | 報文標(biāo)記結(jié)果 | ||
| C桶 | E桶 | C桶 | E桶 | ||||||
| ? | ? | ? | ? | ? | 2000 | 2000 | 2000 | 2000 | – |
| 1 | 0 | 1500 | 0 | 0 | 2000 | 2000 | 500 | 2000 | 綠色 |
| 2 | 1 | 1500 | 1 | 125 | 625 | 2000 | 625 | 500 | 黃色 |
| 3 | 2 | 1000 | 1 | 125 | 750 | 500 | 750 | 500 | 紅色 |
| 4 | 22 | 1500 | 20 | 2500 | 2000 | 1750 | 500 | 1750 | 綠色 |
?
雙速雙桶
前面說到的自動出卡機,都只有一個口可以輸出通行卡。而這里說到的高級自動出卡機,有兩個口可以出卡,一個口輸出的是通行卡,一個口輸出的是服務(wù)卡。當(dāng)然,這里也有兩個盒子用于盛放卡,分別是盒C盒和P盒。自動出卡機上的兩個口分別以各自固定的速率向兩個盒子中投放卡。(這個高級自動出卡機系統(tǒng)對應(yīng)雙速雙桶模式,C盒和P盒對應(yīng)雙速雙桶模式中的C桶和P桶。)
領(lǐng)取卡的規(guī)則和前面單速的情況有所不同。我們規(guī)定:
l? 先領(lǐng)取服務(wù)卡。如果服務(wù)卡不夠,把卡放回P盒,紅燈亮,車輛禁止通行。
l? 如果服務(wù)卡足夠但通行卡不夠,黃燈亮,服務(wù)卡可以取走,通行卡放回C盒。
l? 如果服務(wù)卡和通行卡都足夠,綠燈亮,車輛可以通行,服務(wù)卡和通行卡都取走。
自動出卡機向P盒投放服務(wù)卡的速率和P盒的容量,就分別相當(dāng)于雙速雙桶模式中的PIR和PBS。
PIR(Peak information rate):峰值信息速率,表示向P桶中投放令牌的速率,即P桶允許傳輸或轉(zhuǎn)發(fā)報文的峰值速率。PIR的值應(yīng)大于CIR(存在服務(wù)卡足夠而通行卡不夠的情況)。
PBS(Peak Burst Size):峰值突發(fā)尺寸,表示P桶的容量,即P桶瞬間能夠通過的峰值突發(fā)流量。
按照國家高速公路交通安全法的規(guī)定,在高速公路上行駛的車輛,最高時速為120km/h。前面領(lǐng)取的通行卡,保證車輛的時速為100km/h。而服務(wù)卡的作用,則是允許車輛時速可以達(dá)到120km/h。自動出卡機向P盒投放服務(wù)卡的速率就是允許的最高車速,相當(dāng)于PIR。
在雙速雙桶模式中,系統(tǒng)按照PIR速率向P桶中投放令牌,按照CIR速率向C桶中投放令牌。
l? 如果P桶中可用令牌的總數(shù)量(Tp)小于PBS,則P桶中令牌數(shù)增加。
l? 如果C桶中可用令牌的總數(shù)量(Tc)小于CBS,則C桶中令牌數(shù)增加。
對于到達(dá)的報文(報文大小為B),
l? 如果Tp < B,報文被標(biāo)記為紅色,且Tc和Tp都不減少。
l? 如果Tc < B ≤ Tp,報文被標(biāo)記為黃色,且Tp減少B,Tc不減少。
l? 如果B ≤ Tc,報文被標(biāo)記為綠色,且Tp和Tc都減少B。
假設(shè)設(shè)備端口的CIR設(shè)置為1Mbit/s,PIR設(shè)置為2Mbit/s,CBS為2000 bytes,PBS為3000 bytes,初始狀態(tài)時C桶和P桶滿。
說明:為方便計算,此處1Mbit/s按1*106bit/s計算。
l? 第1個到達(dá)的報文假設(shè)是1500bytes時,檢查發(fā)現(xiàn)報文長度不超過P桶也不超過C桶,所以數(shù)據(jù)包被標(biāo)為綠色,C桶和P桶都減少令牌1500bytes,C桶還剩500bytes,P桶還剩1500bytes。
l? 假設(shè)1ms后到達(dá)第2個報文1800bytes。在此間隔內(nèi),P桶新增令牌 = PIR * 1ms = 2000bit = 250bytes,加上P桶原來剩余的令牌1500bytes,此時P桶共有1750bytes,小于報文長度。C桶新增令牌 = CIR * 1ms = 1000bit = 125bytes,加上C桶原來剩余的令牌500bytes,此時C桶共有625bytes。報文標(biāo)記為紅色,P桶、C桶令牌數(shù)不變。
l? 假設(shè)又過1ms后到達(dá)第3個報文1000bytes。在此間隔內(nèi),P桶新增令牌250byte,加上P桶原來剩余的令牌1750byte,此時P桶共有令牌2000bytes,大于報文長度。再檢查C桶,C桶新增令牌250bytes,加上C桶原來剩余的令牌625byte,此時C桶共有750bytes,仍然小于報文長度。因此報文被標(biāo)記為黃色,P桶減少令牌1000bytes,剩余1000bytes,C桶令牌不變。
l? 假設(shè)又過20ms之后到達(dá)報文1500bytes。在此間隔內(nèi),P桶新增令牌 = PIR * 20ms = 40000bit = 5000bytes,超過P桶容量PBS,因此P桶令牌數(shù) = PBS = 3000bytes,溢出的令牌丟棄。這樣P桶有2000bytes,大于報文長度。此時C桶增加令牌 = CIR * 20ms = 20000bit = 2500bytes,超過C桶容量CBS,因此C桶令牌數(shù) = CBS = 2000byte,溢出的令牌丟棄。C桶此時令牌數(shù)2000 bytes,大于報文長度。報文被標(biāo)記為綠色,P桶減少令牌1500bytes,剩余1500bytes;C桶減少令牌1500bytes,剩余500bytes。
報文處理過程匯總見下表。
| 包序號 | 時刻 ? (ms) | 包長 ? (bytes) | 與上次添加令牌的間隔 | 本輪增加令牌 | 令牌增加后各桶令牌 | 報文處理后各桶剩余令牌 | 報文標(biāo)記結(jié)果 | |||
| C桶 | P桶 | C桶 | P桶 | C桶 | P桶 | |||||
| ? | ? | ? | ? | ? | ? | 2000 | 3000 | 2000 | 3000 | – |
| 1 | 0 | 1500 | 0 | 0 | 0 | 2000 | 3000 | 500 | 1500 | 綠色 |
| 2 | 1 | 1800 | 1 | 125 | 250 | 625 | 1750 | 625 | 1750 | 紅色 |
| 3 | 2 | 1000 | 1 | 125 | 250 | 750 | 2000 | 750 | 1000 | 黃色 |
| 4 | 22 | 1500 | 20 | 2500 | 5000 | 2000 | 3000 | 500 | 1500 | 綠色 |
?
三種令牌桶模式的區(qū)別和應(yīng)用場景
由前文描述可以看出,三種令牌桶模式之間既有區(qū)別也有演進關(guān)系,具體見下表。
| ? | 單速單桶 | 單速雙桶 | 雙速雙桶 |
| 關(guān)鍵參數(shù) | CIR和CBS | CIR、CBS和EBS | CIR、CBS、PIR和PBS |
| 令牌投放 | 以CIR速率向C桶投放令牌。C桶滿時令牌溢出。 | C桶滿時令牌投放到E桶。C桶和E桶都不滿時,只向C桶投放令牌。 | 以CIR速率向C桶投放令牌,以PIR速率向P桶中投放令牌。兩個桶相對獨立。桶中令牌滿時令牌溢出。 |
| 是否允許流量突發(fā) | 不允許流量突發(fā)。報文的處理以C桶中是否有足夠令牌為依據(jù)。 | 允許報文尺寸的突發(fā)。先使用C桶中的令牌,C桶中令牌數(shù)量不夠時,使用E桶中的令牌。 | 允許報文速率的突發(fā)。C桶和P桶中的令牌足夠時,兩個桶中的令牌都使用。C桶中令牌不夠時,只使用P桶中的令牌。 |
| 報文顏色標(biāo)記結(jié)果 | 綠色或紅色 | 綠色、黃色或紅色 | 綠色、黃色或紅色 |
| 演進關(guān)系 | 單速雙桶模式中,如果EBS等于0,其效果和單速單桶是一樣的。 ? 雙速雙桶模式中,如果PIR等于CIR,其效果和單速單桶是一樣的 | ||
基于上述三種令牌桶模式之間的區(qū)別,其功能和使用場景也有所不同,具體見下表。
| 令牌桶模式 | 功能 | 選用場景 |
| 單速單桶 | 限制帶寬 | 優(yōu)先級較低的業(yè)務(wù)(如企業(yè)外網(wǎng)HTTP流量),對于超過額度的流量直接丟棄保證其他業(yè)務(wù),不考慮突發(fā)。 |
| 單速雙桶 | 限制帶寬,還可以容許一部分流量突發(fā),并且可以區(qū)分突發(fā)業(yè)務(wù)和正常業(yè)務(wù) | 較為重要的業(yè)務(wù),容許有突發(fā)的業(yè)務(wù)(如企業(yè)郵件數(shù)據(jù)),對于突發(fā)流量有寬容。 |
| 雙速雙桶 | 限制帶寬,可以進行流量帶寬劃分,可以區(qū)別帶寬小于CIR還是在CIR ~PIR之間 | 重要業(yè)務(wù),可以更好的監(jiān)控流量的突發(fā)程度,對流量分析起到指導(dǎo)作用。 |
參數(shù)設(shè)置有講究
在令牌桶算法中,CIR的值越大,即令牌產(chǎn)生的速率越大,報文可以獲取的令牌就越多,流向網(wǎng)絡(luò)的流量也就越大。因此,CIR的值是控制流入網(wǎng)絡(luò)中流量多少的關(guān)鍵。CBS也是一個重要參數(shù)。CBS的值越大,C桶中可以積累令牌的數(shù)目也越多,允許通過的報文尺寸就越大。
由于設(shè)備進行的是逐包轉(zhuǎn)發(fā),CBS的值不應(yīng)該小于當(dāng)前網(wǎng)絡(luò)上允許傳輸?shù)膱笪牡淖畲箝L度。
例如,在單速單桶模式下,假設(shè)要把流量限定在10Mbit/s,而CBS值太小(如設(shè)置成1000byte)。如果某個時間段內(nèi)流量的報文,每個報文大小都大于1000byte,那么這些報文全都被丟棄。這段時間內(nèi),沒有報文被轉(zhuǎn)發(fā),報文的轉(zhuǎn)發(fā)速率為0,導(dǎo)致網(wǎng)絡(luò)資源被浪費,業(yè)務(wù)也出現(xiàn)異常。
那是不是CBS的值越大就越好呢?顯然不是。CBS值太大,會失去限速的意義。例如,假設(shè)要把流量限定在10Mbit/s,CBS設(shè)置成7200Mbyte。某個時刻,令牌桶中的令牌已滿,如果接下來1小時內(nèi)流量的報文,其報文長度不一,但共計7200Mbyte,這些報文都能獲得令牌并被轉(zhuǎn)發(fā),那么這段時間內(nèi)的報文速率為16Mbit/s(7200M * 8 / 3600)而不是10Mbit/s,即沒有實現(xiàn)限速。
同理,對于雙速雙桶模式,PIR和PBS的值也應(yīng)設(shè)置在合理范圍內(nèi)。
說明:目前華為以太網(wǎng)交換機只支持單速單桶和雙速雙桶模式。
簡單來說,帶寬參數(shù)的設(shè)置取決于實際業(yè)務(wù)的限速需要。原則上,令牌桶容量需要大于等于網(wǎng)絡(luò)中可能出現(xiàn)的最大的報的長度和業(yè)務(wù)流量的正常突發(fā)量。對于華為的以太網(wǎng)交換機,我們有總結(jié)的經(jīng)驗性公式:
l? 帶寬 ≤ 100Mbit/s時,令牌桶容量(Bytes) = 帶寬(kbit/s) * 1000(s)/8
l? 帶寬 > 100Mbit/s時,令牌桶容量(Bytes) = 100000(kbit/s) * 1000 (s)/8
另外,華為的以太網(wǎng)交換機,不同系列的單板支持的CAR粒度不同。在進行流量監(jiān)管和限速時,
l? 如果配置的CIR、PIR是最小粒度的整數(shù)倍,則按照配置的速率進行監(jiān)管和限速。
l? 如果配置的CIR、PIR不是最小粒度的整數(shù)倍,則按照最小粒度的整數(shù)倍進行流量監(jiān)管和限速。
例如,設(shè)備上的監(jiān)管和限速粒度為64kbit/s,如果CIR值 ≤ 64kbit/s,按照64kbit/s處理;如果128kbit/s < CIR值 ≤ 192kbit/s,按照192kbit/s處理。
令牌桶原理應(yīng)用之接口限速
令牌桶原理可以應(yīng)用到設(shè)備的入方向和出方向。根據(jù)令牌桶原理在不同方向的應(yīng)用,可以實現(xiàn)不同的功能,見下圖。
流量監(jiān)管、流量整形、接口限速與令牌桶算法之間的關(guān)系,見下表。
| 應(yīng)用方向 | 單速單桶 | 雙速雙桶 |
| 設(shè)備入方向 | 基于接口,實現(xiàn)接口限速 | 基于流,實現(xiàn)流量監(jiān)管 |
| 設(shè)備出方向 | 基于接口,實現(xiàn)接口限速 | 基于隊列,實現(xiàn)流量整形 |
流量監(jiān)管是一種通過對流量規(guī)格進行監(jiān)督,以限制流量及網(wǎng)絡(luò)資源使用的流控策略。如果這種流控策略應(yīng)用到設(shè)備接口的入方向,也可以實現(xiàn)入方向的接口限速。與基于接口實現(xiàn)的入方向的接口限速相比,這種方式引入了MQC(Modular QoS Command-Line Interface),因此應(yīng)用更加靈活。
通常我們所說的限速是廣義上的接口限速,包括基于接口和基于MQC實現(xiàn)的入方向的接口限速。
轉(zhuǎn)載于:https://www.cnblogs.com/ricksteves/p/9678009.html
總結(jié)
以上是生活随笔為你收集整理的CIR,CBS,EBS,PIR,PBS傻傻分不清楚?看这里!—-揭秘令牌桶的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git cherry-pick
- 下一篇: [USACO5.3]校园网Network