1. 程式人生 > >CIR,CBS,EBS,PIR,PBS傻傻分不清楚?看這裏!--zz

CIR,CBS,EBS,PIR,PBS傻傻分不清楚?看這裏!--zz

進入 只有一個 車輛 20M 關鍵參數 郵件 兩個 com 技術分享

https://www.cnblogs.com/foonsun/p/5687978.html

單速單桶

假設有一套自動出卡系統,包括一臺自動出卡機和一個盒子C。自動出卡機以固定的速率(3.6秒出一張通行卡)向盒子中投放通行卡。這個固定的速率,就相當於是單速單桶模式中的CIR參數。

CIR(Committed Information Rate):承諾信息速率,表示向C桶(單桶模式中只有一個令牌桶,稱為C桶)中投放令牌的速率,即C桶允許傳輸或轉發報文的平均速率。

如果平均每3.6秒來了不止1輛車,通行卡很快就領完了。這時自動出卡機上的紅燈亮起,新到的車輛禁止進入高速公路。這就起到了限定作用,將放行車輛的速率限制在放卡速率範圍內。

如果平均每3.6秒來了不到1輛車,盒子裏就會有一些積累起來的通行卡。這些累積起來的通行卡可以應付車隊(比如車友俱樂部的車隊)要進入高速公路這樣的情況。我們規定每輛車都要領取通行卡,都由領隊的車領取。

假設某時刻來了一個車隊共8輛車,但盒子裏只有6張通行卡,領隊車拿起通行卡一數,發現不夠,那麽這個車隊不允許進入高速,通行卡放回盒子中。

盒子中的通行卡不停累積,總有盒子裝滿的時候。這個盒子的容積,就相當於單速單桶模式中的CBS參數。

CBS(Committed Burst Size):承諾突發尺寸,表示C桶的容量,即C桶瞬間能夠通過的承諾突發流量。相當於盛放通行卡的盒子裏最多可以放多少張通行卡,也就是說,該自動出卡系統允許通過的車隊中最多可以有多少輛車。

在單速單桶模式中,系統按照CIR速率向C桶中投放令牌。

l 如果可用令牌的總數量(Tc)小於CBS,則令牌數繼續增加。

l 如果令牌桶已滿,則令牌數不再增加。

對於到達的報文(報文大小為B),

l 如果B ≤ Tc,報文被標記為綠色,且Tc減少B。

l 如果B > Tc,報文被標記為紅色,Tc不減少。

假設設備端口的CIR設置為1Mbit/s,CBS為2000bytes,初始狀態時C桶滿。

說明:為方便計算,此處1Mbit/s1*106bit/s計算。

l 假設第1個到達的報文是1500bytes時,檢查C桶發現令牌數大於數據包的長度,所以數據包被標為綠色,C桶減少令牌1500bytes,還剩500bytes。

l 假設1ms之後到達第2個報文1500bytes。在此間隔內,C桶新增令牌 = CIR * 1ms = 1000bit = 125bytes,加上C桶原來剩余的令牌500bytes,此時C桶共有625bytes。令牌數量不夠,報文標記為紅色。

l 假設又過1ms後到達第3個報文1000bytes。在此間隔內,C桶新增令牌125bytes,加上C桶原來剩余的令牌625bytes,此時C桶共有750bytes。令牌數量不夠,因此報文被標記為紅色。

l 假設又過20ms後到達第4個報文1500bytes。在此間隔內,C桶新增令牌 = CIR * 20ms = 20000bit = 2500bytes,加上C桶原來剩余的令牌750bytes,C桶此時令牌數為3250bytes。而CBS = 2000bytes,因此溢出1250bytes令牌被丟棄。此時C桶令牌數大於報文長度,報文標記為綠色,C桶減少令牌1500bytes,剩500bytes。

報文處理過程匯總見下表。

包序號

時刻

(ms)

包長

(bytes)

與上次添加令牌的間隔

本輪增加令牌

令牌增加後C桶令牌

報文處理後C桶剩余令牌

報文標記結果

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輛車,盒子裏就會有一些積累起來的通行卡。如果一直沒有車輛過來,盒子中的通行卡不停地累積。盒子的容量是有限的,當盒子中裝滿通行卡之後,不斷投放的通行卡就溢出盒子,會造成浪費。

為了避免這種浪費,我們改進了這個自動出卡系統,在原來的基礎上增加一個盒子E(改進後的系統對應單速雙桶模式,盒子E對應單速雙桶中的E)。自動出卡機首先向C盒中投放通行卡。當C盒滿了,自動出卡機就向E盒中投放通行卡。

為了保證通行卡有序領取,我們規定先領取C盒中的通行卡。如果C盒中的通行卡不夠用,就把卡放回C盒,再從E盒中重新領取通行卡。C盒和E盒中的通行卡不能同時取用。

按照通行卡的取用,可以分為三種情況:

l 如果C盒中的通行卡夠用,綠燈亮,車輛領取C盒中的通行卡後通行。

l 如果C盒中的通行卡不夠用但E盒中的通行卡夠用,黃燈亮,從C盒中領取的通行卡領取的通行卡要歸還,車輛領取E盒中的通信卡後通行。

l 如果E盒中的通行卡也不夠用,紅燈亮,車輛禁止通行,從E盒中領取的通行卡領取通行卡要歸還。

和單速單桶模式一樣,對於車隊,有幾輛車,就領取幾張通行卡。當然,E盒的容量也是有限的。E盒的容量就相當於單速雙桶模式中的EBS。

EBS(Excess Burst Size):超額突發尺寸,表示E桶的容量,即E桶瞬間能夠通過的超出突發流量。

假設某時刻來了一個車隊有8輛車,但C盒裏只有5張通行卡,而E盒中有9張通行卡,那麽黃燈亮起,這輛長車從E盒中領取8張通行卡。

在單速雙桶模式中,系統按照CIR速率向桶中投放令牌。

l 如果C桶中可用令牌的總數量(Tc)小於CBS,則C桶中令牌數增加。

l 如果Tc等於CBS且E桶中的可用令牌總數量(Te)小於EBS,則C桶中令牌數不增加,E桶中令牌數增加。

l 如果C桶和E桶中的令牌都已滿,則兩個桶中的令牌數都不再增加。

對於到達的報文(報文大小為B),

l 如果B ≤ Tc,報文被標記為綠色,且Tc減少B。

l 如果Tc < B ≤ Te,報文被標記為黃色,且Te減少B,Tc不減少。

l 如果B > Te,報文被標記為紅色,且Tc和Te都不減少。

假設設備端口的CIR設置為1Mbit/s,CBS為2000bytes,EBS為2000bytes,初始狀態時C桶和E桶滿。

說明:為方便計算,此處1Mbit/s1*106bit/s計算。

l 假設第1個到達的報文是1500bytes時,檢查C桶發現令牌數大於數據包的長度,所以數據包被標為綠色,C桶減少令牌1500bytes,還剩500bytes,E桶令牌數量保持不變。

l 假設1ms之後到達第2個報文1500bytes。在此間隔內,C桶新增令牌 = CIR * 1ms = 1000bit = 125bytes,加上C桶原來剩余的令牌500bytes,此時C桶共有625bytes,檢查發現C桶內令牌數量不夠。檢查E桶發現有足夠令牌,因此報文標記為黃色,E桶減少令牌1500bytes,剩余500bytes,C桶剩余625byte保持不變。

l 假設又過1ms後到達第3個報文1000bytes。在此間隔內,C桶新增令牌125bytes,加上C桶原來剩余的令牌625bytes,此時C桶共有750bytes,檢查發現C桶內令牌數量不夠。檢查E桶發現令牌數量也不夠,因此報文被標記為紅色,C桶、E桶令牌數不變。

l 假設又過20ms後到達第4個報文1500bytes。在此間隔內,C桶新增令牌 = CIR * 20ms = 20000bit = 2500bytes,加上C桶原來剩余的令牌750bytes,C桶此時令牌數為3250bytes。而CBS = 2000bytes,因此溢出的1250bytes添加到E桶,此時E桶有1750bytes。由於C桶中令牌數大於報文長度,報文標記為綠色,C桶減少令牌1500bytes,剩余500bytes,E桶不變。

報文處理過程匯總見下表。

包序號

時刻

(ms)

包長

(bytes)

與上次添加令牌的間隔

本輪增加令牌

令牌增加後各桶令牌

報文處理後各桶剩余令牌

報文標記結果

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

綠色

雙速雙桶

前面說到的自動出卡機,都只有一個口可以輸出通行卡。而這裏說到的高級自動出卡機,有兩個口可以出卡,一個口輸出的是通行卡,一個口輸出的是服務卡。當然,這裏也有兩個盒子用於盛放卡,分別是盒C盒和P盒。自動出卡機上的兩個口分別以各自固定的速率向兩個盒子中投放卡。(這個高級自動出卡機系統對應雙速雙桶模式,C盒和P盒對應雙速雙桶模式中的C桶和P桶。

領取卡的規則和前面單速的情況有所不同。我們規定:

l 先領取服務卡。如果服務卡不夠,把卡放回P盒,紅燈亮,車輛禁止通行。

l 如果服務卡足夠但通行卡不夠,黃燈亮,服務卡可以取走,通行卡放回C盒。

l 如果服務卡和通行卡都足夠,綠燈亮,車輛可以通行,服務卡和通行卡都取走。

自動出卡機向P盒投放服務卡的速率和P盒的容量,就分別相當於雙速雙桶模式中的PIR和PBS。

PIR(Peak information rate):峰值信息速率,表示向P桶中投放令牌的速率,即P桶允許傳輸或轉發報文的峰值速率。PIR的值應大於CIR(存在服務卡足夠而通行卡不夠的情況)。

PBS(Peak Burst Size):峰值突發尺寸,表示P桶的容量,即P桶瞬間能夠通過的峰值突發流量。

按照國家高速公路交通安全法的規定,在高速公路上行駛的車輛,最高時速為120km/h。前面領取的通行卡,保證車輛的時速為100km/h。而服務卡的作用,則是允許車輛時速可以達到120km/h。自動出卡機向P盒投放服務卡的速率就是允許的最高車速,相當於PIR。

在雙速雙桶模式中,系統按照PIR速率向P桶中投放令牌,按照CIR速率向C桶中投放令牌。

l 如果P桶中可用令牌的總數量(Tp)小於PBS,則P桶中令牌數增加。

l 如果C桶中可用令牌的總數量(Tc)小於CBS,則C桶中令牌數增加。

對於到達的報文(報文大小為B),

l 如果Tp < B,報文被標記為紅色,且Tc和Tp都不減少。

l 如果Tc < B ≤ Tp,報文被標記為黃色,且Tp減少B,Tc不減少。

l 如果B ≤ Tc,報文被標記為綠色,且Tp和Tc都減少B。

假設設備端口的CIR設置為1Mbit/s,PIR設置為2Mbit/s,CBS為2000 bytes,PBS為3000 bytes,初始狀態時C桶和P桶滿。

說明:為方便計算,此處1Mbit/s1*106bit/s計算。

l 第1個到達的報文假設是1500bytes時,檢查發現報文長度不超過P桶也不超過C桶,所以數據包被標為綠色,C桶和P桶都減少令牌1500bytes,C桶還剩500bytes,P桶還剩1500bytes。

l 假設1ms後到達第2個報文1800bytes。在此間隔內,P桶新增令牌 = PIR * 1ms = 2000bit = 250bytes,加上P桶原來剩余的令牌1500bytes,此時P桶共有1750bytes,小於報文長度。C桶新增令牌 = CIR * 1ms = 1000bit = 125bytes,加上C桶原來剩余的令牌500bytes,此時C桶共有625bytes。報文標記為紅色,P桶、C桶令牌數不變。

l 假設又過1ms後到達第3個報文1000bytes。在此間隔內,P桶新增令牌250byte,加上P桶原來剩余的令牌1750byte,此時P桶共有令牌2000bytes,大於報文長度。再檢查C桶,C桶新增令牌250bytes,加上C桶原來剩余的令牌625byte,此時C桶共有750bytes,仍然小於報文長度。因此報文被標記為黃色,P桶減少令牌1000bytes,剩余1000bytes,C桶令牌不變。

l 假設又過20ms之後到達報文1500bytes。在此間隔內,P桶新增令牌 = PIR * 20ms = 40000bit = 5000bytes,超過P桶容量PBS,因此P桶令牌數 = PBS = 3000bytes,溢出的令牌丟棄。這樣P桶有2000bytes,大於報文長度。此時C桶增加令牌 = CIR * 20ms = 20000bit = 2500bytes,超過C桶容量CBS,因此C桶令牌數 = CBS = 2000byte,溢出的令牌丟棄。C桶此時令牌數2000 bytes,大於報文長度。報文被標記為綠色,P桶減少令牌1500bytes,剩余1500bytes;C桶減少令牌1500bytes,剩余500bytes。

報文處理過程匯總見下表。

包序號

時刻

(ms)

包長

(bytes)

與上次添加令牌的間隔

本輪增加令牌

令牌增加後各桶令牌

報文處理後各桶剩余令牌

報文標記結果

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

綠色

三種令牌桶模式的區別和應用場景

由前文描述可以看出,三種令牌桶模式之間既有區別也有演進關系,具體見下表。

單速單桶

單速雙桶

雙速雙桶

關鍵參數

CIR和CBS

CIR、CBS和EBS

CIR、CBS、PIR和PBS

令牌投放

以CIR速率向C桶投放令牌。C桶滿時令牌溢出。

C桶滿時令牌投放到E桶。C桶和E桶都不滿時,只向C桶投放令牌。

以CIR速率向C桶投放令牌,以PIR速率向P桶中投放令牌。兩個桶相對獨立。桶中令牌滿時令牌溢出。

是否允許流量突發

不允許流量突發。報文的處理以C桶中是否有足夠令牌為依據。

允許報文尺寸的突發。先使用C桶中的令牌,C桶中令牌數量不夠時,使用E桶中的令牌。

允許報文速率的突發。C桶和P桶中的令牌足夠時,兩個桶中的令牌都使用。C桶中令牌不夠時,只使用P桶中的令牌。

報文顏色標記結果

綠色或紅色

綠色、黃色或紅色

綠色、黃色或紅色

演進關系

單速雙桶模式中,如果EBS等於0,其效果和單速單桶是一樣的。

雙速雙桶模式中,如果PIR等於CIR,其效果和單速單桶是一樣的

基於上述三種令牌桶模式之間的區別,其功能和使用場景也有所不同,具體見下表。

令牌桶模式

功能

選用場景

單速單桶

限制帶寬

優先級較低的業務(如企業外網HTTP流量),對於超過額度的流量直接丟棄保證其他業務,不考慮突發。

單速雙桶

限制帶寬,還可以容許一部分流量突發,並且可以區分突發業務和正常業務

較為重要的業務,容許有突發的業務(如企業郵件數據),對於突發流量有寬容。

雙速雙桶

限制帶寬,可以進行流量帶寬劃分,可以區別帶寬小於CIR還是在CIR ~PIR之間

重要業務,可以更好的監控流量的突發程度,對流量分析起到指導作用。

參數設置有講究

在令牌桶算法中,CIR的值越大,即令牌產生的速率越大,報文可以獲取的令牌就越多,流向網絡的流量也就越大。因此,CIR的值是控制流入網絡中流量多少的關鍵。CBS也是一個重要參數。CBS的值越大,C桶中可以積累令牌的數目也越多,允許通過的報文尺寸就越大。

由於設備進行的是逐包轉發,CBS的值不應該小於當前網絡上允許傳輸的報文的最大長度。

例如,在單速單桶模式下,假設要把流量限定在10Mbit/s,而CBS值太小(如設置成1000byte)。如果某個時間段內流量的報文,每個報文大小都大於1000byte,那麽這些報文全都被丟棄。這段時間內,沒有報文被轉發,報文的轉發速率為0,導致網絡資源被浪費,業務也出現異常。

那是不是CBS的值越大就越好呢?顯然不是。CBS值太大,會失去限速的意義。例如,假設要把流量限定在10Mbit/s,CBS設置成7200Mbyte。某個時刻,令牌桶中的令牌已滿,如果接下來1小時內流量的報文,其報文長度不一,但共計7200Mbyte,這些報文都能獲得令牌並被轉發,那麽這段時間內的報文速率為16Mbit/s(7200M * 8 / 3600)而不是10Mbit/s,即沒有實現限速。

同理,對於雙速雙桶模式,PIR和PBS的值也應設置在合理範圍內。

說明:目前華為以太網交換機只支持單速單桶和雙速雙桶模式。

簡單來說,帶寬參數的設置取決於實際業務的限速需要。原則上,令牌桶容量需要大於等於網絡中可能出現的最大的報的長度和業務流量的正常突發量。對於華為的以太網交換機,我們有總結的經驗性公式:

l 帶寬 ≤ 100Mbit/s時,令牌桶容量(Bytes) = 帶寬(kbit/s) * 1000(s)/8

l 帶寬 > 100Mbit/s時,令牌桶容量(Bytes) = 100000(kbit/s) * 1000 (s)/8

另外,華為的以太網交換機,不同系列的單板支持的CAR粒度不同。在進行流量監管和限速時,

l 如果配置的CIR、PIR是最小粒度的整數倍,則按照配置的速率進行監管和限速。

l 如果配置的CIR、PIR不是最小粒度的整數倍,則按照最小粒度的整數倍進行流量監管和限速。

例如,設備上的監管和限速粒度為64kbit/s,如果CIR值 ≤ 64kbit/s,按照64kbit/s處理;如果128kbit/s < CIR值 ≤ 192kbit/s,按照192kbit/s處理。

令牌桶原理應用之接口限速

令牌桶原理可以應用到設備的入方向和出方向。根據令牌桶原理在不同方向的應用,可以實現不同的功能,見下圖。

技術分享圖片

流量監管、流量整形、接口限速與令牌桶算法之間的關系,見下表。

應用方向

單速單桶

雙速雙桶

設備入方向

基於接口,實現接口限速

基於流,實現流量監管

設備出方向

基於接口,實現接口限速

基於隊列,實現流量整形

流量監管是一種通過對流量規格進行監督,以限制流量及網絡資源使用的流控策略。如果這種流控策略應用到設備接口的入方向,也可以實現入方向的接口限速。與基於接口實現的入方向的接口限速相比,這種方式引入了MQC(Modular QoS Command-Line Interface),因此應用更加靈活。

通常我們所說的限速是廣義上的接口限速,包括基於接口和基於MQC實現的入方向的接口限速。

CIR,CBS,EBS,PIR,PBS傻傻分不清楚?看這裏!--zz