当前位置:网站首页>可编程全功能速率限制器设计硬件交换机
可编程全功能速率限制器设计硬件交换机
2022-06-23 17:37:00 【巴川笑笑生】
可编程全功能速率限制器设计硬件交换机
Fully Functional Rate Limiter Design on Programmable Hardware Switches
意义
速率限制器在网络QoS管理中发挥着关键作用,例如带宽分配和性能隔离。
挑战
速率限制器可以在网络中的不同位置实现(例如, NIC,交换机);然而,在某些情况下,网络运营商无法访问终端主机,速率限制只能在网络设备上实现(例如,移动核心网络,IaaS云提供裸机)。
但是可编程交换机的最近趋势为实现这样的网络内速率限制提供了机会。
虽然目前的可编程硬件交换机提供了一定程度的分组处理灵活性,但仍然存在一些约束:
- 交换机中的数据流是单向的,只能从交换机缓冲区到交换电路;
- 可编程性仅限于工作在交换机电路上,不适用于缓冲器;
- 交换机上的计算是有限的,不支持乘法和除法等操作和时间逻辑;
- 开关存储器难以扩展到多流处理。
方案
速率限制器的设计空间包括算法选择
- 泄漏桶
- 令牌桶
过度流量策略
- 流量整形
- 流量监管
实现方法
- 基于计时器
- 基于事件
由于可编程硬件交换机的限制,我们只能实现带流量监管的令牌桶算法。
在速率限制算法中,配置了承诺速率和突发大小两个参数,并维护了一个可变令牌。令牌随时间累积,以突发大小作为阈值进行约束。对于每个数据包,如果有足够的令牌,则发送数据包,减少令牌;否则,报文将被丢弃。令牌随时间累积可以通过两种方式实现。
速率限制器性能由于硬件限制而导致的不足:基于定时器的速率限制器对TCP不友好,吞吐量振荡;基于事件的速率限制器在速率控制上不灵活。
由于基于事件的速率限制器的报文到达时间间隔通常小于基于定时器的刷新时间间隔,甚至小于RTT。这样,令牌的积累、更新和消耗就会更及时,从而实现更平稳、更精确的速率控制。
然而,基于事件的速率限制器在速率控制方面不灵活。是因为在令牌更新时,时间间隔速率的乘积需要相乘,目前可编程硬件不支持因此只能配置有限的速率。
实现乘法。为了克服计算量有限的问题,我们提出了近似乘法表(AMT)。AMT的关键思想是预先计算中间结果并存储在表中,然后将运行时的所有计算转换为表查找。由于不能预先计算任意粒度和范围(如实数域)的乘法和乘法器的乘积,所以它实际上是一种近似算法。需要对存储空间(即粒度)和准确性(结果中的误差)之间的权衡进行分析。同样,我们也可以用近似除法表(ADT)进行除法。
内存效率优化。稀缺的交换机内存是一个潜在的可伸缩性限制(根据配置的速率限制的数量),从而提高了令牌桶算法的内存使用。
开放问题
总结
实现了一个具有以下特征的全功能速率限制器:
- 承诺速率饱和
- 低振荡
- 速率控制灵活性
- 高存储效率。
边栏推荐
- 【Qt】第十章:数据库
- Rancher2.6全新Monitoring快速入门
- [Wwise] there is no sound problem after Wwise is embedded in unity and packaged
- "Tribute to a century old master, collect pocket book tickets"
- 【剑指Offer】46. 把数字翻译成字符串
- [esp8266-01s] get weather, city, Beijing time
- 如何利用好每天的时间高效复习?
- 基于QT实现的图形学绘制系统 文档+项目源码及可执行EXE文件+系统使用说明书
- 【故障公告】取代 memcached 的 redis 出现问题造成网站故障
- SimpleDateFormat在多线程环境下存在线程安全问题。
猜你喜欢

Set up your own website (13)

QT implements a rule-based machinetranslation system course paper + assignment + project source code

leetcode刷题:哈希表07 (三数之和)

Redis cluster

基于FPGA的电磁超声脉冲压缩检测系统 论文+源文件
![[win10 vs2019 opencv4.6 configuration reference]](/img/51/62fb26123561b65f127304ede834a2.png)
[win10 vs2019 opencv4.6 configuration reference]

How far is the rise of cloud native industry applications from "available" to "easy to use"?

『忘了再学』Shell流程控制 — 39、特殊流程控制语句
![微信小程序报错[ app.json 文件内容错误] app.json: app.json 未找到](/img/ab/5c27e1bb80ad662d1a220d29c328e0.png)
微信小程序报错[ app.json 文件内容错误] app.json: app.json 未找到

【華中科技大學】考研初試複試資料分享
随机推荐
Landing of global organizational structure control
Theory of technology that must be learned by chip manufacturers (4-1) clock technology and reset Technology
五星认证!知道创宇通过中国信通院内容审核服务系统评测
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):...
【剑指Offer】45. 把数组排成最小的数
org. apache. ibatis. binding. BindingException: Invalid bound statement (not found):...
一元二次方程到规范场
SimpleDateFormat在多线程环境下存在线程安全问题。
信用卡产品开发周期从23周缩短至9周,银行运维组织如何转向敏捷?
leetcode刷题:哈希表04 (两数之和)
leetcode刷题:哈希表05 (四数相加 II)
《致敬百年巨匠 , 数藏袖珍书票》
STM32(九)------- CAN
Leetcode question brushing: hash table 03 (happy number)
leetcode刷题:哈希表03 (快乐数)
【Qt】第三、四章:窗口部件、布局管理
Dive Into Deep Learning——1、前言
Counter attack and defense (2): counter strategy against samples
Paper reading (55):dynamic multi robot task allocation under uncertainty and temporary constraints
可编程的,协议独立的软件交换机(论文阅读)