50、路由器数据调度与分布式系统技术解析

路由器数据调度与分布式系统技术解析

一、数据包调度算法

1.1 快速堆的实现

在数据包调度中,为了计算最小值,可利用高效的数据结构。例如,芯片能够在一次内存访问时间内计算 32 个值的最小值。由于更新可能需要改变从叶子到根路径上所有父节点的值,且每次改变父节点值需要一次读内存和一次写内存操作,所以最坏情况下的内存访问次数等于 32 路堆最大高度的两倍,即 log₃₂N(N 为流的数量)。当 N 小于 32³ = 32K 时,计算最小值仅需六次内存访问。通过使用大基数对数,每个数据包的 log N 项在实践中可以变得非常小。

这里采用了高效的数据结构(P15),并以专用排序芯片的形式添加硬件(P5)。该芯片利用宽内存和局部性(P5b,利用局部性)来减少内存访问时间。另外,构建堆的第二种技术不使用宽字,而是采用流水线技术,相关内容在其他资料中有描述。这两种实现快速堆的方法代表了内存子系统设计策略中的两种(P5a、b,流水线和宽字并行)。

1.2 DRR 和虚拟时钟算法问题及解决方法

在 DRR 和虚拟时钟算法中,如果所有预留速率彼此相差较小倍数,基本思路效果良好。但如果速率相差几个数量级(如从遥测应用到视频),这两种方案会引入一种特殊的突发性问题。可以使用双队列技术来解决该问题,但这会增加实现的复杂性,在实际中可能并非必需。

若硬件不可用且 log n 成本显著,有两种降低计算量的方法:
- 方法一:牺牲截止时间的准确性以减少计算量(P3b)
- 操作步骤:将截止时间(标签)四舍五入为整数。例如,将原本的截止时间 100.13、115.27、61 四舍五入为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值