qos各種隊列以及qos的詳解(Cisco)

 

在有區別地對待和處理網絡通信流之前,首先需要對通信流和"標記"或"顏色"進行分類,以保證特殊的數據包能夠得到與其它數據包不同(或更好)的對待和處理。今天,Cisco IOS工具可以根據一些不同的標準對數據包進行分類,然後使用IP數據報頭中的3個IP優先級位信息對這些數據包進行標記。

IP數據包頭中的IP優先級字段

圖2 IP數據包頭中的IP優先級字段

網絡操作員最多可以定義6個服務等級(使用IP頭中服務類型(ToS)字段的3個優先級位,其中的2個值保留作它用)。然後,可以使用QoS功能制定適當的通信流處理政策,包括針對每一通信流等級的擁塞管理、帶寬分配以及延遲限制。

邊界處進行的通信流分類

圖3 邊界處進行的通信流分類

以下是分類功能選項的示例:

  • 某一特定T1上接收到的所有數據包都被劃分爲高優先級(基於端口的分類)
  • 所有超文本傳輸協議(HTTP)通信流都被劃分爲中優先級(根據應用進行分類)
  • 來自某一特定IP地址的視頻通信流被劃分爲中優先級
  • 前往某一特定目的地的數據包都被劃分爲高優先級(例如,國際通信流或以外部網中的某一特定客戶爲目的地的通信流)

隊列和時序計劃(擁塞管理)

Cisco 7200和7500路由器所使用的不同隊列功能包括:

  • 優先級隊列
  • 自定義隊列
  • 基於流的加權公平隊列(WFQ)
  • 基於等級的加權公平隊列(CB-WFQ)
  • 分佈式加權公平隊列(DWFQ)

優先級隊列

優先級輸出隊列允許一個網絡管理員爲給定的端口定義4種通信流優先級-高、標準、中和低。當通信流到達路由器時,將安排其進入4個輸出隊列中的一個。最高優先級隊列中的數據包將首先被輸出。當這一隊列變爲空時,下一個最高優先級中的通信流將被輸出,依此類推。

這一機制可以確保在擁塞期間最高優先級數據不會因爲低優先級通信流而被延遲。以下是如何使用優先級隊列的例子:

  • 字節計數值少於200的DECnet將被安排進入中優先級隊列
  • 來自某一特定TCP端口或以某一特定TCP端口(如用於遠程登錄通信流的端口23)爲目的地的IP數據包將被安排進入中優先級隊列
  • 來自用戶數據報協議(UDP)端口53或以其爲目的地的IP數據包將被安排進入中優先級隊列
  • 所有IP數據包都將被安排進入高優先級隊列

優先級隊列和嚴格優先級時序計劃

圖4 優先級隊列和嚴格優先級時序計劃

當使用優先級隊列時有可能出現一種不希望看到的副作用:低優先級隊列可能被鎖死。換句話說,如果在一個沒有盡頭的到達流中出現太多的高優先級通信流,低速鏈路上的低優先級通信流就有可能永遠得不到處理。如果這些低優先級通信流確實不重要,那麼這可能正是所要求的結果。

自定義隊列

如果您的目標是確保所有通信流的服務級別,您可以使用自定義隊列。例如,您可以指定系統網絡體系結構(SNA)通信流應占有25%的可用帶寬,而TCP通信流應占有10%的帶寬,剩餘65%的帶寬留給其它應用程序。

自定義隊列

圖5 自定義隊列

雖然自定義隊列有優勢,但缺點是一個等級內的服務(延遲)仍然是不可預期的。

加權公平隊列

基於流的加權公平隊列(WFQ)的目標是確保擁塞發生時剩餘的流能夠獲得足夠的帶寬,並對延遲作出限制,使其能夠滿足最低要求。在使用標準WFQ時,數據包是按流來排隊的。擁有相同源IP地址、目的地IP地址、源傳輸控制協議(TCP)或UDP端口、或者目的地TCP或UDP端口的數據包將屬於同一個流。

加權公平隊列

圖6 加權公平隊列

基於流的WFQ中"公平"一詞的含義是指公平分享可用帶寬。這種機制可以防止因帶寬不足而引起的資源處理能力得不到使用的問題。

基於流的WFQ

圖7 基於流的WFQ

基於等級的WFQ

圖8 基於等級的WFQ

基於等級的加權公平隊列允許用戶創建通信流等級併爲每一個這樣的等級指定一個權重。例如,一個企業客戶可以創建三個通信流等級,一個用於語音,一個用於關鍵任務ERP通信流,第三個用於Web通信流。基於等級的WFQ允許爲分配給每個通信流等級的帶寬提供確定性的或"硬"的擔保。例如,30%用於語音,30%用於ERP,而餘下的40%用於Web通信流。雖然CB-WFQ對於等級間公平共享的重視不及其它WFQ,但它對於高速鏈路或主幹來說是一種功能強大的QoS工具,在這兩種情況下,重點是帶寬分配的硬性擔保,而並非是象低速鏈路上那樣重點在於稀疏帶寬的公平共享。在低速鏈路上,通常是使用基於流的WFQ。

到達的數據包被安排到一個等級隊列

圖9 到達的數據包被安排到一個等級隊列

VIP分佈式WFQ(DWFQ)

基於VIP的分佈式WFQ通過將WFQ的排隊和時序計劃任務分散到通用接口處理器上,可以增加Cisco 7500的轉發能力。由於從原則上講每個VIP可以爲一個單獨的高速接口提供服務,所以每個數據包有望獲得的轉發性能要高於由多個端口共享的基於路由交換處理器(RSP)的處理性能。

它可以支持以下使用VIP2-40或更高接口處理器的路由器:

  • 使用RSP7000的Cisco 7000系列
  • Cisco 7500系列

當VIP上端口適配器的匯聚線速率高於DS3時,建議使用VIP2-50接口處理器。當速率達到OC-3時,需要使用一個VIP2-50卡。當基於RSP的WFQ的可擴展性(基於CPU利用率)是考慮解決的重點問題時,基於VIP的DWFQ是一個有吸引力的可選解決方案,特別是對於高速接口。

與傳統的自時鐘同步WFQ算法相比,DWFQ在進行WFQ排序時使用的是日曆隊列,這使DWFQ對CPU的壓力較低。

擁塞回避

網絡擁塞會導致性能的降低和LAN/WAN帶寬得不到高效的使用。

因此,我們的目標是通過使用算法(如隨機早期檢測[RED]算法)避免在任何可能的地方出現擁塞,這些算法利用TCP通信流的適應性特性,通過丟棄數據包來降低TCP傳輸速率。不過,如果您擁有多個TCP源,那麼在所有源中統一進行數據包的丟棄將會導致所有這些源的退回,並隨後同時開始重新發送。這種情況將會導致波浪式的擁塞,也被稱爲"全局同步"。如圖表中所示,這種情況將會導致吞吐量的急劇下降。

通過有選擇地從特定的TCP流中丟棄數據包,RED解決了這一問題,只有很少的TCP發送方會出現退回和重發的現象。

全局TCP同步

圖10 全局TCP同步

與等待路由器緩衝區滿以後對後來數據包進行丟棄(到達的數據包因無緩衝區而被丟棄)的情況不同,路由器對緩衝區的長度進行監視並對選定的數據包(以及選定的連接)執行早期丟棄。

使用RED執行丟棄

圖11 使用RED執行丟棄

網絡操作員設置輸出緩衝區的最小和最大隊列長度閾值,路由器隨後在作出數據包轉發決策的同時對這些閾值進行監視。數據包交換決策過程對平均隊列長度進行檢查。如果平均隊列長度小於最小閾值,數據包將進入隊列並與隨後被交換。如果平均隊列長度超過最小閾值而小於最大閾值,數據包將按照一定的概率被丟棄。如果平均隊列長度超過了最大閾值,所有數據包都將被丟棄。

Cisco加權隨機早期檢測(WRED)協議將IP優先級和RED結合起來,爲優先通信流(高優先級)提供與標準通信流(優先級較低)有差別的丟棄閾值。換句話說,WRED根據IP優先級對數據包進行丟棄。這種情況實際上是允許Internet服務供應商(ISP)在丟棄優先客戶的數據包之前首先丟棄標準客戶的數據包。

使用WRED實現的差別丟棄閾值

圖12 使用WRED實現的差別丟棄閾值

因爲WRED監視路由器中隊列的平均長度,所以它可以根據隊列長度決定何時開始丟棄數據包。當平均隊列長度超過用戶規定的"最小閾值"時,WRED開始根據一定的概率丟棄數據包(包括TCP和UDP)。如果平均隊列長度超過用戶規定的"最大閾值",則WRED轉爲"後來(數據包)丟棄",即所有後面到達的數據包都將被丟棄。WRED的意圖就是使將隊列長度維持在最小和最大閾值之間的某個水平。

WRED也可以運行在VIP分佈式模式之下,以增加Cisco 7500的性能。不過,爲實現這一點,所有接口都必須啓用VIP分佈式Cisco快速轉發(DCEF)功能。

政策制訂和通信流整形

政策制訂/速率限制

Cisco承諾接入速率(CAR)工具是一種速率限制或政策制訂工具(分類規則也可以通過Cisco IOS軟件中的CAR工具進行設置)。企業客戶可以使用速率限制工具來限制從Internet進入到企業網絡的通信流(如點播通信流)的速率,服務供應商可以使用速率限制工具來加強服務級別協議(SLA)。速率限制工具對所有超過規定速率的通信流都執行數據包丟棄,其使用目標並非是對通信流進行整形或排隊。

使用CAR實現的速率限制

圖13 使用CAR實現的速率限制

CAR速率限制可以在輸入或輸出接口以及子接口上實現,包括幀中繼和ATM子接口。在這一功能實現並規定了一個或更多的速率以後,可以將政策制訂的原則(或CAR對超過某一規定速率的通信流可以採取的措施)設置爲以下之一:

  • 傳輸(如同一個鬆懈的交通警察)
  • 丟棄(丟棄數據包)
  • 設置優先級並傳輸(將IP數據包頭中ToS字段的優先級位設置爲一個優先級較低的值—或首次對其進行標記/染色並進行傳輸)。這種方式實際上是以較低的優先級傳輸超出規定的數據包,在當時仍有可用帶寬的情況下使這些數據包仍有機會到達自己的目的地。

可以規定多個CAR速率限制。這種層疊式方式可以對數據包實行一系列的速率限制,也可用於規定更加細緻的政策。例如,一個企業客戶可以對TCP通信流進行速率限制,同時進一步爲基於TCP的Web通信流規定第二個速率限制。

  • 繼續(評估其是否符合一系列速率限制中的下一個速率限制)
  • 設置優先級並繼續(將優先級設置爲一個較低的規定的值,然後評估其是否符合一系列速率限制中的下一個速率限制)

以上的兩個選項是CAR中層疊式多速率限制的例子。

整形

整形(即所謂的通信流整形[GTS])的原因有很多,例如,企業客戶爲確保SLA一致性而對輸出通信流進行整形,以防止服務供應商丟棄超過限制的通信流。整形的目的(與速率限制/政策制訂相對比)是永遠不會發生丟棄數據包這樣的事情。在通常意義上講,如果一個上游路由器知道自己的下游路由器採用了政策制訂的方法,那麼該上游路由器就必須對通信流進行整形。

進行通信流整形的必要

圖14 進行通信流整形的必要

Cisco GTS提供了一種在某一特定接口上對通信流進行控制的機制。通過將特定通信流的速率限制爲某一特定位速率,這一功能可以減少輸出通信流以避免擁塞的發生(這也被稱爲令牌存儲桶方法),同時對猝發性的特定通信流進行排隊處理。因此,對符合某一特徵的通信流進行整形以後可以使其能夠滿足下游的要求,消除了因數據傳輸速率不匹配而導致的拓撲結構上的瓶頸。GTS可以每一接口(或每一子接口)爲應用對象,能夠通過訪問列表來選擇將被整形的通信流,並能夠使用多種Layer 2技術。換句話說,GTS可以不依賴於Layer 2接口或封裝而對Layer 3通信流進行整形。

VIP分佈式通信流整形

VIP分佈式通信流整形(DTS)將GTS和幀中繼通信流整形(FRTS)的優點結合在一個工具之中。在將分佈式Cisco快速轉發作爲首選交換模式的網絡之中,在VIP上進行DTS是合乎邏輯的通信流整形方法。

對於ATM/幀中繼固定虛擬線路(PVC),DTS是在接口級、子接口級或邏輯接口級上對通信流整形進行配置。通信流整形可基於以下的標準:

  • 通過該物理接口或邏輯接口的所有通信流
  • 通過簡單或擴展IP訪問控制列表(ACL)(IP地址、TCP/UDP端口、IP優先級)進行分類的通信流
  • 根據QoS羣組(上游路由器通過CAR或QPPB加蓋的內部數據包標籤)進行分類的通信流

DTS在每個VIP上最高可以支持200個整形隊列,當數據包平均大小爲250個字節或更高以及使用一個擁有8M SRAM的VIP2-50(或更高)時,支持的速率最高可以達到OC-3。與常規的通信流整形(GTS)不同,DTS不要求啓用WFQ功能。相反,DTS在實現整形隊列時使用的是公平隊列或分佈式先入先出(FIFO)機制。

信令

RSVP是實現端對端QoS信令功能的一種選擇

圖15 RSVP是實現端對端QoS信令功能的一種選擇

資源保留協議(RSVP)爲應用程序(或一個代表應用程序的路由器)提供了一種向網絡發出信令以要求所需QoS級別的方法。RSVP是一種Layer 3信令協議,允許一個應用程序以每個流爲單位請求QoS服務。

RSVP依賴於在兩個端點之間週期性地交換PATH/REVP消息;它被認爲是一種"接收方發起"性質的協議,因爲作爲數據流的接收方,它爲該特定流發起並維護資源保留處理過程。由於RSVP要求每個中間路由器維護每個RSVP流的狀態信息,所以當被用於消息需要通過大量路由器的基礎設施(如Internet)中時,可能會產生可擴展性和成本方面的問題。當必須實現清晰的QoS功能和粒度化時,RSVP是可以派上用場的,如一個低速WAN鏈路。

RSVP使用示例(視頻會議)

圖16 RSVP使用示例(視頻會議)

Cisco路由器支持RSVP,當終端用戶應用本身沒有發出RSVP信令的能力時,Cisco路由器經常被用於爲這些終端用戶應用代理髮送RSVP信令。

除了路由器/應用程序以外,H.323語音網關也可以代表自己的客戶機發出RSVP信令。這些客戶機可以是Cisco(Selsius)電話,這些電話能夠爲語音通信流加上Layer 3信息標記(如IP優先級),從而使其能夠被區分開來。

Cisco電話(對通信流)加上IP優先級標記

圖17 Cisco電話(對通信流)加上IP優先級標記

Cisco IOS軟件還包括了能夠將RSVP映射到非RSVP子網(如僅使用IP優先級或DiffServ的網絡、IEEE 802.1q/p網絡或ATM交換主幹)的工具。Cisco使用戶能夠部署多種不同的設備,而不必過分擔心可以在這些設備上實現的QoS的粒度化。

鏈路效率機制

H.323建議使用實時傳輸協議(RTP)來傳輸IP語音通信流。不過,當您在封裝一個語音數據包時在IP頭內部使用了RTP和UDP時,將會產生一個40字節的數據包頭(12個字節的RTP頭加上8字節的UDP以及20個字節的IP頭)。考慮到一個音頻應用可以將一個RTP數據包的的有效載荷部分壓縮到20到160個字節,這麼大的一個數據包頭確實是太大。一個40個字節的數據包頭配上20字節的有效載荷,這樣的效率太低了。

象壓縮RTP(CRTP)這樣的頭壓縮技術可以將40個字節的RTP頭壓縮到2到5個字節。對於低速鏈路(如64kb的幀中繼鏈路)來說這是非常有用的,在這種情況下,語音通信流會與數據通信流爭奪稀缺的帶寬。

壓縮RTP(CRTP)頭壓縮功能

圖18 壓縮RTP(CRTP)頭壓縮功能

另一種鏈路效率工具是鏈路分段和交叉(LFI),它的實質是對較大的數據包進行分解,而較小的數據包被插入到這些較大的數據包之間,以減少語音通信流的延遲。

速度較慢的鏈路上的LFI

圖19 速度較慢的鏈路上的LFI

通過Layer 2 WAN主幹(幀中繼和ATM)實現Cisco 7200和7500的互聯

當IP網絡的邊界與由ATM或幀中繼交換機組成的Layer 2互聯主幹相連時,必須確保邊界QoS的定義不會被該主幹忽略。考慮到這一事實,Layer 2中包括了以下不同的IP QoS工具:

幀中繼內核和通信流整形(FRTS)

在一個幀中繼子接口上,通過集成後向顯式擁塞通告(BECN)信號,可以安裝能夠動態適應可用帶寬的GTS,或安裝能夠根據預設速率進行整形的GTS。FRTS可被應用於每一數據鏈路連接識別器(DLCI),但不是被應用於整個物理接口。

幀中繼通信流整形

圖20 幀中繼通信流整形

IP QoS到ATM CoS的映射

雖然在IP網絡中可以使用IP QoS來表示數據包的優先級並基於這一優先級來表示通信流的等級(如使用IP優先級),但爲確保端對端的服務,能夠將這種優先級映射爲ATM內核中QoS功能的工具是非常重要的。

使用ATM端口適配器(PA)-A3的Cisco 7200和7500能夠將IP等級(每種等級擁有自己的WRED丟棄閾值)集體映射到前往不同地點的ATM虛擬線路(VC),或以個別方式映射到前往同一目的地的不同ATM VC。

在第一種情況下,將只對前往已經擁塞的VC/目的地對的流執行WRED丟棄,而不是對所有的流執行WRED丟棄。如果沒有這一功能,WRED算法將會不必要地對流經一個VC前往未擁塞目的地的通信流執行丟棄操作,WRED以前只有在整個ATM接口出現擁塞時纔對此進行檢測,而不是在VC級出現擁塞時進行檢測。

智能數據包丟棄

圖21 智能數據包丟棄

在後一種情況下,個體WRED閾值被映射到相同地點之間的多個ATM VC,使管理員能夠爲運載IP優先級各個等級通信流的VC定義ATM服務(如可變位速率[VBR]和未定位速率[UBR]或在多協議標籤交換中定義的等級)。

在Cisco QoS映射到ATM解決方案的下一個階段,將爲每VC提供WFQ,這將使WFQ算法能夠對每VC進行帶寬管理。新興起的ATM通信流等級,如幀速率擔保(GFR)以及加權UBR(UBRw),將作爲管理選項被加入。此外,通過使用ATM的可用位速率(ABR)機制,可以將一組完整的WRED閾值映射到一個VC,以提供擁塞反饋功能,最終將可以提供一個近於無損的內核和VC數減少的選項。

今天,您還可以使用ATM PA-A3將Cisco 7200和7500中的特殊RSVP通信流指定給ATM SVC。特別地,對於跨ATM網絡的通信流,RSVP保留可以被映射到動態創建的VBR ATM交換虛擬線路(SVC)。

IP優先級到ATM PVC的一對一映射

圖22 IP優先級到ATM PVC的一對一映射

使用以上的映射功能, 可以確保IP路由器上定義和實現的QoS政策不會被忽略。

總而言之,Cisco Systems提供了一個全面的QoS工具箱。通過這些工具可以對通信流進行分類/標記/染色或排隊/時序計劃,從而提供了對擁塞進行管理的能力。如果以擁塞先佔爲目標,則可以通過一些工具來避免適應流/非適應流的擁塞。如果要解決的問題是SLA一致性,則企業客戶/ISP客戶可以通過一些工具對通信流進行政策制訂/整形,以使其符合已達成協議的SLA。如果要解決的問題是信令/進入控制,Cisco IOS軟件提供的工具能夠將QoS以信號的方式通知網絡。最終,可以通過一些工具管理實時通信流(如語音)的鏈路效率。

無論是需要在園區網中實現QoS還是需要在WAN中實現QoS,無論Layer 2介質是ATM還是幀中繼-用戶都無須擔心,Cisco IOS軟件可以使所有這些內容透明化,而且用戶能夠將自己的計劃限制到Layer 3 QoS爲止,無論下面的Layer 2機制如何,都可以實現端對端的透明運行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章