qos

qos

QoS(Quality of Service,服務質量)指一個網路能夠利用各種基礎技術,為指定的網路通信提供更好的服務能力, 是網路的一種安全機制, 是用來解決網路延遲和阻塞等問題的一種技術。 在正常情況下,如果網路只用於特定的無時間限制的套用系統,並不需要QoS,比如Web套用,或E-mail設定等。但是對關鍵套用和多媒體套用就十分必要。當網路過載或擁塞時,QoS 能確保重要業務量不受延遲或丟棄,同時保證網路的高效運行。在RFC 3644上有對QoS的說明。

基本信息

基本介紹

參數

QoS是通過給定的虛連線描述傳輸質量的ATM性能參數術語。這些參數包括:CTD、CDV、CER、CLR、CMR和SECBR、ALLservice classes、Qos Classes、 trafficcontract、traffic control。

含義

QoSQoS

QoS(Quality of Service)即服務質量。對於網路業務,服務質量包括傳輸的頻寬、傳送的時延、數據的丟包率等。在網路中可以通過保證傳輸的頻寬、降低傳送的時延、降低數據的丟包率以及時延抖動等措施來提高服務質量。

網路資源總是有限的,只要存在搶奪網路資源的情況,就會出現服務質量的要求。服務質量是相對網路業務而言的,在保證某類業務的服務質量的同時,可能就是在損害其它業務的服務質量。例如,在網路總頻寬固定的情況下,如果某類業務占用的頻寬越多,那么其他業務能使用的頻寬就越少,可能會影響其他業務的使用。因此,網路管理者需要根據各種業務的特點來對網路資源進行合理的規劃和分配,從而使網路資源得到高效利用。

下面從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後,分類就在該連線埠上生效,它對所有從該連線埠輸入的報文起作用。

協定

QoSQoS

有些協定非常“健談”,只要它們存在就會導致業務延遲,因此根據協定對數據包進行識別和優先權處理可以降低延遲。套用可以通過它們的EtherType進行識別。譬如,AppleTalk協定採用0x809B,IPX使用0x8137。根據協定進行優先權處理是控制或阻止少數較老設備所使用的“健談”協定的一種強有力方法。

(2) TCP和UDP連線埠號碼

許多套用都採用一些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,可見效果是相當可觀的,可以有效的減少鏈路,尤其是低速鏈路頻寬的消耗。

ATMQoS

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位被設定的信元被丟棄的可能性更大。

FRQoS

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的輸出流量整形為與網路的可用頻寬一致

MPLSQoS

於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

MPLS標籤結構MPLS標籤結構

EXP比特指的是MPLS標籤中第20到第22比特,這3位比特稱為實驗(EXP)比特,目前專用於服務質量(QoS)。EXP欄位在MPLS標籤中的位置,請參見圖-2。與IP傳輸中可以按照IP報文中的IP優先權或者DSCP比特來分類並標記類似,在MPLS網路中,可以按照MPLS報文的EXP比特來分類並標記。

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。

IPQoS

對於Ip QoS,QoS是由流量標記、擁塞管理、擁塞避免和流量整形構成,可以對IP報文實施WRR(帶權重的佇列輪轉),DRR,SP等調度方式,實施加權隨機早期檢測(WRED),流量監管,以及流量整形。在為MPLS報文實施QoS的時候可以根據EXP比特來使用相同的特性。

QoS的關鍵指標

QoS in InternetQoS in Internet

QoS的關鍵指標主要包括:可用性、吞吐量、時延、時延變化(包括抖動和漂移)和丟失。下面詳細敘述。

可用性

可用性是當用戶需要時網路即能工作的時間百分比。可用性主要是設備可靠性和網路存活性相結合的結果。對它起作用的還有一些其他因素,包括軟體穩定性以及網路演進或升級時不中斷服務的能力。

吞吐量

吞吐量是在一定時間段內對網上流量(或頻寬)的度量。對IP網而言可以從幀中繼網借用一些概念。根據套用和服務類型,服務水平協定(SLA)可以規定承諾信息速率(CIR)、突發信息速率(BIR)和最大突發信號長度。承諾信息速率是應該予以嚴格保證的,對突發信息速率可以有所限定,以在容納預定長度突發信號的同時容納從話音到視像以及一般數據的各種服務。一般講,吞吐量越大越好。

時延

時延指一項服務從網路入口到出口的平均經過時間。許多服務,特別是話音和視像等實時服務都是高度不能容忍時延的。當時延超過200-250毫秒時,互動式會話是非常麻煩的。為了提供高質量話音和會議電視,網路設備必須能保證低的時延。

產生時延的因素很多,包括分組時延、排隊時延、交換時延和傳播時延。傳播時延是信息通過銅線、光纖或無線鏈路所需的時間,它是光速的函式。在任何系統中,包括同步數字系列(SDH)、異步傳輸模式(ATM)和彈性分組環路(RPR),傳播時延總是存在的。

時延變化

QoS流程QoS流程

時延變化是指同一業務流中不同分組所呈現的時延不同。高頻率的時延變化稱作抖動,而低頻率的時延變化稱作漂移。抖動主要是由於業務流中相繼分組的排隊等候時間不同引起的,是對服務質量影響最大的一個問題。某些業務類型,特別是話音和視像等實時業務是極不容忍抖動的。分組到達時間的差異將在話音或視像中造成斷續。所有傳送系統都有抖動,只要抖動落在規定容差之內就不會影響服務質量。利用快取可以克服過量的抖動,但這將增加時延,造成其他問題。

漂移是任何同步傳輸系統都有的一個問題。在SDH系統中是通過嚴格的全網分級定時來克服漂移的。在異步系統中,漂移一般不是問題。漂移會造成基群失幀,使服務質量的要求不能滿足。

丟包

不管是比特丟失還是分組丟失,對分組數據業務的影響比對實時業務的影響都大。在通話期間,丟失一個比特或一個分組的信息往往用戶注意不到。在視像廣播期間,這在螢幕上可能造成瞬間的波形干擾,然後視像很快恢復如初。即便是用傳輸控制協定(TCP)傳送數據也能處理丟失,因為傳輸控制協定允許丟失的信息重發。事實上,一種叫做隨機早丟(RED)的擁塞控制機制在故意丟失分組,其目的是在流量達到設定門限時抑制TCP傳輸速率,減少擁塞,同時還使TCP流失去同步,以防止因速率視窗的閉合引起吞吐量擺動。但分組丟失多了,會影響傳輸質量。所以,要保持統計數字,當超過預定門限時就向網路管理人員告警。

QoS套用

QoS套用示意圖QoS套用示意圖

QoS是網路與用戶之間以及網路上互相通信的用戶之間關於信息傳輸與共享的質的約定,例如,傳輸延遲允許時間、最小傳輸畫面失真度以及聲像同步等,是用來解決網路延遲和阻塞等問題的一種技術。現在的路由器一般均支持QoS。QoS 是網路的一種安全機制,是用來解決網路延遲和阻塞等問題的一種技術。在正常情況下,如果網路只用於特定的無時間限制的套用系統,並不需要QoS,比如 Web套用,或E-mail設定等。但是對關鍵套用和多媒體套用就十分必要。當網路過載或擁塞時,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最優並具備各種服務質量機制的網路是完全必要的。專線服務、語音、檔案傳遞、存儲轉發、互動式視頻和廣播視頻是現有套用的一些例子。

分類標準

優先權分類根據各種網路所關注的業務類型已經出現多種不同的標準,相關標準可以參考:

RFC791

根據各IP套用的特點,將業務分為Network Control、Internetwork Control、CRITIC/ECP、Flash Override、Flash、Immediate、Priority、Routine共8類優先權。其中,Routine優先權最低,Network Control優先權最高。

RFC1349

將業務按照TOS的定義分為16類優先權,TOS使用4個bit位分別表示:minimize delay、maximize throughput、minimize monetary cost、maximize reliability,並建議了各IP套用應該如何取TOS值,例如,FTP CONTROL報文建議其TOS取值為minimize delay。

RFC1490

將業務按照Frame Relay Discard Eligibility bit的定義分為2類丟棄優先權。

RFC1483

Multiprotocol Encapsulation over ATM Adaptation Layer 5

將業務按照ATM Cell Loss Priority bit的定義分為2類丟棄優先權。

RFC2474

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網路流量也都默認為此類。

IEEE802.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有關的幾點信息,如下:

一個接口最多關聯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 0 1 2 3 4 5 6 7
佇列 1 2 3 4 5 6 7 8

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-group5

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 bandwidth1 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

顯示命令

顯示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 ] 顯示dscp-cos 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

無線通信系統基本概念

無線通信系統在上個世紀60年代起,美國軍方創建了世界上第一個無線通信系統的雛形——MCM。它僅僅經過了半個多世紀的發展,便成為了與人民大眾生活密不可分的一部分,無線通信系統究竟有什麼樣的魔力,讓我們能夠從世界的一端和另一端,甚至在遙遠的其他星球自由溝通?現在,就讓我們慢慢揭開它神秘的面紗。

相關詞條

相關搜尋

熱門詞條

聯絡我們