流量监管与流量整形技术详解
概述
流量监管和流量整形是一类通过对流量规格的监督来限制流量及其资源使用的流控策略。简单来说,就是流量限速。
一、流量监管技术
1.1 优点
- 可实现对不同类别的报文分别进行限速
- 不需要缓存资源,时延小
1.2 缺点
- 当链路空闲时,造成带宽浪费
- 丢弃的流量可能需要进行重传,带来比较高的丢包率
- 抗突发流量能力弱
1.3 应用特点
- 通常在靠近需要限速源的入方向配置流量监管,限制总流量的同时保证各类流量的最低带宽
- 可以配置在出方向,也可以配置在入方向
- 超额的流量将会直接丢弃,具有比较高的丢包率
- 可以根据接口限速,也可以根据MQC流策略来限速
二、流量整形技术
2.1 优点
- 可实现对不同报文分别进行限速
- 缓冲机制可减少带宽浪费,减少流量重传
- 丢包量少,抗突发能力强
2.2 缺点
2.3 应用特点
- 只能在设备的出接口运用
- 引入缓存机制,以额定的流量向外发送数据
- 超额的流量将会缓存起来,按约定的速率往外释放流量
- 减少了丢包率,增加了流量的平稳性
- 缓存满了依然会丢包,只是相对来说减少了丢包率
2.4 为什么流量整形只运用在出接口方向?
| 方向 | 说明 |
|---|
| 出接口方向 | 对下游设备发送的流量起到平滑平稳的控制作用 |
| 入接口方向 | 是对设备CPU本身做限速整形,没有必要,因为设备的处理速度本身就非常快 |
三、流量监管和流量整形的区别
| 对比项 | 流量监管(CAR) | 流量整形(GTS) |
|---|
| 核心技术 | 都采用令牌桶技术控制流量 | 都采用令牌桶技术控制流量 |
| 对超限流量处理 | 直接丢弃 | 缓存后按约定速率发送 |
| 丢包率 | 较高 | 较低 |
| 延迟 | 小 | 可能增加 |
| 缓存需求 | 不需要 | 需要 |
| 抗突发能力 | 弱 | 强 |
核心区别:流量监管对超过流量限制的报文进行丢弃;而流量整形则将超过流量限制的报文缓存在队列中,通过约定的速率往外释放流量。
四、令牌桶技术(Token Bucket)
4.1 单速单桶
关键参数
| 参数 | 全称 | 说明 |
|---|
| CIR | Committed Information Rate(承诺信息速率) | 向C桶中投放令牌的速率,表示C桶允许传输或转发报文的平均速率 |
| CBS | Committed Burst Size(承诺突发尺寸) | C桶的容量,表示C桶瞬间能够通过的承诺突发流量 |
注意:
- 当CBS > CIR时,才可能有突发流量
- 当CBS = CIR时,无法通过突发流量
工作流程
令牌投放规则:
- 系统按照CIR速率向C桶中投放令牌
- 当 TC < CBS 时,令牌数增加
- 当 TC ≥ CBS 时,令牌数不增加
报文处理规则:
| 条件 | 标记 | 处理 | 令牌变化 |
|---|
| B ≤ Tc | 绿色 | 报文通过 | Tc 减少 B |
| B > Tc | 红色 | 报文丢弃 | Tc 不减少 |
特点:单速单桶不允许有突发流量
4.2 单速双桶
关键参数
| 参数 | 全称 | 说明 |
|---|
| CIR | Committed Information Rate(承诺信息速率) | 向C桶中投放令牌的速率 |
| CBS | Committed Burst Size(承诺突发尺寸) | C桶的容量 |
| EBS | Excess Burst Size(超额突发尺寸) | E桶的容量,表示E桶瞬间能够通过的超出突发流量 |
工作流程
- Tc:表示C桶中的令牌数量
- Te:表示E桶中的令牌数量
- B:表示到达报文的大小
令牌投放规则:
| 条件 | 操作 |
|---|
| Tc < CBS | C桶增加令牌 |
| Tc = CBS 且 Te < EBS | E桶增加令牌 |
| Tc = CBS 且 Te = EBS | 都不增加 |
报文处理规则:
| 条件 | 标记 | 处理 | 令牌变化 |
|---|
| B ≤ Tc | 绿色 | 报文通过 | Tc 减少 B |
| Tc < B ≤ Te | 黄色 | 报文通过 | Te 减少 B |
| Te < B | 红色 | 报文丢弃 | Tc、Te 都不减少 |
4.3 双速双桶
关键参数
| 参数 | 全称 | 说明 |
|---|
| CIR | Committed Information Rate(承诺信息速率) | 向C桶中投放令牌的速率 |
| CBS | Committed Burst Size(承诺突发尺寸) | C桶的容量 |
| PIR | Peak Information Rate(峰值信息速率) | 向P桶中投放令牌的速率,PIR必须大于CIR |
| PBS | Peak Burst Size(峰值突发尺寸) | P桶的容量 |
工作流程
- Tc:表示C桶中的令牌数量
- Tp:表示P桶中的令牌数量
- B:表示到达报文的大小
令牌投放规则:
- 系统按照PIR速率向P桶中投放令牌
- 系统按照CIR速率向C桶中投放令牌
- 当 Tp < PBS 时,P桶令牌数增加
- 当 Tc < CBS 时,C桶令牌数增加
报文处理规则:
| 条件 | 标记 | 处理 | 令牌变化 |
|---|
| B > Tp | 红色 | 报文丢弃 | Tc、Tp 都不减少 |
| Tc < B ≤ Tp | 黄色 | 报文通过 | Tp 减少 B |
| B ≤ Tc | 绿色 | 报文通过 | Tp、Tc 都减少 B |
4.4 三种令牌桶模式的关系
| 条件 | 效果 |
|---|
| 单速双桶模式中,EBS = 0 | 效果与单速单桶相同 |
| 双速双桶模式中,PIR = CIR | 效果与单速单桶相同 |
4.5 令牌桶总结
单速单桶
- CIR:承诺信息速率,C桶允许传输或转发报文的平均速率
- CBS:C桶的最大容量,承诺突发尺寸
- 当CBS > CIR时,才有可能允许突发流量
- 令牌按CIR速率投放,CBS满了后多余令牌被丢弃
- 报文 ≤ 令牌 → 绿色通过,减少令牌
- 报文 > 令牌 → 红色丢弃,令牌不减少
单速双桶
- 在单速单桶基础上增加EBS(E桶容量)
- 闲置带宽产生的令牌超过CBS时,放入E桶
- 报文 ≤ C桶令牌 → 绿色通过,减少C桶令牌
- C桶令牌 < 报文 ≤ E桶令牌 → 黄色通过,减少E桶令牌
- 报文 > E桶令牌 → 红色丢弃,令牌不减少
双速双桶
- 增加PIR(峰值速率)和PBS(P桶容量)
- 按CIR速率向C桶投递令牌,按PIR速率向P桶投递令牌
- 报文 > P桶令牌 → 红色丢弃
- C桶令牌 < 报文 ≤ P桶令牌 → 黄色通过,减少P桶令牌
- 报文 ≤ C桶令牌 → 绿色通过,减少P桶和C桶令牌
五、配置方法
5.1 流量整形配置
| 配置方式 | 说明 |
|---|
| 基于接口的流量整形 | 直接在接口上配置整形参数 |
| 基于接口的自适应流量整形 | 根据网络状况动态调整整形参数 |
| 基于队列的流量整形 | 对特定队列进行整形 |
| 基于MQC实现流量整形 | 使用模块化QoS命令行配置 |
| 基于MQC实现自适应流量整形 | MQC方式配置自适应整形 |
5.2 流量监管配置
| 配置方式 | 说明 |
|---|
| 基于接口的流量监管 | 直接在接口上配置监管参数 |
| 基于MQC的流量监管 | 使用模块化QoS命令行配置 |
六、为什么整形使用的是单速单桶?
| 问题 | 说明 |
|---|
| 整形的目的 | 让下游设备平缓地接收自己发送的流量 |
| 单速单桶特点 | 不允许突发流量,输出平滑 |
| 双桶模式特点 | 允许突发流量输出 |
| 结论 | 如果使用双桶模式,将允许突发流量从接口发出,与整形的意义相违背 |
因此,流量整形通常采用单速单桶令牌桶机制,以确保输出流量的平滑性。
七、核心要点总结
| 技术 | 核心特点 | 适用方向 | 丢包情况 | 延迟情况 |
|---|
| 流量监管(CAR) | 直接丢弃超限流量 | 入方向/出方向 | 高 | 低 |
| 流量整形(GTS) | 缓存超限流量 | 仅出方向 | 低 | 可能增加 |
| 令牌桶模式 | 特点 | 适用场景 |
|---|
| 单速单桶 | 不允许突发,输出平滑 | 流量整形 |
| 单速双桶 | 允许一定突发(黄色报文) | 流量监管 |
| 双速双桶 | 区分承诺速率和峰值速率 | 精细化流量监管 |