天天看點

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

本節書摘來自異步社群《cisco qos認證考試指南(第2版)》一書中的第6章,第6.3節,作者 【美】wendell odom , michael j. cavanaugh,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

cisco qos認證考試指南(第2版)

流量整形和流量限速都會測量發送或接收資料的速率。限速特性會丢棄超出門限值的資料包,使整體限速後的速率不會超出設定。整形特性會将超出門限值的資料包排到隊列中,并以整形速率發送這條隊列中的資料包。無論是哪種方法,限速和整形都用來預防流量超出限速器或整形器設定的比特率。

這一部分介紹了與整形和限速相關的概念,首先說明使用整形和限速的動機。使用整形特性的一個經典理由是鍊路對端的裝置啟用了限速特性。舉例來說,假設r1屬于一家企業,r2屬于一個isp。r1向r2發送資料包,r2對收到的流量實施了限速,即它會丢棄超出x bit/s的流量。isp會選擇在r2進行限速,是為了預防自己的網絡接收過多的流量。r1可以對其流量進行整形,使用與r2限速器設定速率相同的速率向r2發送流量,這樣可以避免r2丢棄超出設定速率的資料包。還有其他一些理由讓工程師使用整形和限速,接下來我們會一一讨論。

本節還介紹了用來執行整形和限速功能的機制。比如限速器和整形器都必須測量比特率。為了測量速率,必須觀察并計算一段時間内的流量比特或位元組。為了簡化流程,整形和限速使用類似的機制來計算流量比特或位元組。但現在,我們先介紹使用整形和限速的動機。

在大多數情況下,整形和限速分别實施在兩個不同網絡的邊界上。以圖6-1為例,這裡描繪了兩個整形和限速的常見案例。圖中顯示了pb帳篷公司的網絡,它使用幀中繼服務,并通過isp1來連接配接internet。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

在本例中,pb帳篷公司分别有3個邊界連接配接不同的網絡。鍊路1是第一個邊界,位于r1和幀中繼網絡交換機frs1之間。第二個邊界位于交換機frs2和r2之間。最後,還有一個邊界位于r3和isp-r1之間,标記為鍊路3。

對于每個邊界,分别有法律檔案詳細地寫明pb帳篷和幀中繼服務提供商之間的協定,以及pb帳篷與isp1之間的協定,其中包括流量契約(traffic contract)。這種契約用在幀中繼環境中更為合理,但也可以應用于internet連接配接。舉例來說,r2使用t1通路鍊路連接配接到幀中繼網絡。但r2和r1之間vc上的cir(承諾資訊速率,committed information rate)隻有64 kbit/s。類似地,r1擁有128 kbit/s通路鍊路,但在連接配接r2的vc上,cir為64 kbit/s。那麼在r1發送資料包時,資料包的傳輸速率是128 kbit/s——因為實體鍊路隻能以這個速率工作!同樣,r2必須以1.5 mbit/s的速率發送資料包。但是流量契約中聲明在r1和r2之間的vc上,任意方向隻允許使用64 kbit/s。

pb帳篷和isp1之間協商使用一條比pb帳篷現有需求更快速的鍊路,為pb帳篷internet流量負載在未來的增長留出餘量。當pb帳篷需要更多流量容量來通路internet時,它們雙方就需要達成一個新的流量契約,pb帳篷也要付給isp1更多的錢。比如都市中以太/快速以太/吉比特以太網服務正變得越來越普遍;但大多數站點實際上并不需要100 mbit/s帶寬來連接配接internet。若pb帳篷使用快速以太網鍊路來連接配接isp1,并且流量契約中聲明pb帳篷可以使用2 mbit/s帶寬服務,那麼在internet連接配接上,實體容量和合約容量之間也出現了不比對,這與幀中繼鍊路的情況相同。

簡而言之,當出現路由器能夠發送的流量多于流量契約所允許的流量時,就需要使用限速和整形。整形特性會降低資料包的發送速率,使實際流量不會超出流量契約的限制。限速特性會丢棄一些資料包,來保證明際流量不超出流量契約的限制。

1.限速:何時?何地?

隻要實體始終速率超出了流量契約的限制,就可能需要使用限速特性。舉例來說,isp1擁有1000個客戶,與pb帳篷相同,每個客戶使用一條100 mbit/s的連接配接,并且流量契約支援2 mbit/s帶寬。随着時間的推移會發生什麼事?若沒有任何機制的介入,每個客戶都會發送和接收越來越多的流量。在短時間内,所有客戶都會很高興,因為它們通過isp1核心的資料包數量遠大于契約限制。即使isp1有足夠的帶寬容量來為每個客戶提供10 mbit/s帶寬,最終isp1的網絡會變得超載,因為所有客戶都不停地發送越來越多的流量,最終所有流量的品質都會降低。隊列常常排滿,導緻丢包的頻繁發生。多媒體流量會由于高延遲和高抖動而獲得糟糕的品質。tcp連接配接會由于丢包而縮小視窗大小,這會在isp1中導緻同步問題。isp1可以擴容,但這很大程度上意味着isp1應該向客戶收取更多的錢,但客戶可能并不願意簽下更高的流量契約。

在真實的isp網絡中,網絡工程師在設計網絡核心時,考慮到了一定程度上的超額訂閱。術語“超額訂閱(oversubscription)”是指客戶發送和接收的流量大于契約或訂閱流量。在前文isp1的案例中,isp和幀中繼提供商在建立網絡時也考慮到了一定程度的超額訂閱。但是它們在建立網絡時,肯定不會假設所有客戶無論何時,都以通路速率發送流量。

限速特性可以保護網絡,使之不會出現流量超載的情況。若isp1限制了每個客戶的速率,并丢棄超出流量契約的資料包,那麼它就可以保護自己的網絡,使之不會出現流量超載的情況。但是為網絡實施限速,有一定的政策性困難。假設isp擁有1000個客戶,每個客戶的流量契約都是2 mbit/s。每個客戶都發送和接收更多的流量,平均為10 mbit/s,導緻isp1的網絡變得擁塞。isp1決定實施限速特性,使用契約速率進行限速,丢棄超出2 mbit/s的資料包。當然大多數客戶會非常不高興!這個選擇不是會導緻業務終結,就是會導緻職業生涯的完結。

限速器也可以隻是标記下流量,而并不丢棄流量。在這種情況下,限速器會在實際流量超出速率限制時,以不同的ip優先級或dscp值來标記資料包,但仍讓資料包通過。在此之後的qos功能,其中包括限速器和丢包工具(比如wred,權重随即早期檢測),對比與未被标記過的資料包,會更積極地丢棄被标記過的資料包。本質上,若流量速率超出了速率限制,限速器可以增加後續資料包在網絡中被丢棄的可能性。通常來講,若限速器标記了資料包,但網絡目前沒有擁塞,那麼資料包還是可以穿越網絡的;若網絡擁塞了,則資料包更有可能被丢棄。

isp需要決定是否進行限速,以及限速到什麼程度。isp的選擇精簡為以下三個基本選項。

不限速——為了支援所有流量,建立網絡時要預計所有客戶都以通路鍊路的時鐘速率發送和接收流量。對于銷售來說,可以通過聲明不實施限速來達成交易,但要鼓勵那些超出契約限制的客戶購買更多的帶寬。

以契約速率進行限速——為了支援這些流量,隻需使網絡能夠支援所有契約速率的總和即可,即使這樣一來核心網絡在支援新客戶時可能會超載。對于銷售來說,要鼓勵那些開始超出契約限制的客戶更新契約,并為其提供一些鼓勵措施。

以契約速率和通路鍊路始終速率之間的一個值進行限速——比如isp1可以将pb帳篷限速為5 mbit/s,但契約限制為2 mbit/s。可以将網絡建設為僅支援所有限速速率的總和。銷售團隊可以在客戶持續超出契約速率時,鼓勵客戶購買更高的契約速率;但要以為其提供遠高于契約速率的流量,來顯示營運商的大度,并維持客戶的高滿意度。

在多路通路wan鍊路(幀中繼和atm網絡)中限速特性也很有用,原因與isp連接配接需要限速相同。一旦允許以高于契約速率的速率發送資料,當多個站點同時以更高的速率發送流量時,網絡就面臨着超載的危險。舉一個例子來幫助你了解一些問題。圖6-2描繪了pb帳篷的網絡結構,它擁有12個分支站點,1個中心站點。

每個站點都可以以128 kbit/s的速率發送流量,但每個分支去往主站點的vc上的cir為64 kbit/s。若所有12個站點都遵從各自的cir,幀中繼網絡應該可以處理這些負載。若所有12個站點長時間發送128 kbit/s流量,營運商可能仍可以繼續轉發流量,因為多數幀中繼提供商會将它們的核心網絡建得容量大一些。它們也會将這一點當作營銷宣傳的亮點,即客戶可以免費獲得額外的帶寬。

當然了,在一定程度上,若營運商的所有客戶都以完整的線路速率發送資料包,一段時間後,網絡很可能會擁塞。幀中繼網絡與isp擁有相同的選擇——不限速,但提供更多容量;以cir進行限速,并處理銷售和客戶滿意度問題;以高于cir的速率進行限速,以不同的方式處理銷售和客戶滿意度問題。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

為了對圖6-2所示網絡進行限速,可以在幀中繼交換機上執行限速特性,或者在路由器上執行。傳統上,會在資料包進入網絡的時候執行限速,是以建議當資料包從客戶網絡進入幀中繼交換機時執行限速。若營運商可以控制企業網絡中的邊緣路由器,那麼也可以在資料包離開路由器去往幀中繼雲的時候執行限速特性。如果客戶負責控制雲邊界的路由器,對于營運商來說,在這些路由器上實施限速政策可能有些風險,因為可能有些客戶會關閉限速,以獲得更多的免費容量。

cisco qos考試中涉及ios路由器中的限速特性(使用cb限速)考試并不涉及幀中繼交換機或lan交換機中的限速,但它們的基本概念是相同的。

2.流量整形:何時?何地?

網絡中使用流量整形主要出于以下兩個原因:

以與限速速率相同的速率來整形流量(如果營運商對流量進行了限速);

為了避免出向阻塞的影響。

以圖6-3所示的分支1和分支24為例。分支1沒有實施限速,分支24限速為96 kbit/s。對于兩個站點來說,幀中繼交換機上都配置了96 kbit/s的限速(每條vc上的cir都是64 kbit/s。是以營運商實施的限速并不嚴格。pb帳篷的工程師希望能夠獲得更多的帶寬,是以将整形速率設定為96 kbit/s,而不是使用64 kbit/s的cir)。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

對于分支1來說,由于沒有啟用整形特性,r1就不會延遲發送任何資料包。但是frs1上實施的限速特性會在r1的流量速率超出96 kbit/s時,丢棄一些資料包。是以有一些資料包會被丢棄,盡管未被丢棄的資料包不會經曆額外的整形延遲。如果分支1的流量對丢包不敏感,但可能對延遲和抖動敏感的話,使用這個政策是合理的。

對于分支24來說,由于啟用了整形特性,r1會延遲發送一些資料包。frs3上執行的限速特性不會丢棄資料包,因為r1不會發送超出96 kbit/s的流量。是以不會有資料包被丢棄,盡管有一些資料包會經曆更多的延遲和抖動。若分支24的流量對丢包敏感,但對延遲和抖動不敏感的話,使用這個政策是合理的。

使用整形的另一個理由是為了避免出向阻塞的影響。出向阻塞發生在資料包試圖離開多路通路wan(比如幀中繼和atm)的時候,由于擁塞資料包無法離開網絡。汽車的交通模式也會導緻與出向阻塞相同的行為問題。比如在早晨,人們都試圖去往大城市的市中心。即使城市中的公路有8條車道,但所有住在周圍小鎮的人們都在每天早晨7點至8點之間試圖從公路僅有的幾個出口離開。市中心地區的公路和出口會變得擁塞。同樣地,在下午,若每個人都試圖在17:30通過一個出口去往郊區,八道公路到兩道出口公路之間會變得擁塞。類似地,盡管網絡中擁有足夠多的帶寬容量,出向阻塞仍會發生在資料包試圖離開網絡的時候。

圖6-4以幀中繼網絡為例,展示了出向阻塞帶來的問題。

假設所有24個分支都整形為64 kbit/s。若所有分支同時發送64 kbit/s,那麼所有分支向主站點發送的總流量為1.5 mbit/s。因為主站點路由器安裝有t1鍊路,是以frs2在通過通路鍊路向主站點路由器轉發資料包時不會經曆擁塞。但是若分支站點沒有啟用整形特性會怎麼樣?若所有24個分支都以128 kbit/s(通路速率)發送流量,一段時間後,積累的流量負載可能會達到3 mbit/s。資料包在試圖離開frs2的接口(連接配接主站點路由器)時會開始排隊。資料包可能會遭遇更多延遲、更多抖動,最終會有更多資料包被丢棄,因為frs2的輸出隊列排滿了。要注意,營運商并沒有實施任何限速——出向阻塞仍會發生,因為分支站點的總流量會超出出向鍊路(雲和主站點之間)的負載。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

有趣的是,即使啟用限速,在分支啟用整形,出向阻塞可能仍會發生。在圖6-3中,整形和限速都配置為96 kbit/s,因為營運商不想太嚴格地執行流量契約。若所有24各分支同時發送96 kbit/s流量,那麼将有2.25 mbit/s流量需要離開frs2,去往主站點路由器。再說一次,即使啟用了限速和整形,出向阻塞仍可能發生。

同樣地,出向阻塞也可以發生在圖中從右到左的方向上。假設主站點路由器從lan接口接收到11個連續的1500位元組資料包,去往分支24。主站點路由器大概要花費100毫秒的時間,将資料包發送到幀中繼網絡中,因為它的通路鍊路是t1。當資料幀到達frs1,它們需要通過通路鍊路被發送到r24。但是這條通路鍊路的通路速率是128 kbit/s。為了發送這11個資料包,需要花費1秒多的時間将資料包串行化到鍊路上!大多數資料包會在frs3的輸出隊列中等待被發送。這個簡單的場景是另一個出向阻塞的案例,有時也稱為速率不比對(speed mismatch)。

應對出向阻塞問題的一個解決方案是流量整形。在案例網絡中,将所有分支上的vc都整形為64 kbit/s,可以確定總負載不會超過主站點的通路速率。同樣地,若主站點路由器将r1的vc整形為64 kbit/s,甚至整形為128 kbit/s,也就解決了frs1上的出向阻塞問題。

在上述兩個整形環境中,延遲和抖動會随着啟用整形功能而增加。路由器中的整形延遲代替了幀中繼交換機中的隊列延遲,因為資料包會排列在路由器的整形隊列中。随着路由器中隊列的形成,ios中的隊列工具可以用來更好地處理流量,并為延遲敏感的流量提供更好的延遲參數。舉例來說,路由器中形成了整形隊列,路由器可以使用llq(低延遲隊列)來優先發送隊列中的voip(ip語音)資料包。幀中繼交換機無法實施複雜的隊列,因為做出轉發和隊列決策時,幀中繼交換機無法檢視幀中繼或ip頭部之外的字段。

表6-2列出了在使用限速和整形時,有關原理的重點内容。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

隻有當傳輸媒介的實體時鐘速率超出流量契約時,才有必要使用整形特性。在多數案例中,整形會應用在連接配接幀中繼或atm網絡的路由器中。現在越來越常見的另一種應用場合是應用在企業與isp之間的點到點串行鍊路或以太鍊路上,且流量契約定義的流量值低于實體鍊路。

路由器的接口隻能以實體時鐘速率向外發送比特。為了在長時間内,使路由器發送的平均比特率低于時鐘速率,路由器隻能在一段時間内發送一些資料包,然後在另一段時間内不發送任何資料包。為了使平均發送資料包的速率控制在實體鍊路速率的一半,路由器應該在一半時間内發送資料包,并在另一半時間内不發送資料包。為了使平均速率控制在實體鍊路速率的1/4,路由器應該在1/4時間内發送資料包,在剩下的3/4時間内不發送資料包。随着時間的發展,路由器就像使用斷音的方式發送資料包,發送一會兒,停一會兒。

回顧幾個簡單的案例,你就可以了解流量整形的邏輯。當然了,為了通過考試,你需要知道更多的細節内容!下列簡單的案例闡釋了基本邏輯:假設r1的通路速率為128 kbit/s,cir為64 kbit/s,工程師希望将流量整形為cir(64 kbit/s)速率,r1隻能在一半的時間内,向鍊路上發送流量。随着時間的推移,r1在一半的時間内,以128 kbit/s速率發送流量(因為它隻能以這個速率發送流量),那麼長時間内的平均速率是64 kbit/s。概念就是這麼簡單!

還有一個更簡單的案例強調了概念中的重點。以圖6-4為例,假設r1希望整形為96 kbit/s,因為幀中繼交換機的限速速率是96 kbit/s。在通路速率為128 kbit/s的鍊路上,整形速率為96 kbit/s,那麼r1應該在3/4的時間内發送流量,因為96/128 = 3/4。

再次以圖6-4為例,若主站點路由器要将連接配接r24的vc整形為128 kbit/s,那麼為了避免出向阻塞問題,主站點路由器需要在128/1536(t1鍊路實際可用的比特率是1.536 mbit/s)或1/12的時間内發送流量。若主站點路由器希望将這條vc整形為64 kbit/s(與cir相比對),那麼主站點路由器應該在64/1536或1/24的時間内,向這條vc上發送流量。

流量整形實作這個基本邏輯的方法是定義一個測量時間間隔,并規定在這個時間間隔内允許發送的比特數,這樣就形成了整形速率。通過案例解釋非常有幫助,但我們先來看一些定義,見表6-3。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

流量整形的實際流程和表6-3中列出的術語,再加上一些案例,有助于你了解流量整形特性。第一個案例見圖6-5,r1的通路鍊路速率為128 kbit/s,整形速率為64 kbit/s。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

路由器應該在一半的時間内向128 kbit/s鍊路發送流量,以滿足平均64 kbit/s的要求。流量整形通過在每個tc期間,隻用一半的時間來發送流量,滿足這一要求。

如圖所示,r1以鍊路速率發送62.5毫秒,然後停止發送62.5毫秒,完成了第一個時間間隔(很多整形工具tc的預設值都是125毫秒;cb整形恰好使用本例中另一個tc值,但概念是一樣的)。随着資料包排隊并發送,r1在每個時間間隔内重複這個過程。1秒鐘過後,r1在8個時間間隔内分别有62.5毫秒在發送流量,總共500毫秒——也就是0.5秒。通過在半秒鐘之内發送128 kbit/s,r1發送資料的平均速率就變成64 kbit/s。

ios流量整形實際上并不是在62.5毫秒計時器開始時發送流量,并在計時器停止後停止發送流量。ios實際上會根據配置進行計算,算出在每個時間間隔内允許發送多少位元組,并以此來滿足整形速率的要求。這個位元組數稱為每個時間間隔的承諾突發(bc)。它被看作突發量,是因為比特流實際上是以實體鍊路速率發送的。但這個突發是被認可的,因為如果你在每個時間間隔内都發送這麼多比特,那麼你仍遵從了流量契約的限制。在本例中,bc值設定為8000比特,實際流程允許整形器在每個時間間隔内發送資料包,直到已發送8000個位元組為止。到那時,整形器會停止發送資料包并等待tc結束,也是另一個時間間隔開始,接着在下一個時間間隔内發送bc比特的流量。時間間隔125毫秒,每個間隔内可發送8000比特,這樣就可滿足64 kbit/s的整形速率。

bc值是基于下列公式計算的:

bc = tc×cir

或者

bc = tc×整形速率

cisco文檔中随處可見第一個公式,這個公式是假設你希望以cir速率進行整形來計算的。但是在很多案例中,你希望以其他速率進行整形,使用第二個公式就更為精确。舉例來說,若整型工具預設的tc為125毫秒,整形速率為64 kbit/s,那麼bc為:

bc = 0.125秒×64000 bit/s = 8000比特

在配置整形特性時,你通常會配置整形速率,不配置bc。若你同時配置了這兩個值,ios會更改tc來滿足公式的要求;你永遠無法實際配置tc的值。若你隻配置了整形速率,根據整型工具的不同,ios會取得tc或bc中的一個值,然後計算出另一個值。

本章後文介紹cb整形的部分,會介紹cb整形如何在隻配置了整形速率的情況下,計算tc和bc。若你同時配置了整形速率和bc,那麼ios會根據以下公式計算tc:

tc = bc/cir

tc = bc/整形速率

與前文公式相同,使用cir的公式假設你希望以cir速率進行整形,第二個公或使用整形速率,因為你可以使用不同于cir的速率進行整形。

另一個案例有助于把這些概念彙總在一起。在前文中已經看到pb帳篷公司的案例,在時鐘速率為128 kbit/s的鍊路整形為96 kbit/s,因為幀中繼營運商将鍊路限速為96 kbit/s。若整形功能中配置的整形速率為96 kbit/s,假設tc是125毫秒,那麼公式計算如下:

bc = 0.125秒×96 000 bit/s = 12 000比特

圖6-6描繪了這個案例中發生的事件。在每個時間間隔内,整形特性允許發送12 000比特,耗時91.25毫秒。91.25/125 = 3/4,表示路由器的平均發送速率是時鐘速率的3/4,即96 kbit/s。

流量整形利用每個時間間隔内發送多少比特的流量來達到目标,因為這比一直計算速率要高效得多。整形器隻需抓取下一個資料包,從bc值中減去資料包中包含的比特數,重複這一過程直到bc值被耗盡。那時,整形器停止抓取資料包并等待tc逾時,tc逾時後,整形器會繼續發送另一個bc的流量。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

對于被整形的資料包來說,tc的長度可能會影響延遲和抖動參數。現在考慮另一個案例,主站點路由器向r24發送資料包,通路鍊路為t1,整形速率為128 kbit/s。圖6-7展示了整形細節。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

對于t1速率來說,在一個時間間隔内發送bc比特的流量并不會花費太長時間。但是将tc值設定為125毫秒對于延遲敏感的流量來說不是一個好的選擇。假設主站點收到了一個voip包,并需要把它發送到r24。主站點使用llq,并将voip包分類到低延遲隊列中,是以這個新收到的voip包就是下一個要發送的資料包。但不幸的是,在這個voip包前面發送出去的資料包已經消耗了這個tc内的全部bc比特。voip資料包需要等待多久,直到目前tc逾時并進入新的時間間隔?發送bc比特的流量隻需10毫秒,是以還有115毫秒才能開始新一輪時間間隔,voip資料包才能被發送!voip要求的單向延遲預算為150~200毫秒,單一裝置上的整形延遲達到115毫秒顯然是不可行的。是以cisco建議當網絡中有延遲敏感的流量時,通過配置bc,使tc變為10毫秒或更低。在這個案例中,若将bc配置為1280比特,tc = 1280/128 000 = 0.010秒,即10毫秒。

注釋:很多人可能會擔心這種1280比特或隻有160位元組的小bc會帶來問題!大多數資料包都會超出這個長度。是以通常在這種情況下還需要使用分片特性。考慮到對延遲敏感的流量,分片也使用類似的大小——事實上,在第8章你會讀到,在這個案例中,分片的大小很可能是160位元組。是以網絡中存在延遲敏感的流量時,你要通過減少bc,把tc降低到10毫秒,bc值的設定應該隻允許每個tc間隔内通過1個分片。通過這種做法,你可以降低後續資料包等待下一個tc到來的整形延遲,并且通過将資料包分片成更小的片段,可以降低串行化延遲。

下面幾個小節繼續讨論流量整形是如何工作的,其中包括超額突發、隊列、自适應和一起啟用整形特性的概念。

1.流量整形且不使用超額突發

流量整形還支援在某些時間間隔内,發送多于bc的流量。基于的思想是很簡單的:資料流量是突發的,是以在一段時間的空閑後,當再次産生流量後,最好在第一個時間間隔内能夠發送多于bc的流量。這個超出的比特數稱為突發超額(burst excess)或簡稱be。流量整形工具将be當作一個可選項。

想要了解啟用be的流量整形的基本運作原理,需要深入了解流量整形是如何工作的,還需要了解令牌桶的概念。令牌桶可以用來描述整形和限速是如何實施的。

先放下be不提,想像一個桶中填滿了令牌,就像地鐵代币。在令牌桶環境中,1個令牌賦予你發送1比特的資格。令牌桶如前所述,用來規範流量整形的操作;這個桶的大小是bc。

圍繞着令牌桶和令牌的兩個主要行為如下:

新令牌填入令牌桶;

整形器消耗令牌,來擷取轉發資料包的資格。

在每個tc開始的時候(假設這時be = 0),令牌桶中會填入令牌,桶會被正好填滿,填入的令牌數量不能超過桶的容量。或者你也可以想像在每個時間間隔開始的時候,整形器向令牌桶中倒入bc數量的令牌;若上一次的令牌沒有用完,導緻這時桶中沒有足夠的空間,就會有一些令牌從桶中溢出。這些溢出的令牌将無法再使用。無論你通過哪種方式了解,結果都是在時間間隔開始時,令牌桶中有滿滿一桶令牌,大小為bc。圖6-8描繪了這一基本概念。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

每當一個資料包被發送出去,流量整形特性都從令牌桶中花費令牌來購買資料包的發送資格。若資料包的長度是1000比特,将會有1000個令牌從桶中消耗掉。當流量整形特性試圖發送一個資料包,但令牌桶中沒有足夠的令牌可以購買這個資料包的發送資格,流量整形特性就必須等待下一個時間間隔,那時令牌桶會被重新填滿。

對令牌桶更形象的比喻是:孩子和每周六早晨他會收到的零用錢。假設每周的零用錢是10美元。孩子每周都可以花掉這些錢;若他不花錢,那他就可以把錢存起來買更貴的東西。假設孩子的父母每周六早晨都會檢視孩子的存錢罐,如果裡面還有錢,那他們就會往裡面少添點兒錢,使孩子每周六早晨都隻有10美元可花!就這樣過了幾個星期,孩子會盡量在一個星期内花掉所有的錢,因為他知道他不能攢到超過10美元的錢。同樣地,bc比特,或者如果你願意使用桶中的令牌的話,也隻能在一個tc間隔内使用,下一個tc(時間間隔)開始的時候,總有bc個令牌在桶中,不會再多。

2.流量整形且使用超額突發

流量整形特性通過将令牌桶設定得大一些,來實施be。事實上,為了支援超額突發,現在令牌桶中除了bc數量的令牌之外,還有be數量個令牌。在每個時間間隔開始的時候将令牌填入桶中,發送資料包的時候消耗令牌來換取發送資格,這些還是一樣。比如在時間間隔開始的時候,整形器仍會試圖将bc個令牌填入桶中。若由于桶中沒有足夠的空間而導緻有些令牌溢出了,那這些溢出的令牌就不再有用了。

獲得be(換句話說,令牌桶大小變為bc加be)的關鍵優勢在于令牌桶變大了。這樣一來,若實際比特率低于整形速率,在一段時間後,令牌桶中會有很多令牌。若在下一個時間間隔内,需要發送的位元組數大于bc,整形器還是會發送它們——令牌數量以bc + be為上限。通常來說,整形器允許發送的資料量可以增加到突發值。

圖6-9描繪了使用be的整形器如何工作。圖中所示的整形器将一條128 kbit/s鍊路的cir整形為64 kbit/s。bc設定為8000比特,be設定為8000比特。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

圖6-9所示案例假設在本例發生前,網絡已經經過了足夠長的不活躍期或一段資料流量很低的時期,使得令牌桶被填滿了。換句話說,本例中一開始令牌桶中有bc + be個令牌,也就是16 000個令牌。接着來了大量流量,是以流量整形特性以最快的速度發送資料包,直到消耗掉所有令牌。

在第1個時間間隔内,流量整形特性一共發送了16 000比特。假設tc為125毫秒,在128 kbit/s的鍊路上發送16 000比特需要全部的125毫秒!好在這個案例中,前一段時間網絡不活躍,r1在第1個時間間隔内,可以持續發送流量。

在第2個時間間隔開始時,整形其向令牌桶中添加bc(8000)個令牌。這些令牌填不滿令牌桶,但允許整形器發送8000比特,這需要消耗半個時間間隔。是以在本例中,整形器會持續發送187.5毫秒(完整的第1個時間間隔和第2個時間間隔的前一半),然後流量整形特性會降低發送速率。進而通過使用be,在開始發送流量時,實作了資料流量的突發。

3.流量整形自适應

整形功能對流量施加的整形速率可以随着時間而變化。自适應過程能夠使整形器識别擁塞,并且暫時降低整形速率,以便減少擁塞。自适應功能也能檢測到擁塞情況的好轉,并且将整形速率恢複為原始值。

兩個特性定義了自适應是如何工作的。首先,整形器必須以某種方式感覺擁塞的發生和消除。其次,整形器必須在擁塞發生和消除的時候降低速率和提升速率。

圖6-10描述了主站點路由器感覺擁塞的3種方式。圖中的3條線分别代表發往主站點路由器的3個資料幀,也意味着擁塞。其中兩個資料幀中設定了幀中繼becn位(後向顯式擁塞通告)。這個字段可以設定在任何幀中繼資料幀的頭部,這個字段用來表示與該資料幀傳輸方向相反的方向上是否有擁塞。第三個消息(最底部)是一個預見(foresight)消息。stratacom和獲得stratacom的cisco在幀中繼和atm網絡中将預見特性定義為一個信令協定,用來通告網絡資訊,比如擁塞資訊。若幀中繼網絡是由cisco/stratacom的wan交換機構成,這些交換機就可以發送預見消息,cisco路由器可以對這些消息進行響應。接下來借由圖檔來說明路由器識别擁塞所使用的這3種不同的方法。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

首先看看becn幀。becn中的“backward(反向)”表示擁塞出現在反方向上,與資料幀的發送方向相反。是以當frs1在嘗試向r1發送資料幀(圖中從右到左)時檢測到了擁塞,那麼它就會在r1發送的下一個資料幀(圖中從左到右)上标記becn位。事實上,任何裝置都可以設定fecn(前向顯式擁塞通告)和becn位——但是在有些網絡中,幀中繼交換機會設定該位,但有些網絡中不設定。

若設定了becn位,主站點路由器若使用自适應整形,就會降低去往r1的vc上的整形速率。由于擁塞發生在從右到左的方向上,這是通過從左向右發送的becn指出的,主站點路由器就知道它可以通過降低整形速率來幫助減少擁塞。若主站點路由器收到了另一個設定了becn位的資料幀,它會繼續降低整形速率。最終,主站點路由器會持續降低整形速率,直到達到一個最低速率,有時也稱為mir(最低資訊速率),或者稱為mincir。

同樣地,若主站點路由器從r12收到的資料幀設定了fecn位,意味着從左到右的方向上發生了擁塞。這時主站點路由器降低速率不會起到任何作用,但r12降低速率有助于緩解擁塞。是以主站點路由器會“反射”fecn,即在下一個資料幀中設定becn位,并将其發送到連接配接r12的vc上。r12收到設定了becn位的資料幀之後,就會降低整形速率。

最後,預見消息是與資料分離的,它是無資料的信令幀。是以當擁塞發生時,無需等待資料幀,就可以通過發送預見消息來通知擁塞情況。除此之外,預見消息是發往需要降低速率的裝置的。舉例來說,若一台交換機發現在主站點路由器與r24之間的vc上,從右到左的方向上出現了擁塞。交換機會生成預見消息,并通過相同的vc向主站點發送預見消息,主站點路由器就知道需要暫時降低這條vc上的整形速率。在配置自适應整形特性時,你需要配置最小和最大整形速率。在沒有擁塞時,cb整形使用最大速率。當整形器接收到becn或預見消息後,它會降低最大速率的25%。為了降低速率,cb整形特性實際上降低bc加be總和的25%,保留相同的tc值。換句話說,cb整形特性會在一個時間間隔内,允許通過更少的比特數量。若整形器持續收到becn,它就會繼續降低最大速率的25%,直到達到最低速率。

在連續16個時間間隔内若沒有再收到becn或預見擁塞消息,速率會增加。在每個tc内整形速率增加最大速率的1/16,直到達到最大速率。為了達到這個目的,之前減少的bc和be值會在每個tc内增加原始配置值的1/16。這樣一來,計算在一個時間間隔内,cb整形增加的速率實際上就是增加的bc和be值。計算公式如下:

(bc + be) / 16

4.在哪裡整形:接口、子接口和vc

工程師可以在實體接口、子接口,有時也可以在vc上應用整形特性。根據選擇的不同,可以通過配置,對每條vc進行單獨整形,也可以對多條vc一起進行整形。在多數情況中,工程師希望對每條vc進行單獨整形。

當工程師在沒有配置vc的接口上應用了整形特性,那麼整形特性就是應用在主接口上的,因為這個接口上并沒有配置子接口和vc。但對于幀中繼和atm的接口來說,有些站點會有多條vc終結在一個接口上,也就是說這裡很有可能使用了子接口。在有些案例中,一個多點子接口關聯了多條vc;在其他案例中,使用的是點到點子接口,即一個子接口上關聯了一條vc。現在問題變成了:要想對每條vc進行整形,應該在哪裡啟用流量整形特性?

首先考慮典型的分支站點模型,如圖6-11中的r24。r24使用一條vc來連接配接pb帳篷公司的主站點。由于r24隻有這一條vc,是以r24的配置中可能甚至根本用不到子接口。若r24的串行鍊路上沒有配置子接口,流量整形就可以直接配置在實體接口上;若使用了子接口,流量整形既可以配置在實體接口上,也可以配置在子接口上。由于這裡隻有一條vc,無論是在實體接口還是在子接口上啟用整形特性都可以——獲得的結果是一樣的。

現在來看看主站點路由器。它通過vc連接配接遠端站點(需要注意r1和r2之間也建立了一條vc,這是為了給這個案例增添一點樂趣)。在主站點路由器上,連接配接分支3~24使用的是點到點子接口,連接配接r1和r2使用的是多點子接口。為了對連接配接分支3~24的vc分别進行整形,可以将整形特性配置在子接口上。但是應用在多點子接口上的整形特性,會對該接口關聯的所有vc起作用。是以為了對每條vc進行單獨整形,你需要在每個dlci(資料鍊路連接配接辨別)上啟用整形特性。

是以,cb整形特性可以在子接口上啟用,但不能在多點子接口上的每條vc上啟用。在圖6-11所示案例中,cb整形可以對主站點到r1和r2的所有流量進行整形,但無法對去往r1和r2的流量分别進行整形。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

總而言之,多數qos政策都需要在每條vc上實施整形特性。用來啟用整形特性的配置指令會根據配置vc的數量而有些許不同,配置方法也不同。表6-4總結了可用選項。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

5.隊列和流量整形

整形工具可以支援多種隊列工具,并将其應用在整形隊列中的資料包上。同時,ios支援的隊列工具可應用在與實體接口相關聯的接口軟體隊列上。以下問題可能會造成工程師的困惑:決定何時為整形隊列使用隊列工具、何時為接口軟體隊列使用隊列工具、如何在不同的情況中進行配置。本節會為你解決其中的一些困惑。

注釋:目前qos考試中除了cb整形特性之外,不涉及其他整形工具。但是如何對整形特性使用隊列工具,以及如何對接口軟體隊列使用隊列工具,這兩種應用使很多人感到困惑。“隊列和流量整形”小節中讨論了相關細節内容。考試中可能并不會涉及這部分内容,但相關概念相當重要。

表6-5列出了流量整形工具,以及在整形隊列中可以應用的隊列工具。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

當整形器使用一種隊列工具來代替單一的fifo整形隊列時,它會根據隊列工具的不同,建立出多個整形隊列。舉例來說,若frts為其整形隊列應用pq(優先級隊列),那麼它會為整形流量建立4個隊列,分别命名為high(高)、medium(中)、normal(普通)和low(低)。圖6-12描繪了基本概念,其中包括在實體接口啟用整形特性,實體接口使用fifo隊列,在每條vc上為整形流量配置pq。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

從圖6-12中可以看出,整形隊列與接口軟體隊列是互相獨立的。由于為整形器應用了pq,是以這條vc上有4個整型隊列。當整形器允許發送另一個資料包時,它會根據pq排程程式的邏輯,從pq整形隊列中提取下一個資料包。接着這些資料包會被放入與實體接口相關聯的軟體隊列中,然後被轉發出接口——本例中的軟體隊列為單一的fifo隊列。

在有些情況中,資料包會跳過整形隊列;在其他情況中,資料包會跳過接口軟體隊列。為了搞明白這是怎麼回事,請看圖6-13描繪的場景,其中描繪了每個隊列應該使用的決策邏輯。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

ios總是會出于一定的原因,才會将資料包放入整形隊列或者接口的輸出隊列中,使其等待下一步操作。舉例來說,你已經知道若接口的硬體隊列沒有排滿,資料包會被直接放入硬體隊列中,即跳過接口軟體隊列。相同地,若由于目前速率未超出整形速率,整形特性決定正常發送資料包,即資料包無需被延遲發送,這時資料包會直接進入輸出隊列,或者甚至直接進入硬體隊列。

前文中提到過,很多qos設計都需要對vc進行整形。假設在一台路由器上,有2條cir為64 kbit/s的vc共享一條通路鍊路,每條vc配置在一個單獨的點到點子接口上。工程師要為每條vc建立整形隊列。ios會在接口上建立唯一的輸出隊列。圖6-14描繪了上述内容。

整型工具根據整形器所使用的隊列工具,為每個子接口或vc建立出一組隊列。ios會根據實體接口的隊列配置,為實體接口建立一組接口軟體隊列,詳見第5章。在圖6-14所示案例中,每條vc建立了2組整形隊列。兩條vc使用同一個接口輸出隊列。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

最終在這個案例中,擁塞會發生在實體接口上。圖6-14中配置的兩個整形速率之和是160 kbit/s,超出了鍊路的通路速率(128 kbit/s)。由于接口輸出隊列會排滿,是以有必要為接口輸出隊列應用隊列工具。

限速器與整形器一樣,它也需要判斷資料包是否在流量契約規定的範圍之内。為了實作這個目的,它通過一個測量程式,有效地測量已接收資料包中位元組數的積累量。根據測量結果,限速器會對資料包執行以下操作:

允許通過;

丢棄;

重新标記一個不同的ip優先級或ip dscp值。

限速器比整形器稍微複雜一些。與cb整形一樣,cb限速也使用令牌桶的機制,以此監測流量,并判斷資料包是否超出了流量契約的限制。若你希望cb限速特性來判斷一個資料包是否遵從或超出流量契約,你需要使用單一的令牌桶,這點與cb整形一樣。你可以認為測量程式将流量分為了兩個限速類别。這兩個類别分别是遵守(conforming)和超出(exceeding)。

然而,cb限速特性可以根據資料包是否遵守契約,将流量分為3個類别:

conforming(遵守)——資料包在契約之内;

exceeding(超出)——資料包使用了超額突發;

violating(違反)——資料包完全在契約之外。

在配置cb限速特性時,你可以隻定義遵守和超出行為,也可以定義3個行為。若你隻使用了兩個類别,限速器有時也稱為“雙色(two-color)”限速器,它使用一個令牌桶。若你配置了3個類别,cb限速特性将使用兩個令牌桶,也稱為“三色(three-color)”限速器(rfc 2697,“a single-rate three color marker”中較長的描述了三色限速功能的概念)。

cb限速特性也使用一個稱為雙速率限速器的概念,即限速器實際監測兩個不同的速率,分别是cir(承諾資訊速率)和pir(峰值資訊速率)。為了達到這一目的,cb限速特性還需要将兩個令牌桶的概念與其結合。這種更先進的限速特性使路由器能夠以兩種速率來執行流量契約,使得營運商為其客戶提供了更為靈活的服務。rfc 2698,“a dual-rate three color marker”中較長的描述了限速和監測雙速率的概念。

接下來按順序介紹單速率單桶(雙色)cb限速特性、單速率雙桶(三色)cb限速特性,最後介紹rfc 2698中的概念——雙速率三色限速器,即使用兩個令牌桶和兩個不同的限速速率。

1.cb限速:單速率雙色(一個令牌桶)

在使用令牌桶進行限速時,有兩點非常重要:首先,令牌會重新裝滿令牌桶;其次,當限速器需要判斷資料包是否遵守契約時,限速器會檢視令牌桶,并嘗試從中拿出足夠多的令牌來允許資料包通過。若令牌足夠多,限速器會“花掉”這些令牌,即将其從令牌桶中移除,并以此獲得發送資料包的資格。

在限速特性中,一個令牌代表能夠發送1位元組的資格;在整形特性中,一個令牌代表能夠發送1比特的資格。首先來看看cb限速特性如何将單一令牌桶填滿。與cb整形不同,cb限速特性不使用有規律的時間間隔(tc),而是在對資料包進行了限速後,将令牌放回到令牌桶中。每次對資料包進行了限速,cb限速特性就會将一些令牌放回到令牌桶中。放回令牌桶中的令牌數量計算公式如下:

(目前資料包到達時間−前一個資料包到達時間)×限速速率 / 8

注意,到達時間的機關是秒,限速速率的機關是bit/s,計算出的結果是令牌的數量。每個令牌代表可以發送1位元組的資格,是以公式需要除以8,以便把比特轉換為位元組。

公式基于的概念很簡單——從本質上說,在對資料包實施限速之前将一小部分令牌重新放入桶中,結果最終會根據限速速率填入令牌。舉例來說,假設限速速率設定為128 000 bit/s(等于16 000位元組每秒)。若在前一個資料包到達後已經過去了1秒,cb限速特性就會向令牌桶中填入16 000個令牌。若在前一個資料包到達後已經過去了0.1秒,cb限速特性就會向令牌桶中填入價值0.1秒的令牌,即1600個令牌。若過去了0.01秒,cb限速特性就會向令牌桶中填入160個令牌。本質上,cb限速特性會根據距離上次填充過去了多長時間,向令牌桶中填入一定比例的令牌。

令牌桶與限速器相關的另一個用途是幫助限速器判斷資料包是否遵守流量契約。cb限速特性會将資料包中的位元組數與令牌桶中的令牌數進行對比,cb限速特性的決策邏輯跟簡單,如下所示。

若資料包中的位元組數小于等于(<=)令牌桶中的令牌數,資料包就遵守契約。cb限速特性會将與資料包位元組數等量的令牌移出令牌桶,并根據遵守政策對資料包實施操作。

若資料包中的位元組數大于(>)令牌桶中的令牌數,資料包就超出契約。cb限速特性不會将令牌移出令牌桶,并根據超出政策對資料包實施操作。

進而,單速率雙色限速器所使用的邏輯很簡單。令牌桶中會根據資料包的到達時間填入一定比例的令牌。若資料包遵守契約,cb限速特性會轉發、丢棄或重新标記這個資料包,并從令牌桶中移除一定量令牌。若資料包超出契約,cb限速特性會轉發、丢棄或重新标記這個資料包,但并不會從令牌桶中移除令牌(注意,丢棄遵守契約的資料包是可用的配置選項,但通常沒什麼用處)。

2.cb限速:雙令牌桶(單速率)

當你希望限速器同時支援bc(承諾突發)和be(超額突發)時,限速器就使用兩個令牌桶。通過使用兩個令牌桶,cb限速特性可以将資料包分為以下3類:

conform(遵守);

exceed(超出);

violate(違反)。

這3個分類的目的是為了讓限速器判斷資料包是否完全遵守契約、是否使用了超額突發(超出)、是否超出了超額突發量(違反)。

注釋:這兩個令牌桶沒有官方名稱,是以在本節中稱它們為bc桶和be桶。

與單一令牌桶相同,為了了解cb限速特性如何使用兩個令牌桶,就要了解令牌桶的填充和消耗。cb限速特性會在資料包到達時填充bc桶。但在填充bc桶時溢出的令牌不會被白白浪費。當bc桶被填滿時,多餘或溢出的令牌會填入be桶中。若be桶也填滿了,溢出的令牌将無法使用。圖6-15描繪了這一基本邏輯。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

在工程師配置了bc和be後,cb限速特性使用雙令牌桶,算法如下。

1.若資料包中的位元組數小于等于(<=)bc令牌桶中的令牌數,資料包就遵守契約。cb限速特性會将與資料包位元組數等量的令牌移出bc令牌桶,并根據遵守政策對資料包實施操作。

2.若資料包未遵守契約,且資料包中的位元組數小于等于(<=)be令牌桶中的令牌數,資料包就超出契約。cb限速特性會将與資料包位元組數等量的令牌移出令牌桶,并根據遵守政策對資料包實施操作。

3.若資料包為遵守契約并也不是超出契約,資料包就違反契約。cb限速特性不會将令牌移出任何一個令牌桶,并根據違反政策對資料包實施操作。

本質上來講,資料包分為3類:在bc限制之内為遵守;需要更多的位元組數,且這些位元組數在be突發範圍之内為超出;需要的位元組數超出be範圍為違反。

3.cb限速:雙令牌桶(雙速率)

使用單速率的雙令牌桶cb限速特性提供了一個非常有用的功能。在一段低活躍期後,大量的資料突發會被看作遵守或超出流量契約,但并不會違反流量契約。因為資料流往往是突發的,是以限速器使用突發容量很有道理。

使用雙速率的雙令牌桶限速特性也提供了突發特性,同時通過使用雙速率,cb限速器還允許你設定兩個不同的速率門限值。資料包在低速率(cir)限制的範圍之内為遵守流量契約。第二個速率門限值——pir——定義的是高于cir的流量速率。超出cir但仍在pir範圍之内的資料包為超出契約,但未違反契約。超出pir限制範圍的資料包為違反流量契約。

這樣一來,該特性的運作機制包含以下内容:限速器如何向令牌桶中填入令牌;在判斷資料包是否遵守、超出或違反流量契約的過程中,限速器如何從令牌桶中移除令牌。首先以圖6-16為例,它描繪了雙令牌桶的填充過程。在本例中,令牌桶分别稱為cir桶和pir桶。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

它的令牌填充過程與前文介紹的單速率三色限速特性有兩點不同。首先,在需要被限速的資料包到達時,填充兩個令牌桶。差別在于pir桶是直接填充的,而無需等待cir桶填滿後,再由溢出令牌進行填充。這意味着pir桶無需依賴一段非活躍期,來獲得更多令牌。還要注意在填充時,溢出的令牌将不再使用。

根據兩個不同的速率來填充兩個令牌桶非常重要。舉例來說,假設你将cir設定為128 kbit/s(16千位元組每秒),将pir設定為256 kbit/s(32千位元組每秒)。若在下一個資料包到達之前經過了0.1秒,cir桶中會填入1.6千位元組個令牌(1/10秒價值的令牌,以位元組為機關),pir桶中會填入3.2千位元組個令牌。是以相比cir桶,pir桶中有更多的令牌可用。

流程中的第二個不同是限速器如何看待令牌桶中的令牌,并以此判斷資料包是否遵守、超出或違反流量契約。這裡的邏輯與前文介紹的單速率雙令牌桶相同,隻是在處理遵守契約的資料包時有些不同。

1.若資料包中的位元組數小于等于(<=)cir令牌桶中的令牌數,資料包就遵守契約。cb限速特性會将與資料包位元組數等量的令牌移出bc令牌桶,并根據遵守政策對資料包實施操作。cb 限速特性還會将與資料包位元組數等量的令牌移出pir 桶。

2.若資料包未遵守契約,且資料包中的位元組數小于等于(<=)pir令牌桶中的令牌數,資料包就超出契約。cb限速特性會将與資料包位元組數等量的令牌移出pir令牌桶,并根據超出政策對資料包實施操作。

在學習上述内容前,你可能已經猜到了這個基本邏輯。若cir桶中的令牌數量足夠多,資料包就遵守契約;若cir桶中的令牌數量不足,但pir桶中的數量足夠多,資料包就超出契約;若兩個桶中的令牌數量都不足,資料包就違反契約。不太一樣的部分在于即使資料包遵守契約,限速器也會從pir桶中移除令牌。

通過案例來了解這個邏輯。假設cb限速特性的配置如下:

cir為128 kbit/s(16千位元組每秒);

bc為8000位元組;

pir為256 kbit/s(32千位元組每秒);

be為16 000位元組。

實際上,pir和be的值是cir和bc的兩倍。現在假設兩個桶中都填滿了令牌,這時到達了一系列資料包。由于資料包是同時到達的,填入令牌桶中的令牌數量可能為0,也可能非常少——為了便于讨論,假設這時沒有新的令牌填入到任何桶中。

首先會有8000位元組的資料包通過限速器,這些資料包遵守契約。這時cir桶中的令牌數量減少為0。同時pir桶中的令牌數量也減少了,從16 000變為8000個令牌。

對于接下來的8000位元組資料包,限速器認為它們超出契約,同時從pir桶中移除相應數量的令牌。剩下的資料包違反契約,它們至少要經過一段時間,等待有更多的令牌填入兩個桶中。

cb限速特性包含很多小細節,比如它如何判斷資料包是否遵守、超出或違反流量契約。為了幫助你準備考試,表6-16列出了cb限速特性使用令牌桶的關鍵點。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

限速但不丢棄

整形器會将超出資料包排隊,限速器會将超出資料包丢棄。但限速器提供了一定程度的妥協行為,也就是不丢棄資料包,但會為其打上标記,使之後發生擁塞時,這個資料包更可能被丢棄!考慮圖6-17所示案例,r1上啟用了限速功能。

《Cisco QoS認證考試指南(第2版)》一6.3 流量限速和流量整形概念

如圖所示,以虛線表示兩個資料包穿越路由器的路徑。兩個資料包在進入r1時,都标記為dscp af11。r1的限速器判斷資料包1遵守契約,但資料包2超出了限速速率。r1的限速器将資料包2重新标記為af13。diffserv建議af13應該與af11屬于相同的隊列,但af13比af11具有更高的丢棄優先級。在未發生擁塞時,兩個資料包都可以穿越網絡。若發生了擁塞,資料包2更有可能被丢棄,因為它的dscp值具有更高的丢棄優先級。

限速特性通過重新标記資料包,提供了一個妥協選項。isp為了保護自己的網絡,會在擁塞時,積極丢棄被重新标記的資料包,以免網絡過載。當網絡性能可以負擔時,使客戶發送更多的流量,也提高了客戶滿意度。

相同的概念在一定程度上也可以應用在幀中繼和atm網絡中。幀中繼頭部包含de(丢棄資格)位,atm頭部包含clp(信元丢棄優先級)位。這兩個比特位都标志着這個資料幀或信元,在網絡擁塞時,具有更高的丢棄優先級。

最後,在重新标記資料包時,你可能實際上需要标記多個字段。舉例來說,你可能想要通過ip頭部的dscp字段,将資料包從af11重新标記為af13。你可能還希望标記atm clp或802.1p cos字段。當限速器被配置為标記資料包(屬于同一限速類别)的多個字段,這個限速器就被稱為多行為(multi-action)限速器。

繼續閱讀