QOS概述(三)流量监管和流量整形
网络中出现拥塞现象很常见,如果不限制用户发送的业务流量,大量用户不断突发的业务数据就会使网络更加拥挤,为了实有限的网络资源能更好的发挥效用,更好地为更多的用户服务,必须对用户的业务流量加以限制。流量监管和流量整形就是一类通过对流量规格的监督来限制流量及其资源使用的流控策略。
目录
1、流量监管技术
流量监管TP(Traffic Policing)就是对流量进行控制,通过监督进入网络的流量速率,对超出部分的流量进行“惩罚”,使进入的流量被限制在一个合理的范围之内,从而保护网络资源和企业网用户的利益。使用CAR承诺访问速率(Committed Access Rate)来进行流量监管。流量监管功能可对接收或发送的流量进行限速控制,限制进入网络的突发流量,为网络提供了基本的QOS功能。
- 优点:可实现对不同类型的报文分别进行限速,可保证网络拥堵时,不同类型报文的都拥有一定的带宽。
- 缺点:当链路空闲时,造成带宽浪费;丢弃的流量可能要进行重传。
流量监管原理
流量监管分为三个部分:
1. Meter:通过令牌桶机制对网络流量进行度量,向 Marker 输出度量结果。
2. Marker:根据 Meter 的度量结果对报文进行染色,报文会被染成 green、yellow、red 三种颜色。
3. Action:根据 Marker 对报文的染色结果,对报文进行一些动作,动作包括:
- pass:对测量结果为“符合”的报文继续转发。
- pass + remark:修改报文内部优先级后再转发。
- discard:对测量结果为“不符合”的报文进行丢弃。
注:默认情况下,green、yellow进行转发、red报文丢弃。
经过流量监管,如果某流量速率超过标准,AR 可以选择降低报文优先级再进行转发或者直接丢弃。默认情况下,报文被丢弃。如图显示了流量监管时网络流量被限制在规定的速率范围内的速率曲线图,超过速率的部分被完全削除。
2、流量整形技术
流量整形TS(Traffic Shaping)的典型作用是限制流出某一网络的某一连接的正常流量与突发流量,使这类报文以比较均匀的速度向外发送,是一种主动调整流量输出速率的措施,故只能对输出的流量进行速率控制。常用GTS(Generic Traffic Shaping)技术来限制某类流量。
应用场景:当网络中上下游的接口带宽不匹配,尤其是上游接口的带宽资源大于下游的带宽资源时,容易在下游网络形成拥塞。如果不希望下游网络因为上游发送数据流量过大造成拥塞,可在上游的出接口配置流量整形,使上游发送的流量与下游接收的能力相匹配。报文可以均匀向外发送,而且部分超出规格的报文不直接丢弃,而是进行缓存,等待链路空闲的时候再发送出去。
流量整形原理
当下游设备的接口速率小于上游设备的接口速率或发生突发流量,在下游设备接口处可 能出现流量拥塞的情况,此时用户可以通过在上游设备的接口出方向配置流量整形,将上游不规整的流量进行削峰填谷,输出一条比较平整的流量,从而解决下游设备的拥塞问题。
流量整形是一种应用于子接口、接口或者队列的流量控制技术,可以对从接口上进过的所有报文或对从接口上经过的某类报文进行速率限制。流量整形也是通过令牌桶进行流量控制。处理流程图如下图所示:
具体处理流程如下:
1. 当报文到来的时候,首先对报文进行分类,使报文进入不同的队列。
2. 若报文进入的队列没有配置队列整形功能,则直接发送该队列的报文;否则,进入下一步处理。
3. 按用户设定的队列整形速率(CIR)向令牌桶中放置令牌:
- 如果令牌桶中有足够的令牌可以用来发送报文,则报文直接被发送,在报文被发送的同时,令牌做相应的减少。
- 如果令牌桶中没有足够的令牌,则将报文放入缓存队列,如果报文放入缓存队列时,缓存队列已满,则丢弃报文。
4. 缓存队列中有报文的时候,系统按一定的周期从缓存队列中取出报文进行发送,每次发送都会与令牌桶中的令牌数作比较,直到令牌桶中的令牌数减少到缓存队列中的报文不能再发送或缓存队列中的报文全部发送完毕为止。
注:队列整形后,如果该接口和子接口同时配置了端口整形,则系统还要逐级按照子接口整形速率、接口整形速率对报文流进行速率控制。其处理流程与队列整形相似,但不需要步骤1 和步骤2。
3、两者的区别
主要区别:
-
在进行报文流量控制时,流量监管是对超过流量限制的报文进行丢弃,而且流量监管一般在流量的入方向接口使用;而流量整形则将超过流量限制的报文缓存在队列中,等待链路空闲的时候再发送,流量整形一般使用在流量的出方向接口使用。
-
流量整形可能会与增加额外的延迟,而流量监控几乎不引入额外的延迟。
限速类型 | 优点 | 缺点 |
流量监管 | 可实现对不同报文的限速和重标记。 | 造成较高的丢包率,可能引发重传;链路空闲时带宽得不到充分利用。 |
流量整形 | 较少丢弃报文,充分利用带宽。 | 引入额外的时延和抖动,需要较多设备缓存资源。 |