可编程数据包调度中一切皆重要

摘要:可编程的数据包调度允许在不需要硬件重新设计的情况下将调度算法部署到现有的交换机中。调度算法通过给数据包打上等级标签来指示其所需的优先级。可编程调度器通过按照等级描述的顺序为数据包提供服务来执行这些算法。 理想的可编程调度器是一种Push-In First-Out(PIFO)队列,通过将数据包推入队列的任意位置并仅从队列头部排出数据包来实现完美的数据包排序。然而,由于需要根据等级以行速率对数据包进行任意排序,所以在硬件上实现PIFO队列是具有挑战性的。 在过去的几年中,已经提出了各种技术,利用现有数据平面的可用资源来近似PIFO的行为。尽管有所希望,但迄今为止的方法只是近似了PIFO队列的某一个特征行为(即其调度行为或其接受控制)。 我们提出了PACKS,这是第一个完全近似PIFO队列所有行为的可编程调度器。PACKS通过智能地使用一组严格优先级队列来实现此功能。它利用数据包等级信息和入队时的队列占用水平来决定:是否接受数据包进入调度器以及如何将接受的数据包映射到不同的队列中。 我们在P4中完全实现了PACKS,并在实际工作负载上进行了评估。我们展示了PACKS:比最先进的方法更好地近似PIFO并具有可扩展性。我们还展示了PACKS在现有硬件(Intel Tofino)上以线速运行。

作者:Albert Gran Alcoz, Bal''azs Vass, G''abor R''etv''ari, Laurent Vanbever

论文ID:2308.00797

分类:Networking and Internet Architecture

分类简称:cs.NI

提交时间:2023-08-03

PDF 下载: 英文版 中文版pdf翻译中