1、QOS模型
創(chuàng)新互聯(lián)公司于2013年創(chuàng)立,是專(zhuān)業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、成都做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元蓬安做網(wǎng)站,已為上家服務(wù),為蓬安各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
盡力而為服務(wù)模型(Best-effort)
集成服務(wù)模型(Integrated Services)
差分服務(wù)模型(Differentiated Services)
2、差分服務(wù)模型結(jié)構(gòu)
3、分類(lèi)與標(biāo)記
標(biāo)記可以使用IP包頭中TOS的高三位(IP優(yōu)先級(jí))或高六位(DSCP)做標(biāo)記。
在R1上將ICMP流量的優(yōu)先級(jí)設(shè)置為2,將HTTP流量的DSCP值設(shè)置為AF22,其他沒(méi)匹配到的流量?jī)?yōu)先級(jí)設(shè)置為1,在ISP上查看標(biāo)記是否生效。
ISP配置如下:
ip http server
access-list 100 permit ip any any dscp af22
access-list 100 permit ip any any precedence 1
access-list 100 permit ip any any precedence 2
interface FastEthernet2/0
service-policy input MARK
R1配置如下:
access-list 110 permit icmp any any
access-list 120 permit tcp any any eq www
class-map match-all ICMP
match access-group 110
class-map match-all WWW
match access-group 120
policy-map MARK
class ICMP
set precedence 2
class WWW
set dscp af22
class class-default
set precedence 1
interface FastEthernet2/0
service-policy input MARK
TEST上的測(cè)試命令
ping 33.1.1.1
telnet 33.1.1.1 80
查看命令
show ip access-lists
show class-map
show policy-map
show policy-map interface s0/1
4、隊(duì)列技術(shù)(擁塞管理)
隊(duì)列技術(shù)應(yīng)用于接口的出方向,一個(gè)接口只能使用一種隊(duì)列技術(shù)。
路由器的接口上有一個(gè)軟件隊(duì)列和一個(gè)硬件隊(duì)列。數(shù)據(jù)包先進(jìn)入軟隊(duì)列,然后使用隊(duì)列技術(shù)對(duì)數(shù)據(jù)包進(jìn)行調(diào)度進(jìn)入硬件隊(duì)列,硬件隊(duì)列始終采用先進(jìn)先出的方式發(fā)送數(shù)據(jù)包。
常用的隊(duì)列技術(shù):FIFO、PQ、CQ、WFQ、LLQ都是CLI工具,而CBWFQ是MQC工具。
先進(jìn)先出隊(duì)列(FIFO)
優(yōu)先級(jí)隊(duì)列(PQ)
自定義隊(duì)里(CQ)
加權(quán)公平隊(duì)列(WFQ)
低延時(shí)隊(duì)列(LLQ)
實(shí)時(shí)傳輸隊(duì)列(RTP PQ):
基于類(lèi)加權(quán)公平隊(duì)列(CBWFQ)
隊(duì)列技術(shù)三大組件:分類(lèi)組件、插入丟棄組件、調(diào)度組件
先進(jìn)先出隊(duì)列(FIFO)
默認(rèn)時(shí):當(dāng)接口的速度大于2.048Mbps是,路由器采用FIFO進(jìn)行調(diào)度。
優(yōu)先級(jí)隊(duì)列(PQ)
隊(duì)列數(shù):高、中、普通、低共4個(gè)隊(duì)列
分類(lèi):根據(jù)事先分類(lèi)放入不同隊(duì)列
插入丟棄:可以設(shè)置隊(duì)列長(zhǎng)度,隊(duì)列滿后,數(shù)據(jù)包將被尾丟棄
調(diào)度:按照高、中、普通、低的順序調(diào)度,只用高優(yōu)先級(jí)的隊(duì)列為空才會(huì)調(diào)度中優(yōu)先級(jí),依次類(lèi)推。
優(yōu)點(diǎn):保證高優(yōu)先數(shù)據(jù)包優(yōu)先轉(zhuǎn)發(fā)
缺點(diǎn):高優(yōu)先隊(duì)列不為空,低優(yōu)先級(jí)隊(duì)列永遠(yuǎn)得不到轉(zhuǎn)發(fā)
指定不符合任何類(lèi)型的數(shù)據(jù)包將進(jìn)入的隊(duì)列(默認(rèn)normal)
priority-list 1 default high
根據(jù)數(shù)據(jù)包的入口分類(lèi)并將其放入到某個(gè)隊(duì)列
priority-list 1 interface serial 0/0 high
根據(jù)數(shù)據(jù)包的協(xié)議類(lèi)型分類(lèi)并將其放入到某個(gè)隊(duì)列
priority-list 1 protocol ip high tcp telnet
指定各隊(duì)列的大小
priority-list 1 queue-limit 10 10 10 10
在接口上應(yīng)用隊(duì)列
priority-group 1
=================================================================
R1
=================================================================
priority-list 1 interface FastEthernet2/0 high
priority-list 1 protocol ip normal tcp www
priority-list 1 default low
priority-list 1 queue-limit 10 20 30 40
interface Serial0/1
priority-group 1
查看接口上的隊(duì)列
show int s0/1
查看隊(duì)列配置
show queueing priority
測(cè)試隊(duì)列是否生效
debug priority
show queueing interface s0/1
自定義隊(duì)列(CQ)
隊(duì)列數(shù):CQ有17個(gè)隊(duì)列,其中隊(duì)列0為優(yōu)先級(jí)隊(duì)列。只有隊(duì)列0為空,才為其他隊(duì)列服務(wù)。
分類(lèi):根據(jù)事先分類(lèi)放入不同隊(duì)列
插入丟棄:可以設(shè)置隊(duì)列長(zhǎng)度,隊(duì)列滿后,數(shù)據(jù)包將被尾丟棄
調(diào)度:為第1個(gè)隊(duì)列轉(zhuǎn)發(fā)一定字節(jié)數(shù)的數(shù)據(jù)包后,就轉(zhuǎn)為為第2個(gè)隊(duì)列轉(zhuǎn)發(fā),依次輪詢(xún)
優(yōu)點(diǎn):保證每個(gè)隊(duì)列都有被服務(wù)的機(jī)會(huì)
指定不符合任何類(lèi)型的數(shù)據(jù)包將進(jìn)入的隊(duì)列(默認(rèn)隊(duì)列1)
queue-list 1 default 1
根據(jù)數(shù)據(jù)包的入口分類(lèi)并將其放入到某個(gè)隊(duì)列
queue-list 1 interface serial 0/0 1
根據(jù)數(shù)據(jù)包的協(xié)議類(lèi)型分類(lèi)并將其放入到某個(gè)隊(duì)列
queue-list 1 protocol ip 1 tcp telnet
指定每次輪詢(xún)時(shí)各隊(duì)列被轉(zhuǎn)發(fā)的數(shù)據(jù)包字節(jié)數(shù)
queue-list 1 queue 1 byte-count 100
指定各隊(duì)列的大小
queue-list 1 queue 1 limit 100
指定優(yōu)先級(jí)隊(duì)列(例如此時(shí)為2,則隊(duì)列0和1都是優(yōu)先級(jí)隊(duì)列)
queue-list 1 lowest-custom 2
在接口上應(yīng)用隊(duì)列
custom-queue-list 1
=================================================================
R1
=================================================================
queue-list 1 interface FastEthernet2/0 2
queue-list 1 protocol ip 3 tcp www
queue-list 1 queue 1 byte-count 100 limit 100
queue-list 1 queue 2 byte-count 200 limit 200
queue-list 1 queue 3 byte-count 300 limit 300
queue-list 1 lowest-custom 4
interface Serial0/1
custom-queue-list 1
查看接口上的隊(duì)列
show int s0/1
查看隊(duì)列配置
show queueing custom
測(cè)試隊(duì)列是否生效
debug custom-queue
show queueing interface s0/1
加權(quán)公平隊(duì)列(WFQ)
默認(rèn)時(shí):當(dāng)接口的速度小于2.048Mbps時(shí),路由器采用WFQ進(jìn)行調(diào)度。
分類(lèi):具有相同協(xié)議類(lèi)型,源IP,目的IP,源端口,目的端口,TOS值的數(shù)據(jù)包看成一個(gè)流,同一個(gè)流的數(shù)據(jù)包將放到一個(gè)隊(duì)列中。
插入丟棄:隊(duì)列滿后,數(shù)據(jù)包將執(zhí)行WFQ丟棄,丟棄最差完成時(shí)間的數(shù)據(jù)包
調(diào)度:先調(diào)度最快能轉(zhuǎn)發(fā)完畢的數(shù)據(jù)包,包的大小采用虛擬包大小(虛擬包大小=實(shí)際包大小/(IP優(yōu)先級(jí)+1))
優(yōu)點(diǎn):優(yōu)先級(jí)越高、包越小的數(shù)據(jù)包優(yōu)先得到轉(zhuǎn)發(fā)
WFQ丟棄機(jī)制:(丟棄最差完成時(shí)間的數(shù)據(jù)包)
HQO(Hold Queue Out Limit):整個(gè)WFQ系統(tǒng)所能存放的最大數(shù)據(jù)包數(shù)量,這個(gè)值為各隊(duì)列之和。
CDT(Congestive Discard Threshold):WFQ丟棄機(jī)制的門(mén)限值,當(dāng)各隊(duì)列數(shù)據(jù)包數(shù)量之和達(dá)到CDT就開(kāi)始丟棄數(shù)據(jù)包。
=================================================================
R1
=================================================================
interface Serial0/1
fair-queue 512 64 (指定CDT為512,最大會(huì)話數(shù)為64)
hold-queue 1500 out(指定HQO為1500)
查看接口上的隊(duì)列
show int s0/1
基于類(lèi)的加權(quán)公平隊(duì)列(CBWFQ)
分類(lèi):允許自定義類(lèi),把數(shù)據(jù)放入不同隊(duì)列,最多可以定義64個(gè)類(lèi),不匹配分類(lèi)的數(shù)據(jù)放到系統(tǒng)默認(rèn)類(lèi)class-default中
插入丟棄:可以設(shè)置隊(duì)列長(zhǎng)度,隊(duì)列滿后,數(shù)據(jù)包將被尾丟棄
調(diào)度:對(duì)每個(gè)隊(duì)列保留指明帶寬,每個(gè)隊(duì)列默認(rèn)采用FIFO調(diào)度,但也可以結(jié)合WFQ調(diào)度。如何保證帶寬及各隊(duì)列數(shù)據(jù)包如何被調(diào)度到硬件隊(duì)列無(wú)從知曉。
優(yōu)點(diǎn):保證流量的最小帶寬,而不是限制最多帶寬
=================================================================
R1
=================================================================
access-list 1 permit 192.168.1.100
access-list 2 permit 192.168.1.1
class-map match-all 100
match access-group 1
class-map match-all 1
match access-group 2
policy-map MARK
class 100
bandwidth 500
class 1
bandwidth 500
interface Serial0/1
service-policy output MARK
查看命令
show class-map
show policy-map
show policy-map interface s0/1
低延時(shí)隊(duì)列(LLQ)
LLQ配置類(lèi)似CBWFQ,調(diào)度機(jī)制類(lèi)似PQ。LLQ通常和CBWFQ一起使用。
=================================================================
R1
=================================================================
class-map match-any CLASS-MAP3
match ip precedence 5
class-map match-all CLASS-MAP2
match protocol telnet
class-map match-any CLASS_MAP1
match protocol http
match protocol ftp
policy-map MY-POLICY
class CLASS_MAP1
bandwidth 512
class CLASS-MAP2
bandwidth 128
queue-limit 128
class CLASS-MAP3
priority 128
interface Serial0/0
bandwidth 1024
service-policy output MY-POLICY
這個(gè)例子中結(jié)合使用了LLQ和CBWFQ。
CLASS-MAP3使用LLQ,保證帶寬為128kbps,優(yōu)先于CLASS-MAP1,CLASS-MAP2轉(zhuǎn)發(fā)
CLASS-MAP1,CLASS-MAP2使用WFQ,保證帶寬分別為512kbps,128kbps。
查看命令
show class-map
show policy-map
show policy-map interface s0/0
RTP優(yōu)先隊(duì)列
RTP優(yōu)先隊(duì)列是一種解決語(yǔ)音服務(wù)質(zhì)量的簡(jiǎn)單技術(shù),期原理就是將承載語(yǔ)音的RTP數(shù)據(jù)包送入優(yōu)先級(jí)隊(duì)列使其得到優(yōu)先轉(zhuǎn)發(fā)。
RTP識(shí)別語(yǔ)音的UDP數(shù)據(jù)包端口,這些數(shù)據(jù)包通常使用16384~32767的偶數(shù)端口發(fā)送。
RTP優(yōu)先隊(duì)列可以和前面的任何一種隊(duì)列包括FIFO、PQ、CQ、WFQ、CBWFQ、LLQ結(jié)合使用,但是它的優(yōu)先級(jí)是最高的。即使RTP和LLQ一起使用,RTP的優(yōu)先級(jí)也比LLQ高。
interface Serial0/0
ip rtp priority 16384 16383 256
16384最低UDP端口號(hào),16383端口增量,帶寬256kbps
5、擁塞避免
隨機(jī)早期預(yù)檢測(cè)(RED)
給隊(duì)列設(shè)定兩個(gè)門(mén)限值:最小門(mén)限和最大門(mén)限,當(dāng)隊(duì)列的平均長(zhǎng)度小于最小門(mén)限時(shí),不丟棄數(shù)據(jù)包;
當(dāng)隊(duì)列的平均長(zhǎng)度在最小門(mén)限和最大門(mén)限之間時(shí),RED開(kāi)始隨機(jī)丟棄數(shù)據(jù)包;當(dāng)隊(duì)列的平均長(zhǎng)度大于最高門(mén)限時(shí),丟棄尾部所有的數(shù)據(jù)包。
加權(quán)隨機(jī)早期預(yù)檢測(cè)(WRED)
WRED和RED的原理一樣,但是WRED可以根據(jù)不同的IP優(yōu)先級(jí)或DSCP值,設(shè)定不同的最小門(mén)限、最大門(mén)限和丟棄概率,從而對(duì)不同優(yōu)先級(jí)的數(shù)據(jù)包提供不同的丟棄特性。
WRED不能和PQ、CQ、WFQ隊(duì)列同時(shí)使用。
配置基于IP Precedence的WRED
random-detect
根據(jù)IP優(yōu)先級(jí)設(shè)置數(shù)據(jù)包的最小門(mén)限值、最大門(mén)限值、丟棄數(shù)據(jù)包的丟棄概率(該例中概率應(yīng)該為1/10)
random-detect precedence 1 10 20 10
配置基于DSCP的WRED
random-detect dscp-based
根據(jù)DSCP設(shè)置數(shù)據(jù)包的最小門(mén)限值、最大門(mén)限值、丟棄數(shù)據(jù)包的丟棄概率(該例中概率應(yīng)該為1/10)
random-detect dscp af22 10 20 10
設(shè)置計(jì)算隊(duì)列平均長(zhǎng)度的權(quán)重因子(默認(rèn)值為9)
random-detect exponential-weighting-constant 9
查看WRED隊(duì)列配置
show queueing int s0/0
基于流的加權(quán)隨機(jī)早期預(yù)檢測(cè)(FB-WRED)
WRED中,只用TCP流會(huì)對(duì)丟包做出反應(yīng)并降低速率;而UDP等非自適應(yīng)流并不會(huì)對(duì)丟包做出反應(yīng),因此UDP等非自適應(yīng)流在擁塞時(shí)發(fā)送分組的速率將比自適應(yīng)流高得多。
FB-WRED對(duì)WRED除了改進(jìn),他對(duì)占用隊(duì)列資源多余公平份額的流將得到懲罰。
FB-WRED根據(jù)流和IP優(yōu)先級(jí)(或者DSCP值)把到達(dá)的數(shù)據(jù)包放到不同的隊(duì)列中,并且計(jì)算每個(gè)活動(dòng)流的公平隊(duì)列資源份額(隊(duì)列長(zhǎng)度/活動(dòng)流的數(shù)目),
對(duì)于占用隊(duì)列資源多余公平份額的流將得到懲罰。方法是通過(guò)降低隊(duì)列的WRED最大門(mén)限值來(lái)加大分組的丟棄概率。
新的最大門(mén)限值=最小門(mén)限值+{(最大門(mén)限值-最小門(mén)限值)/ 2}
配置FB-WRED(必須先配置WRED)
random-detect flow
設(shè)置平均深度因素(即放大因子,默認(rèn)值為4)
random-detect flow average-depth-factor 4
設(shè)置基于流的WRED的數(shù)據(jù)流數(shù)目
random-detect flow count 32
查看WRED隊(duì)列配置
show queueing int s0/0
基于類(lèi)的加權(quán)隨機(jī)早期預(yù)檢測(cè)(CB-WRED)
CB-WRED可以和CBWFQ、Shaping結(jié)合,而不能與FB-WRED、LLQ、Policing結(jié)合。
class-map match-any HTTP-FTP
match protocol http
match protocol ftp
policy-map MY-POLICY
class HTTP-FTP
bandwidth 512
random-detect
random-detect precedence 0 20 30 10
interface Serial0/0
bandwidth 1024
service-policy output MY-POLICY
此例啟用基于優(yōu)先級(jí)的WRED與CBWFQ結(jié)合。
查看命令
show class-map
show policy-map
show policy-map int s0/0
6、流量×××(Shaping)
流量×××的目的是平滑流量,流量×××?xí)殉鲆?guī)定速率的數(shù)據(jù)緩沖起來(lái),不是丟棄,鏈路的平均流量速率較大,但會(huì)造成數(shù)據(jù)的延時(shí)加大或延時(shí)抖動(dòng)。
令牌桶的相關(guān)名詞:
CIR:承諾信息速率,單位bps
PRI:承諾信息速率,單位bps
Bc:正常突發(fā)量的大小,單位為字節(jié)
Be:超額突發(fā)量的大小,單位為字節(jié)
Tc: 時(shí)間間隔
CIR=Bc/Tc
當(dāng)個(gè)令牌桶,桶的大小為Bc+Be;
令牌以CIR的速率添加到令牌桶中;
當(dāng)數(shù)據(jù)包要轉(zhuǎn)發(fā)出去,如果無(wú)法從令牌桶中獲取足夠的令牌,就將數(shù)據(jù)包緩存起來(lái),都有足夠的令牌在發(fā)送。數(shù)據(jù)包發(fā)送的平均速率不超過(guò)CIR,但某時(shí)刻可以一超過(guò)CIR的速率Bc+Be發(fā)送。
GTS通用流量×××實(shí)在軟件隊(duì)列之前又增加一個(gè)隊(duì)列來(lái)實(shí)施,這一隊(duì)列采用的是WFQ。GTS可以與FIFO、PQ、CQ、WFQ配合使用。
CLI配置法
interface Serial0/1
traffic-shape rate 8000 1500 1000 1000
MQC配置法
access-list 100 permit icmp any any
class-map match-all ICMP
match access-group 100
policy-map TEST
class ICMP
shape average 8000 1000 1000
interface Serial0/1
service-policy output TEST
查看命令
show traffic-shape
show traffic-shape statistics
7、流量監(jiān)管(Policing)
流量監(jiān)管可以應(yīng)用在接口的出和入兩個(gè)方向上。分為單桶單速雙色、雙桶單速三色、雙桶雙速三色。
流量監(jiān)管的目的是限速,流量監(jiān)管會(huì)把超出規(guī)定速率的丟棄或者標(biāo)記便于后繼的路由器進(jìn)行處理,鏈路的流量速率有較大起伏,整體平均帶寬低,但是不會(huì)造成數(shù)據(jù)包延時(shí)增加。
令牌桶的相關(guān)名詞:
CIR:承諾信息速率,單位bps
PRI:承諾信息速率,單位bps
Bc:正常突發(fā)量的大小,單位為字節(jié)
Be:超額突發(fā)量的大小,單位為字節(jié)
Tc: 時(shí)間間隔
CIR=Bc/Tc
單桶單速雙色
單個(gè)令牌桶,桶的大小為Be,而不是Bc+Be;
令牌以CIR的速率添加到令牌桶中;
當(dāng)數(shù)據(jù)包要轉(zhuǎn)發(fā)出去,如果可以從令牌桶中獲取足夠的令牌,則成為Conforn,此時(shí)桶內(nèi)的令牌數(shù)為之前的令牌數(shù)減去數(shù)據(jù)包的大?。蝗绻绶◤牧钆仆爸蝎@取足夠的令牌,則成為Exceed,此時(shí)桶內(nèi)的令牌數(shù)不變。
CLI配置法
interface Serial0/1
rate-limit output 8000 1500 2000 conform-action transmit exceed-action drop
MQC配置法
access-list 100 permit icmp any any
class-map match-all ICMP
match access-group 100
policy-map TEST
class ICMP
police cir 8000 bc 1500 be 1000
conform-action transmit
exceed-action drop
interface Serial0/1
service-policy input TEST
查看命令
show class-map
show policy-map
show policy-map int s0/0
雙桶單速三色
兩個(gè)令牌桶,TB1的大小為Bc,TB2的大小為Be;
令牌以CIR的速率添加到令牌桶中TB1中,當(dāng)TB1滿后,令牌溢出到TB2中。
當(dāng)數(shù)據(jù)包要轉(zhuǎn)發(fā)出去,如果可以從令牌桶TB1中獲取足夠的令牌,則成為Conforn,此時(shí)TB1的令牌數(shù)為之前的令牌數(shù)減去數(shù)據(jù)包的大小,TB2的令牌數(shù)不變;
當(dāng)數(shù)據(jù)包要轉(zhuǎn)發(fā)出去,如果無(wú)法從令牌桶TB1中獲取足夠的令牌,但能從令牌桶TB2中獲取足夠的令牌,則成為Exceed,此時(shí)TB1的令牌數(shù)不變,TB2的令牌數(shù)為之前的令牌數(shù)減去數(shù)據(jù)包的大??;
當(dāng)數(shù)據(jù)包要轉(zhuǎn)發(fā)出去,如果無(wú)法從令牌桶TB1中獲取足夠的令牌,也無(wú)法從令牌桶TB2中獲取足夠的令牌,則成為Violate,此時(shí)TB1、TB2的令牌數(shù)不變。
access-list 100 permit icmp any any
class-map match-all ICMP
match access-group 100
policy-map TEST
class ICMP
police cir 8000 bc 1500 be 1000
conform-action transmit
exceed-action drop
violate-action drop
interface Serial0/1
service-policy input TEST
查看命令
show class-map
show policy-map
show policy-map int s0/0
雙桶雙速三色
兩個(gè)令牌桶,TB1的大小為Be,TB2的大小為Bc;
令牌以PIR的速率添加到令牌桶中TB1中,以CIR的速率添加到令牌桶中TB2中,PIR>=CIR;
當(dāng)數(shù)據(jù)包要轉(zhuǎn)發(fā)出去,如果可以從令牌桶TB1中獲取足夠的令牌,也可以從令牌桶TB2中獲取足夠的令牌,則成為Conforn,此時(shí)TB1的令牌數(shù)為之前的令牌數(shù)減去數(shù)據(jù)包的大小,TB2的令牌數(shù)也為之前的令牌數(shù)減去數(shù)據(jù)包的大?。?/p>
當(dāng)數(shù)據(jù)包要轉(zhuǎn)發(fā)出去,如果可以從令牌桶TB1中獲取足夠的令牌,但不能從令牌桶TB2中獲取足夠的令牌,則成為Exceed,此時(shí)TB1的令牌數(shù)為之前的令牌數(shù)減去數(shù)據(jù)包的大小,TB2的令牌數(shù)不變;
當(dāng)數(shù)據(jù)包要轉(zhuǎn)發(fā)出去,如果無(wú)法從令牌桶TB1中獲取足夠的令牌,也無(wú)法從令牌桶TB2中獲取足夠的令牌,則成為Violate,此時(shí)TB1、TB2的令牌數(shù)不變。
access-list 100 permit icmp any any
class-map match-all ICMP
match access-group 100
policy-map TEST
class ICMP
police cir 8000 bc 1500 pir 8000 be 1500
conform-action transmit
exceed-action drop
violate-action drop
interface Serial0/1
service-policy input TEST
查看命令
show class-map
show policy-map
show policy-map int s0/0