本節書摘來自異步社群《端到端qos網絡設計(第2版)》一書中的第2章,第2.2節,作者【美】tim szigeti , 【加】robert barton , 【美】christina hattingh , 【美】kenneth briley,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
端到端qos網絡設計(第2版)
本書曾在圖1-2中介紹過下面幾項主要的qos功能。
分類:判斷各個資料包分别屬于哪種類型的流量。
标記:在資料標頭部寫入一個值,以便裝置在分類這個資料包時,識别出資料包的流量類型。
限速(丢棄與降級):判斷何時丢棄資料包,以及在哪裡丢棄資料包;或在流量超過可用資源的承載能力時,對資料包進行重新标記。
整形:降低流量的速度使其能夠滿足指定的帶寬速率(一般是為了讓流量不超過服務提供商合同規定的帶寬)。
列隊:當入站流量超過了可用的出站資源(帶寬)時,将資料包緩沖下來等待傳輸。
配置設定帶寬:對某類流量進行監測,確定這類流量占用的帶寬不超過管理者通過配置指定的數值。
準入控制:根據可用資源判斷是否允許讓某個資料包進入網絡。
各個qos功能并不是獨立工作的,而且其中的任何一項功能又會由一些不同的特性組成。在下面的内容中,我們會首先解釋各項特性如何與其他特性進行關聯,以及裝置處理這些特性的次序,然後會對(基于ios的)子產品化qos指令行語句的結構進行介紹。
qos概念所規定的行為與實施該qos特性的平台無關,我們建議網絡管理者在設計和配置qos特性時,盡量使用通用的qos規範,而不要使用那些某個裝置平台或網絡中某個區域專用的qos特性。圖2-1所示為配置界面、下層的工作方式模型,以及不同平台實施方案,這三個概念之間的關系。

具體而言,在思考qos的行為時,不妨認為這些行為有一個通用的執行順序(如圖1-2所示)。
分類:也即對不同的流量進行區分。
預列隊:在将資料包排入出站隊列中等待傳輸之前,最好首先對其執行準入控制、丢棄和标記等操作。
列隊:對在隊列中等待傳輸的資料包進行排序。
列隊後:一般為可選操作。但有時需要根據資料包傳輸次序(如順序編号)來為流量執行一些操作(例如壓縮或加密),這些操作會在qos排程函數根據優先級将資料包從隊列中提取出去時,才會執行。
在考慮qos的行為時,不妨從資料包流量穿越網絡節點,以及qos特性與資料包其他出入站特性互相作用的角度去思考。圖2-2對資料包特性的執行順序進行了高度的包括,其中方塊1、2、6、7和12所代表的行為與qos特性無關。
在資料包的入站接口(3)/出站接口(8)上有可能會執行分類。一般來說,應該在盡可能靠近源(也就是入站)的位置執行分類,但有時,裝置隻有在執行了輸出特性(7)之後才能獲得執行分類所需的屬性。對于本地建立的資料包(而不是過境資料包),這種情況尤為常見,因為這類資料包不需要通過入站路徑進入裝置。
同樣,資料包有可能會在入站(4)時進行标記,但裝置也會可能會在出站時(9)根據資料包的某些變化,或者因為裝置擷取到了資料包的更多資訊,而對資料包進行重新标記。例如,限速器(policer)可能會在出站方向上對一個未經确認的(confirming)資料包進行重新标記,而不是直接丢棄該資料包——但資料包未确認這件事隻有在資料包到達路徑的出站端裝置才會知道,因為這是根據這段時間内流量的情況而定的,并不是資料包自身的某種獨特屬性。