当从高速链路向低速链路传输数据,或发生突发流量时,带宽会在低速链路出口处出现瓶颈,导致数据丢失严重;
描述
该场景下,需要在进入高速链路的设备出口处(Outbound)进行流量整形;
流量整形,是种主动调整流量输出速率的措施,通常是为了使报文速率与下游设备相匹配,使流量适配下游设备可供给的网络资源,避免不必要的报文丢弃和拥塞,
其对输出报文的速率进行控制,使报文以均匀的速率发送出去
在网络边缘,监控网络流量,通常作用在接口出方向;
对于进出的不同流量规定带宽占用比例,让不同的业务有不同的流量边界
缓存超出策略 / 协定 SLA 规定的超额流量
需要内存去缓存超额流量,可能会带来延迟和抖动
较少的丢包,因而较少导致重传
不能重标记
通过在上游设备的接口出方向配置流量整形,将上游不规整的流量进行削峰填谷,输出一条比较平整的流量,从而解决下游设备的瞬时拥塞问题。
原理
相关技术
通常使用 缓冲区 和 令牌桶 来实现流量整型:
- 缓冲区:当报文的发送速度过快时,首先在缓冲区进行缓存,
- 令牌桶:在令牌桶的控制下,再均匀地发送这些被缓冲的报文。可使用的令牌桶类型:单速单桶;评估结果只有两种:符合(Green);超标(Red);
基于队列的流量整形
对接口的每个队列进行流量整形,区分优先级;
在出队的时候,针对无需整形的报文,将直接转发;
在出队的时候,针对需要整形的报文,则先进行令牌桶评估:
- 如果数据包速率符合要求,标记为绿色,并转发;
- 如果数据包速率超标,则当前正在出队的数据包仍然转发出去,同时,将该数据包所在队列的状态改为不可调度,等令牌桶填充了新的令牌时再调度此队列。队列的状态改为不可调度后,该队列允许报文继续入队,但入队满了的时候会丢弃报文。因此,虽然流量整形使超额的数据能够从接口平滑地输出,但并不表示流量整形永远不会丢包;
针对其使用队列缓存,所以报文的时延会增加;
基于接口的流量整形
限制接口发送的所有报文的总速率,是对整个出接口进行流量整形,不区分优先级;
在出队的时候,对所有队列的数据包总和进行令牌桶评估:
如果数据包总速率符合要求,标记为绿色,并转发;
如果数据包总速率超标(即令牌桶中的令牌不足),标记为红色,接口暂停调度,等令牌足够时再继续调度;
应用
在企业网络中
总部与分支机构通过 ISP 网络使用专线相连。分支机构想要访问 Internet 必须通过总部;
如果所有分支机构同时访问 Internet,可能导致访问 Internet 的 Web 流量产生拥塞,从而被丢弃;
如图所示,为了防止 Web 流量的丢失,可以在企业分支机构的流量进入企业总部之前配置流量整形;
一般用于接口出方向,多用于流量限速,对于丢包敏感流量(如:上网、下载等),推荐使用;