狂热的

一种网络编程语言。现代网络提供各种相互关联的服务,包括路由、流量监控、负载平衡和访问控制。不幸的是,用于编程当今网络的语言缺乏现代特性——它们通常定义在底层硬件提供的低抽象级别上,甚至不能为模块化编程提供基本的支持。因此,网络程序往往很复杂,容易出错,并且难以维护。本文提出了一种高级语言Frenetic,用于编程分布式网络交换机集合。Frenetic提供了一种用于分类和聚合网络流量的声明式查询语言,以及一个用于描述高级分组转发策略的功能性反应式组合器库。与以前在这个领域的工作不同,这些构造通过设计是完全组合的,这有助于模块化推理并实现代码重用。这一重要特性是由Frenetic的新型运行时系统实现的,该系统管理与在物理交换机上安装、卸载和查询低级数据包处理规则相关的所有细节。总体而言,本文的主要贡献有三点:(1)分析了网络编程语言的发展现状,指出了其主要局限性;(2) 我们提出了一个语言设计来解决这些局限性,使用一系列的例子来激励和验证我们的选择;(3) 我们描述了该语言的一个实现,并在几个基准测试中评估了它的性能。