一般来说,两者都是通过令牌桶算法实现的。我想知道它们是如何在硬件上真正实现的,即 ASIC 或 NPU 芯片。
根据我从 Cisco 找到的一篇在线文章Comparing Traffic Policing and Traffic Shaping for Bandwidth Limiting,它说关键的实现差异是如何补充令牌。
===========================整形======================= ==========================
引用:
整形使用每秒比特 (bps) 值以定时间隔递增令牌桶。整形器使用以下公式:
Tc = Bc/CIR(以秒为单位)
在这个等式中,Bc 代表承诺突发,CIR 代表承诺信息速率。
问题:根据描述,这听起来像是漏桶算法。对我来说,所以
1)这是基于硬件上的定时器实现的吗?
2)在线卡上配置大量整形策略的情况下,我想这会导致大量不同的Tc。那会影响性能吗?
3)跟进2),我能想到的另一种实现方式是,所有令牌桶都以固定的足够小的间隔更新,但是每个令牌桶都使用每个触发器的不同令牌进行更新。这是一个实用的选择吗?
==========================警务======================== ======================
引用:
相比之下,基于类的监管和速率限制会不断地将令牌添加到存储桶中。具体来说,令牌到达率计算如下:
(数据包之间的时间(等于 t-t1)* 监管器速率)/每字节 8 位
换句话说,如果数据包的先前到达时间是 t1,而当前时间是 t,则桶会根据令牌到达率更新 t-t1 个字节
问题:
1)这是否意味着保留了时间戳?对于每个数据包,我们进行这个计算?
2) 如前所述,如果不同的策略策略共享相同的速率和突发,它们可以在硬件上共享相同的速率配置资源,因此有助于大规模配置。使用上面的这个公式,这个速率配置文件是如何工作的?以及如何共享?
提前致谢,