深入理解 QOS 中的流量监管与流量整形技术

目录

深入理解 QOS 中的流量监管与流量整形技术

一、令牌桶算法:流量评估的基石

二、流量监管:网络流量的 “警察”

三、流量整形:网络流量的 “整形师”

四、流量监管与整形的区别

五、实际应用案例


在网络世界里,合理分配和管理带宽资源至关重要,这就如同在繁忙的城市道路中合理规划车辆通行一样。QOS(Quality of Service,服务质量)中的流量监管与流量整形技术,便是保障网络高效运行、优化用户体验的关键手段。接下来,让我们一同深入探究这两项技术。

一、令牌桶算法:流量评估的基石

在了解流量监管和整形之前,我们先来认识令牌桶算法。该算法在流量评估中扮演着核心角色,是理解后续技术的基础。

令牌桶可以看作是一个存放令牌的容器,系统会按照设定的速度往桶中投放令牌,当桶满时,多出的令牌会溢出,桶中的令牌数量不再增加。在评估流量时,每个报文经过都需要从桶中获取令牌,若桶中有足够令牌,报文可以被转发,此时流量被认为遵守约定值;若令牌不足,报文可能无法转发,流量则被判定为超标。

为了更清晰地理解,这里以单速单桶模式为例。在单速单桶中,涉及到几个关键参数:

  • 承诺信息速率(CIR):往桶中投放令牌的速率。比如,若 CIR 设置为每秒 10 个令牌,意味着系统每秒向桶中投放 10 个令牌。
  • 承诺突发尺寸(CBS):桶的容量。假设 CBS 为 100 个令牌,表示桶最多能容纳 100 个令牌。
  • TC(桶当前的令牌数量):实时反映桶中令牌的实际数量。

在实际应用场景中,当报文到达时,会依据报文大小与桶中令牌数量的关系进行处理。若报文大小小于等于 TC,报文被标记为绿色并转发,同时 TC 减少相应报文大小的令牌数量;若报文大小大于 TC,报文被标记为红色,通常会被丢弃,TC 保持不变。

下面是一段简单的 Python 代码模拟单速单桶模式下令牌桶算法对流量的评估过程:

class TokenBucket:
    def __init__(self, cir, cbs):
        self.cir = cir  # 承诺信息速率,每秒生成的令牌数
        self.cbs = cbs  # 桶的容量
        self.tokens = cbs  # 当前令牌数,初始化为桶的容量
        self.last_time = 0  # 上次更新令牌的时间

    def update_tokens(self, current_time):
        elapsed_time = current_time - self.last_time
        new_tokens = elapsed_time * self.cir
        self.tokens = min(self.cbs, self.tokens + new_tokens)
        self.last_time = current_time

    def process_packet(self, packet_size, current_time):
        self.update_tokens(current_time)
        if packet_size <= self.tokens:
            self.tokens -= packet_size
            return "绿色,报文转发"
        else:
            return "红色,报文丢弃"

你可以使用以下方式调用这个类:

# 假设CIR为10个令牌/秒,CBS为100个令牌
token_bucket = TokenBucket(10, 100)
# 模拟时间推进和报文处理
current_time = 0
packet_sizes = [15, 25, 30, 10]
for packet_size in packet_sizes:
    current_time += 1
    result = token_bucket.process_packet(packet_size, current_time)
    print(f"时间:{current_time},报文大小:{packet_size},结果:{result}")

除了单速单桶,令牌桶算法还有单速双桶和双速双桶等模式,每种模式在处理流量时都有其独特的规则和应用场景,在此不再赘述。

二、流量监管:网络流量的 “警察”

流量监管的主要作用是对网络流量进行限速,确保流量不会超出设定的阈值。它常被应用于企业内网或 ISP 网络中,对不同类型的流量进行精细化管理。

例如,在企业内网中,存在语音、视频和普通数据等多种流量,而出口带宽有限。此时,可以在路由器内网侧接口的入方向配置流量监管,通过匹配不同类型的流量,为它们分配相应的带宽资源。在实际配置中,可通过以下两种方式实现流量监管:

  1. 接口下配置

interface GigabitEthernet0/0/0
# 对整个接口的流量执行监管,限制速率为1Mbps,C桶大小为5000字节,P桶大小为8000字节(此时为单速双桶模式)
car inbound cir 1024 cbs 5000 pbs 8000
# 也可对符合ACL的流量执行监管
car inbound acl 3000 cir 1024 cbs 5000

在接口下配置流量监管时,还可以根据令牌桶算法对不同颜色的报文执行不同的动作。比如,绿色报文默认转发,黄色报文在转发的同时可进行 DSCP 重标记以降低优先级,红色报文则直接丢弃。
2. MQC(Modular QoS Command-Line Interface)方式配置

# 定义流分类,匹配ICMP流量
traffic classifier icmp_traffic
if-match acl 3000
# 定义流行为,对匹配的流量使用CAR进行监管,限制速率为1Mbps
traffic behavior icmp_behavior
car cir 1024
# 将流分类和流行为关联,创建策略
traffic policy icmp_policy
classifier icmp_traffic behavior icmp_behavior
# 在接口入方向应用策略
interface GigabitEthernet0/0/0
traffic-policy icmp_policy inbound

流量监管具有 “削峰不填谷” 的特点。当报文速率超出限制范围时,超出部分的报文会被丢弃;而在流量较低的时间段,限制速率不会降低,依然保持设定值。

三、流量整形:网络流量的 “整形师”

流量整形同样用于限速,但与流量监管不同的是,它对超额流量的处理方式是将其缓存到队列中,待接口有剩余带宽时再缓慢发出,从而实现 “削峰填谷” 的效果。

由于设备实现机制的限制,流量整形一般只能在出口配置。以接口下配置为例:

interface GigabitEthernet0/0/0
# 对接口流量进行整形,使用单速单桶模式,限制速率为1Mbps,C桶大小为5000字节
gts cir 1024 cbs 5000

除了接口下配置,还可以基于队列进行流量整形。在队列配置模板中,针对特定队列设置整形参数,例如:

queue-profile
queue 6
gts cir 1024 cbs 5000

流量整形能够有效避免流量突发对网络造成的冲击,确保网络流量的平稳传输。但由于需要缓存超额流量,可能会导致报文重传延迟较高,并且会占用一定的内存空间用于报文缓冲。

四、流量监管与整形的区别

流量监管和流量整形在多个方面存在差异,如下表所示:

比较项目流量监管流量整形
配置方式可在出接口和入接口配置只能在出接口配置
对超出速率报文的处理方式默认丢弃缓存到队列中
影响可能导致报文重传延迟过高
资源消耗不需要内存缓存报文占用内存空间缓冲报文
带宽利用不能充分利用电路空闲时的带宽能更好地利用电路空闲时的带宽

五、实际应用案例

在实际网络环境中,流量监管和整形技术的应用十分广泛。例如,某公司出口带宽为 1Gbps,公司内有视频流量和其他类型流量。公司要求在链路拥塞时,保证视频流量的最小带宽为 50Mbps,链路空闲时,视频流量最多可使用 100Mbps。

为实现这一需求,可以结合拥塞避免(如 CBQ 队列)和流量监管技术。首先,通过流分类匹配视频流量,并将其指定到 AF 队列中,配置 AF 队列的最小带宽为 50Mbps;然后,使用流量监管对视频流量进行限速,限制其最大带宽为 100Mbps。具体配置如下:

# 定义流分类,匹配视频流量
traffic classifier video_traffic
if-match acl 3001
# 定义流行为,将视频流量指定到AF队列,配置最小带宽为50Mbps
traffic behavior video_behavior
queue af bandwidth 5120
# 创建CBQ队列策略,将流分类和流行为关联
traffic policy cbq_policy
classifier video_traffic behavior video_behavior
# 在接口出方向应用CBQ队列策略
interface GigabitEthernet0/0/0
traffic-policy cbq_policy outbound
# 对视频流量进行流量监管,限制最大带宽为100Mbps
interface GigabitEthernet0/0/0
car outbound acl 3001 cir 102400

通过以上配置,在链路拥塞时,CBQ 队列能保证视频流量有 50Mbps 的带宽可用;在链路空闲时,视频流量可占用其他空闲带宽,但通过流量监管限制其最大使用带宽为 100Mbps,从而满足公司的网络需求。

流量监管和流量整形技术在网络优化中起着不可或缺的作用。通过合理运用这两项技术,我们能够更好地管理网络流量,提高网络的稳定性和用户体验。在实际应用中,需要根据网络的具体需求和特点,灵活选择和配置流量监管与整形策略,以打造高效、可靠的网络环境。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值