[论文解读] Merlin: A Language for Provisioning Network Resources
Merlin 是一种高级、声明式的编程语言,用于在软件定义网络中指定端到端网络策略,使管理员能够表达数据包分类、转发路径、转换操作以及带宽约束。该系统使用混合整数规划和有限自动机技术,将这些策略编译为高效、基于约束的配置,同时通过验证器实现动态自适应,确保策略修改不违反全局约束——在真实世界拓扑中展示了可扩展性和表达能力。
This paper presents Merlin, a new framework for managing resources in software-defined networks. With Merlin, administrators express high-level policies using programs in a declarative language. The language includes logical predicates to identify sets of packets, regular expressions to encode forwarding paths, and arithmetic formulas to specify bandwidth constraints. The Merlin compiler uses a combination of advanced techniques to translate these policies into code that can be executed on network elements including a constraint solver that allocates bandwidth using parameterizable heuristics. To facilitate dynamic adaptation, Merlin provides mechanisms for delegating control of sub-policies and for verifying that modifications made to sub-policies do not violate global constraints. Experiments demonstrate the expressiveness and scalability of Merlin on real-world topologies and applications. Overall, Merlin simplifies network administration by providing high-level abstractions for specifying network policies and scalable infrastructure for enforcing them.
研究动机与目标
- 解决现有 SDN API 在管理涉及带宽、中间盒和复杂数据包转换的复杂、端到端策略时表达能力不足的问题。
- 提供一个统一的高级编程接口,抽象化交换机、中间盒和终端主机,简化网络管理。
- 通过验证器实现动态策略自适应,验证策略修改的同时保持全局约束不变。
- 设计一个编译器,利用先进的编译技术将高层策略翻译为高效、正确的底层配置。
- 通过真实世界网络拓扑和性能评估,展示该方法的表达能力和可扩展性。
提出的方法
- Merlin 语言采用声明式语法,使用逻辑谓词进行数据包分类,使用正则表达式指定路径,使用 Presburger 算术处理带宽约束。
- 编译器将策略转换为统一的逻辑拓扑,以建模网络结构和策略约束。
- 对于带宽受限的流量,它将问题建模为混合整数规划,以求解多商品流问题的变种。
- 对于无约束流量,它使用有限自动机和正则表达式特性,高效生成转发树。
- 系统采用带可配置启发式策略的约束求解器,以在尊重全局限制的前提下分配带宽。
- 运行时验证器通过验证策略修改(如带宽变更、路径更新)并确保不违反全局约束,实现动态自适应。
实验结果
研究问题
- RQ1如何通过一种高级语言统一表达包含数据包分类、转发路径、转换操作和带宽约束的丰富网络策略?
- RQ2哪些编译技术能够高效地将高层策略翻译为在多种网络元素上正确且可扩展的底层配置?
- RQ3如何在不违反全局网络约束的前提下安全地管理动态策略更新?
- RQ4在分布式、策略委托的环境中,验证策略修改的性能开销是多少?
- RQ5该系统能否在真实世界的数据中心和企业网络拓扑中保持正确性和响应性的同时实现可扩展性?
主要发现
- Merlin 编译器成功地以低编译延迟配置并部署真实世界的数据中心和企业网络,展示了良好的可扩展性。
- 通过验证器进行策略验证,对于数万个语句和分配,可在毫秒内完成,支持快速自适应。
- 正则表达式验证的扩展性为二次方,对于包含 1,000 个节点的复杂表达式,耗时约 3.5 秒,但此类复杂度在实际部署中极不可能出现。
- 使用 AIMD 和 MMFS 验证器的动态自适应机制能够快速响应流量需求变化,如随时间变化的吞吐量轨迹所示。
- Merlin 通过强制执行带宽保证和高效路径分配,提升了数据处理和复制系统中应用的性能。
- 系统通过约束求解和对委托策略修改的形式化验证,实现了正确且全局一致的配置。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。