定義,功能簡介,服務模型,相關介紹,產生背景,釋義,處理流程,分類,策略,標識,佇列,調度,相關技術,鏈路效率機制,ATM QoS,FR QoS,MPLS QoS,IP QoS,QoS的關鍵指標,可用性,吞吐量,時延,時延變化,丟包,QoS套用,分類標準,RFC 791,RFC 1349,RFC 1490,RFC 1483,RFC 2474,IEEE 802.5,QoS配置,預設QOS設定,信任模式,預設CoS值,連線埠組,調度算法,輸出輪轉權重,Cos-Map,QoS顯示命令,
定義 功能簡介 而當網路發生擁塞的時候,所有的
數據流 都有可能被丟棄;為滿足用戶對不同套用不同服務質量的要求,就需要網路能根據用戶的要求分配和調度資源,對不同的數據流提供不同的服務質量:對實時性強且重要的數據報文優先處理;對於實時性不強的普通數據報文,提供較低的處理優先權,網路擁塞時甚至丟棄。QoS應運而生。支持QoS功能的設備,能夠提供傳輸品質服務;針對某種類別的數據流,可以為它賦予某個級別的傳輸優先權,來標識它的相對重要性,並使用設備所提供的各種優先權轉發策略、擁塞避免等機制為這些數據流提供特殊的傳輸服務。配置了QoS的
網路環境 ,增加了網路性能的可預知性,並能夠有效地分配網路
頻寬 ,更加合理地利用網路資源。
QoS功能示意圖 下面從QoS服務模型出發,對目前使用最多、最成熟的一些QoS技術逐一進行描述。在特定的環境下合理地使用這些技術,可以有效地提高服務質量。
服務模型 通常QoS提供以下三種服務模型:
l Best-Effort service(盡力而為服務模型)
l Integrated service(綜合服務模型,簡稱Int-Serv)
l Differentiated service(區分服務模型,簡稱Diff-Serv)
1. Best-Effort服務模型是一個單一的服務模型,也是最簡單的服務模型。對Best-Effort服務模型,網路盡最大的可能性來傳送報文。但對延時、可靠性等性能不提供任何保證。
Best-Effort服務模型是網路的預設服務模型,通過
FIFO (first in first out 先入先出)
佇列 來實現。它適用於絕大多數網路套用,如FTP、
E-Mail 等。
2. Int-Serv服務模型Int-Serv是一個綜合服務模型,它可以滿足多種QoS需求。該模型使用
資源預留協定 (RSVP),RSVP運行在從源端到目的端的每個
設備 上,可以監視每個流,以防止其消耗資源過多。這種體系能夠明確區分並保證每一個
業務流 的服務質量,為網路提供最細粒度化的服務質量區分。
但是,Inter-Serv模型對設備的要求很高,當網路中的數據流數量很大時,設備的存儲和處理能力會遇到很大的壓力。Inter-Serv模型可擴展性很差,難以在Internet核心網路實施。
3. Diff-Serv服務模型Diff-Serv是一個多服務模型,它可以滿足不同的QoS需求。與Int-Serv不同,它不需要通知網路為每個業務預留資源。區分服務實現簡單,擴展性較好。
相關介紹 產生背景 在
網際網路 創建初期,沒有意識到QoS套用的需要。因此,整個
網際網路 運作如一個“竭盡全力”的系統。每段信息都有4個“服務類別”位和3個“
優先權 ”位,但是他們完全沒有派上用場。依傳送和接收者看來,
數據包 從起點到終點的傳輸過程中會發生許多事情,並產生如下有問題的結果:
·
丟失 數據包 - 當數據包到達一個
緩衝器 (
buffer )已滿的
路由器 時,則代表此次的傳送失敗,路由器會依網路的狀況決定要丟棄、不丟棄一部份或者是所有的數據包,而且這不可能在預先就知道,接收端的
應用程式 在這時必須請求重新傳送,而這同時可能造成總體傳輸嚴重的延遲。
·
延遲 - 或許需要很長時間才能將
數據包 傳送到終點,因為它會被漫長的
佇列 遲滯,或需要運用間接路由以避免阻塞;也許能找到快速、直接的路由。總之,延遲非常難以預料。
·
傳輸順序出錯 - 當一群相關的數據包被
路由 經過
網際網路 時,不同的數據包可能選擇不同的
路由器 ,這會導致每個數據包有不同的延遲時間。最後數據包到達目的地的順序會和數據包從傳送端傳送出去的順序不一致,這個問題必須要有特殊額外的協定負責刷新失序的數據包。
·
出錯 - 有些時候,
數據包 在被運送的途中會發生跑錯路徑、被合併甚至是毀壞的情況,這時接收端必須要能偵測出這些情況,並將它們統統判別為已遺失的數據包,再請求傳送端再送一份同樣的數據包。
釋義 1.
國際電信聯盟 (ITU)在x.902標準即“信息技術開放式處理參考模型”中定義服務質量(QoS)為:定義在一個或多個對象的集體行為上的一套質量需求的集合。
吞吐量 、
傳輸延遲 和錯誤率等一些服務質量參數描述了數據傳輸的速度和可靠性等。
2.在
ATM 中定義服務質量(QoS)為“關於ATM性能參數集合的術語,這些參數描述了在一個給定虛擬連線上數據流量的特徵”。服務質量參數大多套用在較低層次的協定層上,這些參數並不直接被應用程式所觀察和感覺到。這些參數包括
信元 丟失率、信元錯誤率、信元錯誤插入率、信元延遲變化、信元傳輸延遲和平均信元傳輸延遲。根據服務質量參數定義了五種服務級別,級別0指的是“盡最大努力”服務方式,在這種服務級別中沒有特定的流量參數和絕對的服務質量保證。
3.
IETF 在研究
ATM 時就已經開始考慮服務質量的問題。即有陳述:“隨著在網路上實時服務的逐步增加,在共享網路上要求提供確定的傳輸服務。這些確定的傳輸服務要求應用程式和網路基礎設施有能力請求、設定和強化數據的傳輸。總的來說,這些服務指的是頻寬預留和服務質量”。在“基於
ATM 的IP”中這樣描述: “實時應用程式所使用的服務質量參數被假設在數據傳輸之前的
資源預留協定 中設定,或者以某種形式攜帶在數據之中”。“目前的工作正在重點研究服務質量參數怎樣被表達出來和怎樣做出本地的決定”。
處理流程 分類 Classifying即分類,其過程是根據信任策略或者根據分析每個報文的內容來確定將這些報文歸類到以CoS值來表示的各個數據流中,因此分類動作的核心任務是確定輸入報文的CoS值。分類發生在連線埠接收輸入報文階段,當某個連線埠關聯了一個表示QoS策略的Policy-map後,分類就在該連線埠上生效,它對所有從該連線埠輸入的報文起作用。
協定
有些協定非常“健談”,只要它們存在就會導致業務延遲,因此根據協定對
數據包 進行識別和優先權處理可以降低延遲。套用可以通過它們的EtherType進行識別。譬如,AppleTalk協定採用0x809B,IPX使用0x8137。根據協定進行優先權處理是控制或阻止少數較老設備所使用的“健談”協定的一種強有力方法。
QoS 許多套用都採用一些TCP或UDP連線埠進行通信,如
HTTP 採用TCP連線埠80。通過檢查IP
數據包 的連線埠號碼,
智慧型網路 可以確定數據包是由哪類套用產生的,這種方法也稱為
第四層交換 ,因為TCP和UDP都位於OSI模型的第四層。
(3) 源IP位址
許多套用都是通過其源IP位址進行識別的。由於伺服器有時是專門針對單一套用而配置的,如
電子郵件伺服器 ,所以分析
數據包 的源IP位址可以識別該數據包是由什麼套用產生的。當識別
交換機 與套用伺服器不直接相連,而且許多不同伺服器的數據流都到達該交換機時,這種方法就非常有用。
(4) 物理連線埠號碼
與源IP位址類似,物理連線埠號碼可以指示哪個伺服器正在傳送數據。這種方法取決於
交換機 物理連線埠和套用伺服器的映射關係。雖然這是最簡單的分類形式,但是它依賴於直接與該
交換機 連線的伺服器。
策略 Policing 即策略,發生在數據流分類完成後,用於約束被分類的數據流所占用的傳輸頻寬。Policing動作檢查被歸類的數據流中的每一個報文,如果該報文超出了作用於該數據流的Police所允許的限制頻寬,那么該報文將會被做特殊處理,它或者要被丟棄,或者要被賦予另外的DSCP 值。
在QoS 處理流程中,Policing 動作是可選的。如果沒有Policing 動作,那么被分類的數據流中的報文的DSCP 值將不會作任何修改,報文也不會在送往Marking 動作之前被丟棄。
標識 Marking即標識,經過Classifying 和Policing 動作處理之後,為了確保被分類報文對應DSCP的值能夠傳遞給網路上的下一跳設備,需要通過Marking 動作將為報文寫入QoS 信息,可以使用QoS ACLs 改變報文的QoS信息,也可以使用Trust 方式直接保留報文中QoS 信息,例如,選擇Trust DSCP 從而保留IP 報文頭的DSCP 信息。
佇列 Queueing即
佇列 ,負責將數據流中報文送往連線埠的某個輸出佇列中,送往連線埠的不同輸出佇列的報文將獲得不同等級和性質的傳輸服務策略。
每一個連線埠上都擁有8 個輸出佇列,通過設備上配置的DSCP-to-CoS Map 和Cos-to-Queue Map 兩張映射表來將報文的DSCP 值轉化成輸出佇列號,以便確定報文應該被送往的輸出佇列。
調度 Scheduling即調度,為QoS 流程的最後一個環節。當報文被送到連線埠的不同輸出佇列上之後,設備將採用WRR 或者其它算法傳送8 個佇列中的報文。
可以通過設定WRR算法的權重值來配置各個輸出佇列在輸出報文的時候所占用的每循環傳送報文個數,從而影響傳輸頻寬
。 或通過設定DRR算法的權重值來配置各個輸出佇列在輸出報文的時候所占用的每循環傳送報文位元組數,從而影響傳輸頻寬。
相關技術 鏈路層 QoS技術主要針對
ATM (Asynchronous Transfer Mode,異步傳輸模式)、幀中繼、令牌環等鏈路層協定支持QoS。作為一種面向連線的技術,ATM提供對QoS最強有力的支持,而且可以基於每個連線提供特定的QoS保證。幀中繼網路確保連線的CIR(Committed Information Rate,承諾信息速率)最小,即在網路擁塞時,傳輸速度不能小於這個值。令牌環和更新的IEEE802.1p標準具有區分服務的機制。
鏈路效率機制 鏈路效率機制,用於改善鏈路的性能,間接提高網路的QoS,如降低鏈路發包的時延(針對特定業務)、調整有效頻寬。鏈路效率機制有很多種,下面介紹兩種比較典型的鏈路效率機制及其基本原理。
1. 鏈路分片與交叉(Link Fragment & Interleave,LFI)
對於低速鏈路,即使為語音等實時業務報文配置了高優先權佇列(如
RTP 優先佇列或LLQ),也不能夠保證其時延與抖動,原因在於接口在傳送其他數據報文的瞬間,語音業務報文只能等待,而對於低速接口傳送較大的數據報文要花費相當的時間。採用LFI以後,數據報文(非RTP實時佇列和LLQ中的報文)在傳送前被分片、逐一傳送,而此時如果有語音報文到達則被優先傳送,從而保證了語音等實時業務的時延與抖動。LFI主要用於低速鏈路。
鏈路效率機制的工作原理圖如圖11 所示:
鏈路效率 如上圖所示,套用LFI技術,在大報文出隊的時候,可以將其分為定製長度的小片報文,這就使RTP優先佇列或LLQ中的報文不必等到大片報文發完後再得到調度,它等候的時間只是其中小片報文的傳送時間,這樣就很大程度的降低了低速鏈路因為傳送大片報文造成的時延。
2. RTP報文頭壓縮(RTP Header Compression,cRTP)
cRTP主要在低速鏈路上使用,可將40位元組的IP/UDP/RTP頭壓縮到2~4個位元組(不使用校驗和可到2位元組),提高鏈路的利用率。cRTP主要得益於同一會話的語音分組頭和語音分組頭之間的差別往往是不變的,因此只需傳遞增量。
RTP協定用於在IP網路上承載語音、視頻等實時多媒體業務。RTP報文包括數據部分和頭部分,RTP的數據部分相對小,而RTP的報頭部分較大。12位元組的RTP頭,加上20位元組的IP頭和8位元組的UDP頭,就是40位元組的IP/UDP/RTP頭。而RTP典型的負載是20位元組到160位元組。為了避免不必要的頻寬消耗,可以使用cRTP特性對報文頭進行壓縮。cRTP可以將IP/UDP/RTP頭從40位元組壓縮到2~5位元組,對於40位元組的負載,頭壓縮到5位元組,壓縮比為(40+40)/(40+5),約為1.78,可見效果是相當可觀的,可以有效的減少鏈路,尤其是低速鏈路頻寬的消耗。
rtp ATM QoS ATM是一種大小固定的信元交換和多路復用技術,它是面向連線的,任何用戶數據在兩個或更多ATM連線設備之間傳輸之前,都必須建立虛電路(VC,Virtual Circuit)。ATM有兩種主要的連線方式(或VC):永久虛電路(PVC,Permanent Virtual Circuit)和交換虛電路(SVC,Switched Virtual Circuit)。PVC通常是靜態的,需要手工或外部配置來建立;而SVC是動態,根據需要創建。它們的創建需要在ATM端點和ATM交換機之間運行信令協定。
ATM通過使ATM端系統顯示流量契約來提供QoS保證,流量契約描述了希望的通信流指標。流描述符包括QoS參數,例如峰值信元速率(PCR,Peak Cell Rate)、持續信元速率(SCR,Sustained Cell Rate)以及突發量。
ATM端系統負責確保傳輸的流量符合QoS契約。ATM端系統通過緩衝數據來對流量進行整形,並按約定的QoS參數傳輸通信。ATM交換機控制每個用戶的通信指標,並將其與QoS契約進行比較。對於超過了QoS契約的通信,交換機可以設定不順從通信的CLP位。在網路擁塞時,CLP位被設定的信元被丟棄的可能性更大。
FR QoS FR(Frame Relay,幀中繼)是一種流行的適用於數據通信的廣域網(WAN)分組技術。它是一種較簡單的協定,消除了X.25網路中鏈路層流控和糾錯功能,這些功能被留給端點站的應用程式處理。這種協定最適合於數據通信,因為它可以傳送偶然的突發。
幀中繼使用VC(Virtual Circuit)運行,
VC 提供了幀中繼網路上兩個端點之間的邏輯連線,網路可以使用幀中繼VC代替私有的租用線。PVC是網路操作員在網路管理站創建的,而SVC是基於呼叫動態建立的。
幀中繼報頭中的3個位提供了幀中繼網路中的擁塞控制機制,這3個位分別叫做向前顯式擁塞通知(FECN,Forward Explicit Congestion Notification)位、向後顯式擁塞通知(BECN,Backward Explicit Congestion Notification)位和丟棄合格(DE,Discard Eligible)位。可以通過交換機將FECN位置1來告知諸如路由器等目標數據終端設備(DTE,Data Terminal Equipment),在幀從源傳送到目的地的方向發生了擁塞。交換機將BECN位置1則告知目標路由器,在幀從源傳送到目的地的反方向上發生了擁塞。DE位由路由器或其他DTE設備設定,指出被標記的幀沒有傳輸的其他幀那么重要,它在幀中繼網路中提供了一種基本的優先權機制,如果發生擁塞時,DE位被設定的幀將在DE位沒有被設定的幀之前被丟棄。
幀中繼流量整形(FRTS,Frame Relay Traffic Shaping)對從幀中繼VC輸出的通信進行整形,使之與配置速率一致,它將超出平均速率的分組放到緩衝區來使突發通信變得平滑。根據配置的排隊機制,當有足夠的可用資源時,這些緩衝的分組出隊並等候被傳輸。排隊算法是基於單個VC配置的,它只能針對接口的出站通信進行設定。FRTS可對每個VC的流量進行整形,將其峰值速率整形為承諾信息速率(CIR,Committed Information Rate)或其他定義的值,如超額信息速率(EIR,Excess Information Rate)。自適應模式的FRTS還能夠根據收到的網路BECN擁塞指示符降低幀中繼VC的輸出量,將PVC的輸出流量整形為與網路的可用頻寬一致
MPLS QoS 於
MPLS 標籤交換路由器(LSR)在標籤交換的轉發過程中並不檢查IP頭,所以MPLS標籤交換路由器利用MPLS標籤中的EXP比特來配置QoS策略。因此,在MPLS網路中可以利用MPLS標籤中的EXP比特來設定MPLS報文的優先權別,從而實現區分服務。類似對IP報文實施的區分服務一樣,我們可以利用class-map命令將MPLS報文分成一個類或者多個類別,可以利用policy-map命令對已經分好的類進行QoS策略設定。最後利用service-policy命令將已經配置好的QoS策略套用於接口上。
MPLS QoS即在MPLS網路上套用QoS。MPLS QoS並沒有定義專門的QoS結構。在實際的MPLS網路中,MPLS QoS通常使用區分服務(Differentiated Services)結構(又稱分類服務),區分服務結構是為IP QoS而專門定義的。
MPLS QoS結構就是在區分服務結構基礎上增加了MPLS對區分服務的支持。
區分服務的基本原理是:在網路邊緣,根據業務的QoS要求將該業務映射到一定的業務類別中,如果是IP報文,可以通過6比特的區分服務代碼點欄位(DSCP)來設定報文的優先權別,從而唯一的標記該類業務,然後,骨幹網路中的各節點根據該欄位對各種業務採取預先設定的服務策略,保證相應的服務質量。與傳統的IP QoS的不同在於,
MPLS QoS是以MPLS標籤中的EXP比特來設定MPLS報文的優先權別從而實現區分服務。
下面對MPLS QoS的部分專業術語進行介紹:
n <EXP>
EXP比特指的是MPLS標籤中第20到第22
比特 ,這3位比特稱為實驗(EXP)比特,目前專用於服務質量(QoS)。EXP欄位在MPLS標籤中的位置,請參見圖-2。與IP傳輸中可以按照IP報文中的IP優先權或者DSCP比特來分類並標記類似,在MPLS網路中,可以按照MPLS報文的EXP比特來分類並標記。
MPLS標籤結構 MPLS 標籤結構
每跳行為PHB(Per-hop Behavior)指在轉發報文時,路由器對報文是如何處理的。"每跳"是強調這裡所說的行為只涉及到本路由器轉發的這一跳的行為,而下一個路由器再怎樣處理則與本路由器的處理無關。 通常我們把基於IP報文中的IP Precedence/DSCP的轉發行為稱為IP PHB,基於MPLS報文中的EXP的轉發行為稱為MPLS PHB。
由EXP 比特決定PHB 的LSP。在轉發過程中,LSP 決定轉發路徑,但是EXP比特決定在每一跳LSR 上的調度和丟棄優先權,因此同一條LSP 可以承載8 類不同PHB 的流(3比特的EXP欄位的取值範圍為0-7),通過MPLS頭部的EXP 比特來進行區分。
LER(Label Switching Edge Router)位於MPLS的網路邊緣,負責將進入到MPLS網路的流量壓入對應的MPLS標籤。負責將離開MPLS網路的流量彈出標籤還原為原始的報文。LER通常又稱作Provider Edge(PE)Router。
LSR(Label Switching Router)是MPLS網路的核心設備,它提供標籤交換和標籤分發功能。LSR通常又稱作Provider(P)Router。
IP QoS 對於Ip QoS,QoS是由流量標記、擁塞管理、擁塞避免和流量整形構成,可以對IP報文實施WRR(帶權重的佇列輪轉),DRR,SP等調度方式,實施加權隨機早期檢測(WRED),流量監管,以及流量整形。在為MPLS報文實施QoS的時候可以根據EXP比特來使用相同的特性。
QoS的關鍵指標 QoS的關鍵指標主要包括:可用性、
吞吐量 、時延、時延變化(包括抖動和漂移)和丟失。下面詳細敘述。
QoS in Internet 可用性 可用性是當用戶需要時網路即能工作的時間百分比。可用性主要是設備可靠性和網路存活性相結合的結果。對它起作用的還有一些其他因素,包括
軟體 穩定性以及網路演進或升級時不中斷服務的能力。
吞吐量 吞吐量是在一定時間段內對網上流量(或
頻寬 )的度量。對IP網而言可以從
幀中繼網 借用一些概念。根據套用和服務類型,
服務水平協定 (SLA)可以規定
承諾信息速率 (CIR)、突發信息速率(BIR)和最大突發信號長度。承諾信息速率是應該予以嚴格保證的,對突發信息速率可以有所限定,以在容納預定長度突發信號的同時容納從話音到視像以及一般數據的各種服務。一般講,
吞吐量 越大越好。
時延 時延指一項服務從網路入口到出口的平均經過時間。許多服務,特別是話音和視像等實時服務都是高度不能容忍時延的。當時延超過200-250毫秒時,互動式會話是非常麻煩的。為了提供高質量話音和會議電視,網路設備必須能保證低的時延。
產生時延的因素很多,包括分組時延、
排隊時延 、交換時延和傳播時延。傳播時延是信息通過銅線、光纖或無線鏈路所需的時間,它是光速的函式。在任何系統中,包括
同步數字系列 (SDH)、
異步傳輸模式 (ATM)和彈性分組環路(
RPR ),傳播時延總是存在的。
時延變化 時延變化是指同一
業務流 中不同分組所呈現的時延不同。高頻率的時延變化稱作抖動,而低頻率的時延變化稱作漂移。抖動主要是由於
業務流 中相繼分組的排隊等候時間不同引起的,是對服務質量影響最大的一個問題。某些業務類型,特別是話音和視像等實時業務是極不容忍抖動的。分組到達時間的差異將在話音或視像中造成斷續。所有傳送系統都有抖動,只要抖動落在規定容差之內就不會影響服務質量。利用
快取 可以克服過量的抖動,但這將增加時延,造成其他問題。
QoS流程 漂移是任何同步傳輸系統都有的一個問題。在SDH系統中是通過嚴格的全網分級定時來克服漂移的。在異步系統中,漂移一般不是問題。漂移會造成基群失幀,使服務質量的要求不能滿足。
丟包 不管是比特丟失還是分組丟失,對分組
數據業務 的影響比對實時業務的影響都大。在通話期間,丟失一個比特或一個分組的信息往往用戶注意不到。在視像廣播期間,這在
螢幕 上可能造成瞬間的波形干擾,然後視像很快恢復如初。即便是用
傳輸控制協定 (TCP)傳送數據也能處理丟失,因為傳輸控制協定允許丟失的信息重發。事實上,一種叫做隨機早丟(
RED )的
擁塞控制 機制在故意丟失分組,其目的是在流量達到設定門限時抑制TCP傳輸速率,減少擁塞,同時還使TCP流失去同步,以防止因速率視窗的閉合引起
吞吐量 擺動。但分組丟失多了,會影響傳輸質量。所以,要保持統計數字,當超過預定門限時就向網路管理人員告警。
QoS套用 QoS是網路與用戶之間以及網路上互相通信的用戶之間關於
信息傳輸 與共享的質的約定,例如,
傳輸延遲 允許時間、最小傳輸畫面失真度以及聲像同步等,是用來解決網路延遲和阻塞等問題的一種技術。現在的路由器一般均支持QoS。QoS 是網路的一種安全機制,是用來解決網路延遲和阻塞等問題的一種技術。在正常情況下,如果網路只用於特定的無時間限制的套用系統,並不需要QoS,比如 Web套用,或
E-mail 設定等。但是對關鍵套用和多媒體套用就十分必要。當網路過載或擁塞時,QoS 能確保重要業務量不受延遲或丟棄,同時保證網路的高效運行。
QoS套用示意圖
在Internet等計算機網路上為用戶提供高質量的QoS必須解決以下問題:
1. QoS的分類與定義。對QoS進行分類和定義的目的是使網路可以根據不同類型的QoS進行管理和分配資源。例如 ,給實時服務分配較大的頻寬和較多的CPU處理時間等,另一方面,對QoS進行分類定義也方便用戶根據不同的套用提出QoS需求。
2.
準入控制 和協商。即根據網路中資源的使用情況,允許用戶進入網路進行多媒體信息傳輸並協商其QoS。
3. 資源預約。為了給用戶提供滿意的QoS,必須對
端系統 、
路由器 以及傳輸
頻寬 等相應的資源進行預約,以確保這些資源不被其他套用所強用。
4. 資源調度與管理。對資源進行預約之後,是否能得到這些資源,還依賴於相應的資源調度與管理系統。
目前的Internet僅提供盡力而為(
best-effort service )的傳送服務,業務量儘快傳送,沒有明確的時間和可靠性保障。隨著
網路多媒體 技術的飛速發展,Internet上的多媒體套用層出不窮,如IP電話、
視頻會議 、視頻點播(VOD)、遠程教育等多媒體實時業務、電子商務在Internet上傳送等。Internet已逐步從單一的
數據傳送 網向數據、語音、圖像等
多媒體信息 的綜合
傳輸網 演化。這些不同的套用需要有不同的Qos(quality of service)要求,Qos通常用
頻寬 、時延、
時延抖動 和分組丟失率來衡量。各種套用對服務質量的需求在迅速增長。
顯然,現有的盡力傳送服務已無法滿足各種套用對
網路傳輸 質量的不同要求,需要Internet提供多種服務質量類型的業務。而盡力而為的服務仍將提供給那些只需要連通性的套用。
服務質量Qos系指用來表示服務性能之屬性的任何組合。為了使其具有價值,這些屬性必須是可提供的、可管理的、可驗證和計費的,而且在使用時它們必須是始終如一的、可預測的、有的屬性甚至是起決定性作用的。為了滿足各種用戶套用的需要,構建對IP最優並具備各種服務質量機制的網路是完全必要的。專線服務、語音、檔案傳遞、
存儲轉發 、互動式視頻和廣播視頻是現有套用的一些例子。
分類標準 優先權分類根據各種網路所關注的業務類型已經出現多種不同的標準,相關標準可以參考:
RFC 791 根據各IP套用的特點,將業務分為Network Control、Internetwork Control、CRITIC/ECP、Flash Override、Flash、Immediate、Priority、Routine共8類優先權。其中,Routine優先權最低,Network Control優先權最高。
RFC 1349 將業務按照TOS的定義分為16類優先權,TOS使用4個bit位分別表示:minimize delay、maximize throughput、minimize monetary cost、maximize reliability,並建議了各IP套用應該如何取TOS值,例如,FTP CONTROL報文建議其TOS取值為minimize delay。
RFC 1490 將業務按照Frame Relay Discard Eligibility bit的定義分為2類丟棄優先權。
RFC 1483 Multiprotocol Encapsulation over ATM Adaptation Layer 5
將業務按照ATM Cell Loss Priority bit的定義分為2類丟棄優先權。
RFC 2474 Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Header
DiffServ網路定義了四類PHB:EF(Expedited Forwarding)PHB適用於低時延、低丟失、低抖動、確保頻寬的優先業務;AF(Assured Forwarding)PHB分為四類,每個AF類又分為三個丟棄優先權,可以對相應業務進行等級細分,QoS性能參數低於EF類型;CS(class selector)PHB是從IP TOS欄位演變而來,共8類;BE PHB是CS中特殊一類,沒有任何保證,現有IP網路流量也都默認為此類。
IEEE 802.5 Token ring access method and Physical Layer specifications
令牌環網的優先權,可以將業務根據Access Priority的定義為8類優先權 。
IEEE 802.1p,Class of Service
乙太網優先權,可以將業務根據802.1P Priority的定義分為8類優先權,0類至7類優先權相應遞增,0類是BE業務,盡力傳輸)。
QoS配置 預設QOS設定 用戶在進行QoS配置之前,需要清楚和QoS有關的幾點信息,如下:
一個接口最多關聯1個Policy-map
一個Policy-map可以擁有多個Class-map
一個Class-map最多關聯1個ACL,該ACL的所有ACE必須具有相同過濾域模板
一個接口上關聯的ACE的個數服從“配置安全ACL”章節的限制
預設情況下,QoS 功能是關閉的,即設備對所有的報文同等處理。但當您將一個Policy Map 關聯到某一個接口上,並設定了接口的信任模式時,該接口的QoS 功能即被打開。要關閉該接口的QoS 功能,您可以通過解除該接口的Policy Map 設定,並將接口的信任模式設為Off 即可。以下為QOS的預設配置:
預設CoS值
0
佇列個數
8
佇列輪轉算法
WRR
QueueWeight
1:1:1:1:1:1:1:1
WRR Weight Range
1:15
DRR Weight Range
1:15
信任模式
No Trust
Cos 值到佇列的默認映射表
CoS to DSCP 默認映射表
CoS 值
0
1
2
3
4
5
6
7
DSCP 值
0
8
16
24
32
40
48
56
IP-Precedence to DSCP 默認映射表
IP-Precedence
0
1
2
3
4
5
6
7
DSCP
0
8
16
24
32
40
48
56
DSCP to CoS 的默認映射表
DSCP
0
8
16
24
32
40
48
56
CoS
0
1
2
3
4
5
6
7
信任模式 預設情況下,接口的Qos信任模式是不信任
命令
作用
SW# configure terminal
進入配置模式
SW(config)# interface interface
進入接口配置模式
SW(config-if)# mls qos trust {cos | ip-precedence | dscp }
配置接口的Qos 信任模式 cos,dscp或 ip-precedence
SW(config-if)# no mls qos trust
恢復接口默認Qos 信任模式
以下命令將連線埠interface GigabitEthernet 0/4信任模式設定為DSCP:
SW(config)# interface gigabitEthernet 0/4
SW(config-if)# mls qos trust dscp
SW(config-if)# end
SW# show mls qos interface g0/4
Interface: GigabitEthernet 0/4
Attached input policy-map:
Default trust: trust dscp
Default COS: 0
預設CoS值 您可以通過下面的設定步驟來配置每一個接口的預設CoS值
預設情況下,接口的預設CoS值為0
命令
作用
R# configure terminal
進入配置模式
R(config)# interface interface
進入接口配置模式
R(config-if)# mls qos cos default-cos
配置接口的預設CoS值, default-cos為要設定的預設CoS值, 取值範圍為0~7
R(config-if)# no mls qos cos
默認的預設CoS值
下面的例子將接口Interface g0/4預設CoS值設定為6
R# configure terminal
R(config)#interface g 0/4
R(config-if)# mls qos cos 6
R(config-if)# end
R# show mls qos interface g 0/4
Interface: GigabitEthernet 0/4
Attached input policy-map:
Default trust: trust dscp
Default COS: 6
連線埠組 在接口配置模式下,請按如下步驟將連線埠加入邏輯連線埠組:
命令
作用
R(config-if)# [no] virtual-group virtual-group-number
將該接口加入一個邏輯連線埠組或退出一個邏輯連線埠組。virtual-group-number 表示邏輯連線埠組成員連線埠組的編號,即邏輯連線埠組號。
在接口配置模式下使用no virtual-group virtual-group-number 命令將一個物理連線埠退出邏輯連線埠組。
下面的例子是將乙太網接口0/1配置成邏輯連線埠組 5的成員:
R# configure terminal
R(config)# interface gigabitEthernet 0/1
R(config-if-range)# virtual-group 5
R(config-if-range)# end
配置Class Maps
您可以通過下面的設定步驟來創建並配置Class Maps
命令
作用
R# configure terminal
進入配置模式
R(config)# ip access-list extended {id | name } … R(config)# ip access-list standard {id | name } … R(config)# mac access-list extended {id | name } … R(config)# expert access-list extended {id |name } … R(config)# ipv6 access-list extended name … R(config)# access-list id […]
創建ACL
R(config)# [no ] class-map class-map-name
創建並進入class map配置模式,class-map-name是要創建的class map的名字 no選項 刪除一個已經存在的class map
R(config-cmap)# [no ] match access-group {acl-num | acl-name }
設定匹配ACL, acl-name 為已經創建的ACL 名字, acl-num為已經創建的ACL id,no選項刪除該匹配
R(config-cmap)# [no ] match ip dscp dscp-value1 [dscp-value2 [dscp-valueN ] ]
設定要匹配的報文的ip dscp值,dscp-valueN為要匹配的DSCP值,一次最多可以匹配8個不同的值。
R(config-cmap)# [no ] match ip precedence ip-pre-value1 [ip-pre-value2 [ip-pre-valueN ] ]
設定要匹配的報文的ip precedence值,ip-pre-valueN為要匹配的EXP值,一次最多可以匹配8個不同的值。
例如,以下設定步驟創建了一個名為Class1的Class-map,它關聯一個ACL:acl_1。這個Class-map將分類所有連線埠號為80的TCP報文
R(config)# ip access-list extended acl_1
R(config-ext-nacl)# permit tcp any any eq 80
R(config-ext-nacl)# exit
R(config)# class-map class1
R(config-cmap)# match access-group acl_1
R(config-cmap)# end
配置Policy Maps
您可以通過下面的設定步驟來創建並配置Policy Maps
命令
作用
R# configure terminal
進入配置模式
R(config)# [no ] policy-map policy-map-name
創建並進入policymap配置模式,policy-map-name是要創建的policymap的名字 no選項 刪除一個已經存在的policy map
R(config-pmap)# [no ] class class-map-name
創建並進入數據分類配置模式,class-map-name 是已經創建的class map名字 no選項 刪除該數據分類
R(config-pmap-c)# [no ] set {ip dscp new-dscp | cos new-cos [none-tos ]}
為該數據流中的IP報文設定新的 ip dscp值或者設定新的cos值;對於非IP報文,設定新的ip dscp不起作用; new-dscp 是要設定的新DSCP值,取值範圍依產品不同而不同; new-cos 是要設定的新CoS值,取值範圍為0-7; none-tos 是代表設定新的CoS值,同時不修改報文的DSCP值,僅S8600,S12000系列設備支持none-tos選項
R(config-pmap-c)# police rate-bps burst-byte [exceed-action {drop | dscp dscp-value | cos cos-value [none-tos ]}]
限制該數據流的頻寬和為頻寬超限部分指定處理動作,rate-bps是每秒鐘頻寬限制量(kbps),burst-byte猝發流量限制值(Kbyte),drop來丟棄頻寬超限部分的報文,dscp dscp-value改寫頻寬超限部分報文的DSCP值,dscp-value取值範圍依產品不同而不同,cos cos-value改寫頻寬超限部分的報文的CoS值,cos-vlaue取值範圍為0-7,none-tos選項代表改寫報文的CoS值時,不修改報文的DSCP值,僅S8600,S12000系列設備支持改寫頻寬超限部分的報文的CoS值,且僅作用於輸入方向; 對於S2900系列,rate-bps的有效範圍是1-10000000; burst-byte的有效範圍是4-2097152
R(config-pmap-c)# no police
取消限制該數據流的頻寬和為頻寬超限部分指定處理動作
例如,以下的設定步驟創建了一個名為Policy1的Policy-map,並將該Policy-map關聯接口Gigabitethernet 1/1
R(config)# policy-map policy1
R(config-pmap)# class class1
R(config-pmap-c)# set ip dscp 48
R(config-pmap-c)# exit
R(config-pmap)# exit
R(config)# interface gigabitethernet 1/1
R(config-if)# switchport mode trunk
R(config-if)# mls qos trust cos
R(config-if)# service-policy input policy1
套用Policy Maps
可以通過下面的設定步驟將Policy Maps套用到連線埠上:
命令
作用
R# configure terminal
進入配置模式
R(config)# interface interface
進入接口配置模式
R(config-if)# [no ] service-policy {input | output } policy-map-name
將創建的Policy Map套用到接口上;policy-map-name是已經創建的policy map的名字,input 為輸入,output 為輸出
套用Policy Maps
可以通過下面的設定步驟將Policy Maps套用到邏輯連線埠組上
命令
作用
configure terminal
進入配置模式
virtual-group-number
進入邏輯連線埠組配置模式
[no ] service-policy {input | output }policy-map-name
將創建的Policy Map套用到邏輯連線埠組上;policy-map-name是已經創建的policy map的名字,input 為輸入限速,output 為輸出限速
調度算法 您可以為連線埠的輸出佇列調度算法:WRR,SP,RR和DRR,預設情況下,輸出佇列算法為WRR(帶權重的佇列輪轉)
您可以通過以下步驟對連線埠優先權佇列調度方式進行設定。
命令
作用
R# configure terminal
進入配置模式
R(config)# mls qos scheduler {sp | rr | wrr | drr | wfq }
連線埠優先權佇列調度方式,sp 為絕對優先權調度,rr 為 輪轉調度,wrr 為帶幀數量權重輪轉調度,drr 為帶幀長度權重輪轉調度
R(config)#no mls qos scheduler
恢復為預設wrr調度
例如,以下的設定步驟將連線埠的輸出輪轉算法設定成SP:
R# configure terminal
R(config)# mls qos scheduler sp
R(config)# end
R# show mls qos scheduler
Global Multi-Layer Switching scheduling
Strict Priority
輸出輪轉權重 可以通過以下步驟設定連線埠的輸出輪轉權重
命令
作用
R#configure terminal
進入配置模式
R(config)# {wrr-queue | drr-queue }bandwidth weight1...weightn
weight1...weightn 為指定的輸出佇列的權重值,個數及取值範圍見預設QOS設定
R(config)#no {wrr-queue | drr-queue } bandwidth
no 選項恢復權重的預設值
下面的例子將wrr調度權重設定為1:2:3:4:5:6:7:8
R# configure terminal
R(config)# wrr-queue bandwidth 1 2 3 4 5 6 7 8
R(config)#end
R# show mls qos queueing
Cos-queue map:
cos qid
--- ---
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
wrr bandwidth weights:
qid weights
--- -------
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
R(config)#
Cos-Map 您可以通過設定Cos-Map來選擇報文輸出時進入哪個輸出佇列,Cos-Map的預設設定見預設QOS配置
命令
作用
R# configure terminal
進入配置模式
R(config)#priority-queue Cos-Map qid cos0 [cos1 [cos2 [cos3 [cos4 [cos5 [cos6 [cos7 ]]]]]]]
qid 為佇列id,cos0..cos7 為指定和這個佇列關聯的CoS 值。
R(config)# no priority-queue cos-map
Cos-Map恢復成預設值
下面是設定CoS Map的例子
R# configure terminal
R(config)#priority-queue Cos-Map 1 2 4 6 7 5
R(config)# end
R#show mls qos queueing
Cos-queue map:
cos qid
--- ---
0 1
1 2
2 1
3 4
4 1
5 1
6 1
7 1
wrr bandwidth weights:
qid weights
--- -------
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
CoS-to-DSCP Map
CoS-to-DSCP Map 用於將報文的CoS 值映射到內部DSCP 值,您可以通過以下步驟對CoS-to-DSCP Map 進行設定 ,CoS-to-DSCP Map的預設設定見預設QOS配置
命令
作用
R# configure terminal
進入配置模式
R(config)# mls qos map cos-dscp dscp1...dscp8
修改CoS-to-DSCP Map 的設定,dscp1...dscp8 是對應於CoS 值0~7 的DSCP 值,DSCP 取值範圍依產品不同而不同
R(config)# no mls qos map cos-dscp
恢復預設值
例如如下配置:
R#configure terminal
R(config)# mls qos map cos-dscp 56 48 46 40 34 32 26 24
R(config)# end
R# show mls qos maps cos-dscp
cos dscp
--- ----
0 56
1 48
2 46
3 40
4 34
5 32
6 26
7 24
配置DSCP-to-CoS Map
DSCP-to-CoS 用於將報文的內部DSCP 值映射到CoS 值,以便為報文選擇輸出佇列
DSCP-to-CoS Map的預設設定見預設QOS配置, 您可以通過以下步驟對DSCP-to-CoS Map 進行設定:
命令
作用
R# configure terminal
進入配置模式
R(config)# mls qos map dscp-cos dscp-list to cos
設定DSCP to COS Map,dscp-list :要設定的DSCP 值的列表,DSCP 值之間用空格分隔,取值範圍依產品不同而不同,cos :對應DSCP 值的CoS 值,取值範圍為:0~7;
R(config)#no mls qos map dscp-cos
設定為默認值
例如,以下的設定步驟將DSCP值0、32、56設定對應成6:
R# configure terminal
R(config)#mls qos map dscp-cos 0 32 56 to 6
R(config)# show mls qos maps dscp-cos
dscp cos dscp cos dscp cos dscp cos
---- --- ---- --- ---- --- ---- ---
0 6 1 0 2 0 3 0
4 0 5 0 6 0 7 0
8 1 9 1 10 1 11 1
12 1 13 1 14 1 15 1
16 2 17 2 18 2 19 2
20 2 21 2 22 2 23 2
24 3 25 3 26 3 27 3
28 3 29 3 30 3 31 3
32 6 33 4 34 4 35 4
36 4 37 4 38 4 39 4
40 5 41 5 42 5 43 5
44 5 45 5 46 5 47 5
48 6 49 6 50 6 51 6
52 6 53 6 54 6 55 6
56 6 57 7 58 7 59 7
60 7 61 7 62 7 63 7
配置連線埠速率限制
可以通過以下步驟對連線埠速率限制進行設定
命令
作用
R# configure terminal
進入配置模式
R(config)# interface interface
進入接口配置模式
R(config-if)# rate-limit {input | output } bps burst-size
連線埠速率限制,input 為輸入限速,output 為輸出限速,bps 是每秒鐘的頻寬限制量(kbps), burst-size猝發流量限制值(Kbyte)
R(config-if)# no rate-limit
取消連線埠限速
R# configure terminal
R(config)# interface gigabitEthernet 0/4
R(config-if)# rate-limit input 100 100
R(config-if)# end
配置IPpre to DSCP Map
IPpre-to-Dscp用於將報文的IPpre值映射到內部DSCP值, IPpre-to-DSCP Map的預設設定見預設QOS配置,您可以通過以下步驟對IPpre-to-Dscp Map進行設定:
命令
作用
R# configure terminal
進入配置模式
R(config)# mls qos map ip-prec-dscp dscp1...dscp8
修改IP-Precedence-to-Dscp Map的設定,dscp1...dscp8 是對應於IP-Precedence值0~7 的DSCP 值
R(config)# no mls qos map ip-prec-dscp
恢復預設配置。
例如如下配置:
R# configure terminal
R(config)# mls qos map ip-precedence-dscp 56 48 46 40 34 32 26 24
R(config)# end
R# show mls qos maps ip-prec-dscp
ip-precedence dscp
------------- ----
0 56
1 48
2 46
3 40
4 34
5 32
6 26
7 24
配置交換機buffer
可以配置交換機buffer管理處於802.3x flow-control狀態或處於QoS狀態。
命令
作用
R# configure terminal
進入配置模式
R(config)# buffer management { fc | qos }
配置交換機的buffer管理模式 FC:802.3xflow-control QoS:QoS模式
R(config)# no buffer management
取消交換機的Buffer管理
例如如下配置交換機處於qos模式:
R# configure terminal
R(config)#buffer management qos
R(config)# end
R# show buffer management
%current port's buffer management mode: qos
QoS顯示命令 顯示class-map
您可以通過以下步驟顯示class-map內容
命令
作用
show class-map [class-name ]
顯示class map實體的內容
例如:
R# show class-map
Class Map cc
Match access-group 1
R#
顯示policy-map
您可以通過以下步驟顯示Policy-map內容
命令
作用
show policy-map [policy-name [class class-name ]]
顯示QoS policy map,policy-name 為選定的policy map名,指定class class-name 時顯示相應policy map綁定的class map。
例如:
R# show policy-map
Policy Map pp
Class cc
R#
顯示mls qos interface
您可以通過以下步驟顯示所有連線埠qos信息
命令
作用
show mls qos interface [interface | policers ]
顯示接口的QoS信息, Policers選項顯示接口套用的Policy map
例如:
R# show mls qos interface gigabitEthernet 0/4
Interface: GigabitEthernet 0/4
Attached input policy-map: pp
Default trust: trust dscp
Default COS: 6
R# show mls qos interface policers
Interface: GigabitEthernet 0/4
Attached input policy-map: pp
R#
顯示mls qos virtual-group
您可以通過以下步驟顯示所有連線埠qos信息
命令
作用
show mls qos virtual-group [virtual-group-number | policers ]
顯示邏輯連線埠組關聯的police信息 Policers選項顯示邏輯連線埠組關聯的police
例如:
R# show mls qos virtual-group 1
Virtual-group: 1
Attached input policy-map: pp
R#show mls qos virtual-group policers
Virtual-group: 1
Attached input policy-map: pp
R#
顯示mls qos queueing
您可以通過以下步驟顯示qos佇列信息
命令
作用
show mls qos queueing
顯示QoS佇列信息, CoS-to-queue map,wrr weight及drr weight;
舉例如下:
R# show mls qos queueing
Cos-queue map:
cos qid
--- ---
0 1
1 2
2 1
3 4
4 1
5 1
6 1
7 1
wrr bandwidth weights:
qid weights
--- -------
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
顯示mls qos scheduler
您可以通過以下步驟顯示QOS調度方式
命令
作用
show mls qos scheduler
顯示連線埠優先權佇列調度方式
舉例如下:
R# show mls qos scheduler
Global Multi-Layer Switching scheduling
Strict Priority
R#
顯示mls qos maps
您可以通過以下步驟顯示mls qos maps 對應表
命令
作用
show mls qos maps [cos-dscp | dscp-cos | ip-prec-dscp ]
顯示cos-dscp maps dscp-cos maps ip-prec-dscp maps
舉例如下:
R# show mls qos maps cos-dscp
cos dscp
--- ----
0 0
1 8
2 16
3 24
4 32
5 40
6 48
7 56
R# show mls qos maps dscp-cos
dscp cos dscp cos dscp cos dscp cos
---- --- ---- --- ---- --- ---- ---
0 6 1 0 2 0 3 0
4 0 5 0 6 0 7 0
8 1 9 1 10 1 11 1
12 1 13 1 14 1 15 1
16 2 17 2 18 2 19 2
20 2 21 2 22 2 23 2
24 3 25 3 26 3 27 3
28 3 29 3 30 3 31 3
32 6 33 4 34 4 35 4
36 4 37 4 38 4 39 4
40 5 41 5 42 5 43 5
44 5 45 5 46 5 47 5
48 6 49 6 50 6 51 6
52 6 53 6 54 6 55 6
56 6 57 7 58 7 59 7
60 7 61 7 62 7 63 7
R# show mls qos maps ip-prec-dscp
ip-precedence dscp
------------- ----
0 56
1 48
2 46
3 40
4 34
5 32
6 26
7 24
顯示mls qos rate-limit
您可以通過以下步驟顯示連線埠速率限制信息
命令
作用
show mls qos rate-limit [interface interface ]
顯示[連線埠] 速率限制
舉例:
R# show mls qos rate-limit
Interface: GigabitEthernet 0/4
rate limit input bps = 100 burst = 100
顯示show policy-map interface
您可以通過以下步驟顯示連線埠policymap的配置
命令
作用
show policy-map interface interface
顯示[連線埠] policymap配置
舉例:
R# show policy-map interface f0/1
FastEthernet 0/1 input (tc policy): pp
Class cc
set ip dscp 22
mark count 0
顯示交換機buffer管理模式
您可以通過以下步驟顯示交換機buffer管理模式
命令
作用
show buffer management
顯示交換機buffer管理模式
舉例:
R# show buffer management
%current port's buffer management mode: qos
顯示virtual-group
在特權模式下,請按如下步驟顯示virtual-group設定。
命令
作用
show virtual-group [virtual-group-number | summary ]
顯示邏輯連線埠組信息。
R#show virtual-group 1
virtual-group member
------------- -------------------------
1 Gi0/2 Gi0/3 Gi0/4 Gi0/5
Gi0/6 Gi0/7 Gi0/8 Gi0/9 Gi0/10
R#show virtual-group summary
virtual-group member
------------- -------------------------
1 Gi0/1 Gi0/2 Gi0/3 Gi0/4
Gi0/5 Gi0/6 Gi0/7 Gi0/8 Gi0/9
2 Gi0/11 Gi0/12 Gi0/13 Gi0/14
Gi0/15 Gi0/16 Gi0/17 Gi0/18 Gi0/19