QoS(ONT)
没有拥塞的网络中不需要QoS,但如果有语音业务,即使没有拥塞也建议为语音做QoS保障。
拥塞指的是数据包无法进入物理缓存,这时需要排队,当队列达到限定长度时,后续数据包会被丢弃。
延时的产生:
1. 处理延时,数据包解封装,查找路由表等
2. 队列延时,拥塞排队时,在队列中等待的时间
3. 串行延时,并串转换产生的延时
4. 传播延时,数据包在线路上传播的时间
QoS主要关注队列延时
数据包的丢弃有两种:
1. 尾部丢弃,容易产生TCP同步
2. 加权随机早期检测(WRED),是一种预丢弃技术
NBAR:基于网络的应用识别,开启此功能的路由器需检查数据包的第七层,所以特别耗CPU资源,另外它不能区分所有服务,如果公司自行开发的软件应用一个非well-known端口,可能会被NBAR视为垃圾流量。
网络类型:尽力而为、集成服务、差分服务
RSVP资源预留协议,是一种信令协议,可以查看路由表,协议号46,TCP和UDP端口都是3455
QoS三步:分类、标记、策略
分类时建议不要超过5类
Policy-map中配置的bandwidth指的是最小带宽,可以超越(CBWFQ);而priority指定的带宽是不可超越的,但会优先传送(LLQ)。
Queue-limit(尾部丢弃的队列长度)和random-detect(早期随机检测)是相互排斥的,只能配置一种。默认为queue-limit,长度为64(?)。
Fair-queue启用WFQ,只能用于class-default。
启动NBAR之后可以匹配到第七层
Match protocol http host <匹配主机名如
www.163.com>
Match protocol http url <匹配主机名后面的内容>
Match protocol http mime <匹配具体文件格式如*.JPG>
Match protocol rtp video <匹配视频>
Round Robin(RR)和weighted round robin(WRR)合起来就是CQ。WRR用于交换机。
PQ:最多将数据分为四类,即四个队列。按优先级顺序依次发送,低优先级数据只有等到高优先级的数据全部发送出去之后才能发送,且在发送过程中总要监测有没有高优先级数据来到,如果有则先转发高优先级数据。
在全局模式下,priority-list 1 interface f0/0 high <将f0/0的数据定义为高优先级>
Priority-list 1 protocol ip medium tcp ftp <将ftp数据定义为中等优先级>
Priority-list 1 queue-limit 10 20 30 40 <定义四种队列的长度>
在接口下应用PQ:priority-group 1
Round Robin定义16个队列0-15,其中0不可修改,优先级最高。1-15循环发送,期间监测0队列是否有数据,如果有就先发。可以手工指定1-15每个队列一次发送的字节数和包的个数,只要字节数或包个数有一个达到就转移发送下一个队列。
硬件队列只有在ATM设备上可以修改,其它设备不可以修改。
Show controller e2/1,其中的tx_limited 1(4)就是硬件队列长度,4指4个数据包。
WFQ基于流,每个流是一个队列,源目的地址、源目的端口号、协议、TOS(优先级)六元素相同即一个流。
CBWFQ基于类,通过class-map定义不同的类,对不同类分配不同的带宽,带宽大的队列被转发的机率越大。
PPT上讲WFQ只能用于2M以下的接口,这是错误的,百兆接口也可以配置fair-queue,查看接口时:
Queueing strategy: weighted fair(WFQ)
Output queue: 0/1000/64/0 (size/max total/threshold/drops)
Conversations 0/0/256 (active/max active/max total)
<最多256个队列,每个队列长度64个包,所有队列总包数最大1000,超过就丢弃>
CBWFQ为不同类分配带宽的方式必须相同,要么使用绝对带宽,要么使用百分比。但LLQ的PQ和CBWFQ可以不同。