「QoS」- 流量整形 | Traffic Shaping | 控制发包速度

当从高速链路向低速链路传输数据,或发生突发流量时,带宽会在低速链路出口处出现瓶颈,导致数据丢失严重;

描述

该场景下,需要在进入高速链路的设备出口处(Outbound)进行流量整形;

流量整形,是种主动调整流量输出速率的措施,通常是为了使报文速率与下游设备相匹配,使流量适配下游设备可供给的网络资源,避免不必要的报文丢弃和拥塞,

其对输出报文的速率进行控制,使报文以均匀的速率发送出去

在网络边缘,监控网络流量,通常作用在接口出方向;
对于进出的不同流量规定带宽占用比例,让不同的业务有不同的流量边界

缓存超出策略 / 协定 SLA 规定的超额流量
需要内存去缓存超额流量,可能会带来延迟和抖动
较少的丢包,因而较少导致重传
不能重标记

通过在上游设备的接口出方向配置流量整形,将上游不规整的流量进行削峰填谷,输出一条比较平整的流量,从而解决下游设备的瞬时拥塞问题。

原理

相关技术

通常使用 缓冲区令牌桶 来实现流量整型:

  • 缓冲区:当报文的发送速度过快时,首先在缓冲区进行缓存,
  • 令牌桶:在令牌桶的控制下,再均匀地发送这些被缓冲的报文。可使用的令牌桶类型:单速单桶;评估结果只有两种:符合(Green);超标(Red);

基于队列的流量整形

对接口的每个队列进行流量整形,区分优先级;

在出队的时候,针对无需整形的报文,将直接转发;

在出队的时候,针对需要整形的报文,则先进行令牌桶评估:

  • 如果数据包速率符合要求,标记为绿色,并转发;
  • 如果数据包速率超标,则当前正在出队的数据包仍然转发出去,同时,将该数据包所在队列的状态改为不可调度,等令牌桶填充了新的令牌时再调度此队列。队列的状态改为不可调度后,该队列允许报文继续入队,但入队满了的时候会丢弃报文。因此,虽然流量整形使超额的数据能够从接口平滑地输出,但并不表示流量整形永远不会丢包;

针对其使用队列缓存,所以报文的时延会增加;

基于接口的流量整形

限制接口发送的所有报文的总速率,是对整个出接口进行流量整形,不区分优先级;

在出队的时候,对所有队列的数据包总和进行令牌桶评估:
如果数据包总速率符合要求,标记为绿色,并转发;
如果数据包总速率超标(即令牌桶中的令牌不足),标记为红色,接口暂停调度,等令牌足够时再继续调度;

应用

在企业网络中

总部与分支机构通过 ISP 网络使用专线相连。分支机构想要访问 Internet 必须通过总部;

如果所有分支机构同时访问 Internet,可能导致访问 Internet 的 Web 流量产生拥塞,从而被丢弃;

如图所示,为了防止 Web 流量的丢失,可以在企业分支机构的流量进入企业总部之前配置流量整形;

一般用于接口出方向,多用于流量限速,对于丢包敏感流量(如:上网、下载等),推荐使用;