共计 14434 个字符,预计需要花费 37 分钟才能阅读完成。
网络随着业务和流量的倒退,曾经变的无比简单,很难通过人力治理,因而业界提出了自智网络 (主动驾驶网络) 的概念。普林斯顿大学的 Nick Feamster 和 Jennifer Rexford 在本文中探讨了为什么网络须要自动化,以及达成这一指标的门路。原文: Why (and How) Networks Should Run Themselves
概要
随着人们日常生活中依赖的网络设备、零碎和应用程序越来越多,对网络的治理比以往任何时候都更加重要。应用程序对网络安全、可用性和性能的要求越来越高,并且要求在逾越不同协定和零碎的简单网络上实时解决网络问题,使得对网络的治理越来越艰难。就在网络管理的重要性日益晋升的时候,网络却曾经变得如此简单以至于仿佛无奈治理。在这样一个新时代,网络管理须要有根本性变更,而不只是闭合优化剖析个别协定。网络运营商须要数据驱动,基于机器学习的端到端模型,基于高级策略指标的应用程序性能优化,以及底层组件的整体视图。运营商须要可能基于分类和检测算法做出实时闭环决策,而不只是对网络检测数据执行离线剖析异样检测算法。换句话说,网络应该学会自我驱动。这篇论文探讨了这一概念,并探讨应该如何实现这一指标。达成这一雄心勃勃的指标须要将测量和实时控制更严密耦合在一起,并依附学习对网络应用和零碎进行推理和预测,而不是对个别协定进行闭合剖析。
1. 简介
古代网络应用曾经运行在一个前所未见的规模和范畴上。虚拟现实和加强事实须要实时响应,应用容器部署的微服务带来了流量负载的疾速变动,物联网 (IoT) 显著减少了连贯设施的数量,同时也带来了新的平安和隐衷问题。这些利用深刻了咱们的日常生活中,进步了对实时交互、高可用性、抵挡攻打的弹性、无处不在的拜访和大规模的冀望,因而无形中进步了网络管理的门槛。网络管理始终是一项值得致力的工作,但当初更为要害。
然而,网络管理依然是一项西西弗斯式的工作。随着用户需要和网络复杂性的持续增长,网络运营商开发并应用脚本和工具来帮忙他们布局、排除故障和爱护网络。网络钻研人员致力改良网络协议、优化设计、测量性能,但却始终无奈跟上网络的要求,因为不同的协定、动静的网络条件,以及它们与用户体验之间的关系正变得越来越简单。20 年前,咱们曾心愿 (并胜利的) 创立洁净、关闭的繁多协定、应用程序和零碎模型[4,24]。而明天,网络曾经过于简单,无奈进行闭合剖析。预测问题,如确定搜寻查问响应工夫将如何随缓存的地位而变动,更适宜基于测量数据的统计推理和机器学习[29]。
当然,咱们必须对网络做出扭转,使网络管理更容易,相似的话曾经说了很多年,但依然没有达到冀望的指标。问题的局部起因在于业界继续关注于个别协定的设计、了解和调整,咱们专一于更好的 BGP 模型,对 TCP、QUIC、DNS 或目前风行的协定进行优化。事实上,问题不在于协定,与单个协定相比,无奈对整体网络系统进行建模,使得运营商很难了解网络中正在产生的事件。软件定义网络 (SDN) 提供了更强的可编程性和集中控制,但控制器依然依赖于收集本人须要的数据,并在交换机中配置低级匹配规定,而 SDN 并不能扭转事实的网络化零碎过于简单、无奈用闭合模型进行剖析的事实。
作为网络钻研人员,必须扭转解决这些问题的办法。网络管理的一个雄心勃勃的指标是 自智网络 (self-driving network),其中(1) 网络测量由工作驱动,并与网络管制紧密结合,(2)网络管制依赖整个网络的学习和大规模数据分析,而不是单个协定的关闭模型。最近的倡导提出了这一高级指标[14,28],并与主动驾驶汽车进行类比,主动驾驶汽车能够做出决策,治理不确定性并升高危险,以实现某些工作(例如,返回某个目的地的交通)。本文具体探讨了这一指标,开发了自智网络的技术要求和个性,并概述了一个宽泛的、跨学科的钻研议程,能够让咱们离实现这一指标更近。
多年来,网络界始终致力于解决这一难题,从应用程序性能的预测模型 [19,29] 到基于网络流量剖析的统计异样和入侵检测算法 [2,7],不一而足。然而,目前的技术水平只是为创立真正的自智网络这一更为雄心勃勃的打算奠定了根底。现在,测量依然与网络管制拆散,并不可避免的将网络运维人员置于管制回路中,从而引入了不确定性以及造成误差的可能性。如何利用咱们所领有的技术,并使其既可能实时控制又具备分布式的长处,在网络(以及更宽泛的计算机科学) 畛域带来了全新的挑战:
从高级策略中派生测量、推理和管制的规定: 自智网络应该将与性能或安全性相干的高级指标作为输出,并独特得出 (1) 该网络应该收集的测量数据,(2)该网络应该执行的推理,以及 (3) 该网络最终应该执行的决策。第 2 节介绍的编程语言形象和对网络的程序化管制的新方向,最终可能实现这些性能。
主动执行,实时推理: 过来十年证实了机器学习在检测和预测网络攻击方面的微小后劲,咱们必须在网络管理中一直减少的自动化推理工作的根底上,最终将其集成到一个管制回路中,从而实现更自动化的决策。第 3 节介绍了这一挑战的两个方面: (1)基于学习改善网络管理,(2)设计网络进步为学习算法提供数据的品质。在自智网络中,数据品质 (Quality of Data, QoD) 是服务质量 (Quality of service, QoS) 的前提,并最终是用户体验品质 (Quality of experience, QoE) 的前提。
可扩大的数据面运维: 网络社区曾经开始为这方面奠定根底,通过齐全可编程的、独立于协定的数据立体 (例如,Barefoot Tofino 芯片集[5] 和 Netronome 网卡 [30]) 以及为它们编程的语言(例如,P4[6])。通过这些提高,数据面当初开始反对带内测量,再加上分布式流剖析平台,程序化网络管制的后劲微小,不仅包含转发(已启用 SDN),还包含测量数据的收集。第 4 节介绍了这些畛域的钻研挑战和时机。
运营商始终心愿网络更容易治理,算法、机器学习、形式化办法、编程语言和硬件的倒退,激励咱们思考更大的指标,即尽可能加重运维人员的累赘,甚至可能齐全不须要人工运维。实际上,可能帮忙咱们实现这些指标的工具和技术正在呈现,但咱们还没有这一拼图的所有碎片,例如,对自动化管制或推理的需要对机器学习算法提出了新的要求。因而,自智网络对网络乃至计算机科学都是微小的挑战。因为咱们做的简直所有事件都依赖于互联网,咱们必须承受这一挑战。
2. 筹备开始
自智网络的第一个组成部分是布局,网络运维人员指定高级策略,运行时系统生成相应的测量、推理和管制操作。自智网络应该依赖对立的框架来指定 SLA、全网范畴的资源优化和包交互,以及能够生成运行在异构网络设备集上的分布式程序的运行时,以集成测量、推理和管制。
2.1 定义简单网络策略
构想有这么一个网络,运营商能够指定 (1)客户冀望 (例如,提早和抖动的统计保障); (2) 全网指标 (例如,尽量减少拥塞); (3) 利用性能和业务(如: 网络地址转换、访问控制、入侵检测)。
客户冀望 (服务水平协定)。 网络运营商应指定服务水平协定(SLA) 在保障网络指标 (例如,提早、抖动和 DDoS 响应工夫) 或用户体验质量指标 (如 VoIP 的 MOS 或网页浏览加载工夫)。每个 SLA 应该对应于流量的一个特定子集,该子集由数据包报头字段以及地点指定,或者更好的是,基于 Web 站点(如 www.netflix.com) 或应用程序 (如视频流) 的更高级别名称指定。交互式应用程序能够确保包提早至多在 99.9% 的工夫内小于 10 毫秒。SLA 可能对应于与客户的合同协定,并能够驱动监控 (检测网络何时有违反保障的危险)、适应(在短期内缓解问题) 和学习(“ 学习 ” 如何抉择满足 SLA 的配置,同时避免浪费网络资源)。明天,服务提供商只是非正式的指定 SLA。只管一些初步钻研提出了用于指定 SLA 的语言[16,18],但这些工作在主动监控、适应和学习方面没有实现闭环。
网络指标 (资源优化)。 网络运营商除了要满足客户的服务承诺外,亦要满足整个网络的指标,使其网络能高效、牢靠的运作。这些指标能够天然的表白为优化问题,具备 指标 (objectives, 如最小化拥挤) 和束缚 (constraints, 如节约流量或限度门路长度),管理员应该可能将这些指标间接指定为优化问题。例如,一个常见的流量工程指标是最小化所有链路上某个链路利用率凸函数 $f()$ 的总和(例如,$\sum_{l}f(u_{l}/c_{l})$),其中链路利用率取决于流量矩阵($v_{ij}$,从入口 i 到进口 j 的负载) 和路由($r_{ij}$),从入口 i 到进口 j 的流量中穿过链路 $l$ 的百分比)。也就是说,链路利用率是遵循遍历链路门路的所有流量矩阵的和($u_{l}=\sum_{ij}r_{ijl}*v_{ij}$)。从而通过求解这一优化问题失去网络($r_{ijl}$)。实际中,运行时必须决定多久收集一次测量指标(以及准确到什么水平)、扭转路由的频率以及如何示意路由决策(基于网络设备的性能)。
从拥挤的对端转移流量。 当某一特定链路上的流量超过阈值时,运营商可能心愿将多余流量转移到另一条互连链路上。基于此策略,运行时零碎应该监测第一条链路上的流量负载,并决定是否以及如何均衡负载,而不只是依赖于动态阈值。相干决策也可能依赖于更高级别的 QoE 要求监控关联流量取得的指标(如 MOS,甚至是来自应用程序的对于视频比特率或从新缓冲的间接信令)。
检测、拦挡非预期流量。 运营商能够制订某个策略来检测和缓解拒绝服务攻打 (DoS),该策略可能要求网络应该对从许多不同的发送方接管特定 DNS 响应音讯的目的地的流量进行限流。基于此策略,运行时应该生成必要的监控查问,并依据监控后果对可疑流量进行限速,而不是期待检测到 DoS 攻打时的特定阈值,从而通过该策略能够指定某种检测技术(例如,通过端口扫描的程序假如测试) 来辨认攻打。
3. 适应动静环境
网络的复杂性及其底层过程的动静个性使机器学习算法成为检测、诊断和缓解中断的人造工具。之前的工作利用了机器学习和用户交互技术,以改善网络安全 [2,7,9] 和性能 [19,29] 的具体方面。然而到目前为止,这些技术次要还是基于现有设计,而不是间接整合到网络管制中。例如,机器学习在网络安全方面的许多利用都波及到大规模流量跟踪算法的开发和 (通常是离线的) 测试,下一步天然是将这些类型的推理和控制算法集成到网络决策和管制中。即便是利用现有的学习算法也常常遇到很多艰难,局部起因是基于现有网络协议和技术不容易取得数据样本标签。另外,当初的机器学习算法往往不是为大容量、分布式和疾速倒退的网络数据量身定制的,现有算法也使得迭代精炼监督学习算法中应用的特色 (对于大容量网络流量跟踪可能须要) 或执行简单的工夫序列剖析变得艰难。
本节咱们将介绍机器学习和用户交互技术如何在自智网络畛域提供帮忙: (1)基于机器学习促成自智网络,在许多状况下,网络能够学习本人运行,防止由运维人员做出决定 (第 3.1 节); (2) 联合应用程序和人类用户的输出从而更好的改良学习算法(第 3.2 节)。
3.1 通过学习改善运维
网络应该提供高可用性、良好的应用程序性能,以及基于自动化和半自动化来应答中断,从而晋升安全性。过来应用单点解决方案 (例如,防火墙和垃圾邮件过滤器等中间体) 来修补现有网络,与此相反,咱们倡议让网络内建这些中间体提供的性能。咱们将探讨两个适宜自智网络的治理畛域: (1)满足性能要求和服务水平协定; (2)自动检测和缩小不必要的通信(例如,垃圾邮件、DoS 攻打)。
性能: 应用程序和服务水平协定。 要提供良好的网络性能,须要在短时间内对一直变动的网络条件做出反馈。为某些应用程序提供良好的网络性能,须要了解利用级指标 (例如,视频比特率,再缓冲事件) 以及通过网络流量能够测量什么之间的关系。在其余状况下,运营商的工作可能波及确定服务水平协定 (SLA),包含确定网络条件何时可能导致违反 SLA。当网络比较简单的时候,能够应用闭合剖析来模仿(比方)TCP 连贯的行为,以及预测特定网络的变动(例如,路由协定权重的变动) 可能会对应用程序性能的影响。然而,在明天的网络中,不再容易进行这种闭合剖析,因为网络的复杂性以及许多相互作用的网络组件独特影响了网络和应用程序的性能。
通过收集、存储和剖析附加数据的能力,网络能够生成模型,在利用率等较低级别指标和流媒体利用性能等较高级别指标之间建设更简单的关系。例如,以前的工作曾经建设了对特定配置决策如何最终影响网络搜寻响应工夫 [29] 建模的可能性。过来的工作曾经证实,理解低级别网络个性 (如往返提早) 和应用程序性能指标 (如搜寻响应工夫) 之间的关系是可能的。随着算法速度和复杂性的倒退,加上数据立体可编程性的提高,应该思考将这些技术扩大到无关实时性能监控的问题上来,包含利用级性能保障和 SLA 监控。
平安: 非必要流量。 近年来,机器学习在统计异样检测中的利用获得了重大进展。钻研人员开发出了新的学习算法,通过剖析网络流量 (从报文跟踪到 IPFIX 记录)[17]、DNS 查问[2] 和域注册 [8],甚至 BGP 路由音讯[15] 来检测 (甚至预测) 攻打。然而,这些异样检测算法大多只在离线流量跟踪数据上进行了演示,这样的演示对于辨认运行在独立网络设备上的异样检测算法的特色十分有用,从而为自智网络的前景带来了更多的挑战和时机。其中一个挑战波及到对这些算法进行调整,使其实时运行,并可能联合实时操作。例如,基于轻量级特色的简略回归模型能够在反对可定制特征提取和计算的可编程交换机中执行 (例如基于 Barefoot Tofino 芯片组[5]),咱们将在第 4.2 节进一步探讨。另一个挑战波及开发新的机器学习算法,基于轻量级特色(例如基于元数据或粗统计) 执行粗分类,并当分类不确定时触发更重量级特色的收集(例如来自数据包),咱们将在下一节中更具体探讨这种可能性。
3.2 用更好的数据改善学习
网络也应该量身定制,以进步提供给实时推理和预测算法的输出数据的品质。例如,用于网络安全的机器学习算法,如入侵检测,常常须要在标记数据上进行训练。然而,对于网络安全畛域来说,获取标签数据是十分艰难的,因为攻打比拟常见,而威逼是动静的,一直呈现新的威逼和攻打类别。相似的,辨认体验品质的降级通常须要来自应用程序和用户两者的输出。在本节中,咱们将探讨将来的网络可能如何与学习算法独特设计,以进步算法的准确性,并进步为这些算法提供输出的数据的品质和数量。
3.2.1 进步模型精度
来自高级策略和拓扑依赖关系的输出。 传统机器学习办法在离线网络跟踪数据之上运行,简直没有对于网络结构依赖关系的信息,因而,在做出任何有用的推理之前,必须推断出许多已知的信息。新的机器学习技术可能通过联合来自网络拓扑构造 (例如,共享危险链接组) 和高级策略的输出来更好的诊断网络问题。例如思考检测影响可用性的网络故障的状况,只管网络提供了丰盛的数据,但不足繁多框架综合解决异构数据,以造成对于潜在起因的假如。例如,当一条链路故障时,会产生链路告警、路由变动、流量漂移等问题。自智网络能够利用网络拓扑信息,而不是强制机器学习算法从故障事件的察看中推断这些依赖关系。
收集额定的数据以进步模型的准确性。 推断模型的准确性还可能取决于可用数据的类型和数量。许多状况下,推断算法会随着有更多附加数据样本或不同类型或粒度的数据而改良。可学习的网络能够应用基于绝对轻量级或容易收集的网络数据的粗检测算法 (例如,采样 IPFIX 日志,SNMP) 来开发一个可能具备高于可承受的误报率的分类器。这个分类器的输入可能会触发额定的测量,例如测量 (通过探针) 网络不同局部,或者在某些状况下,用更低廉的伎俩进行采样从而获取对于流量的更准确的信息 (例如 DNS 查问日志、定时信息)。诸如带内网络遥测[13] 等技术的呈现使得不仅能够将额定的细粒度信息写入数据包中,而且还能够依据须要生成探测流量,从而有可能触发端到端或网络外部的细粒度被动或被动测量(如果算法须要这些信息)。
3.2.2 进步数据品质
减少标记数据的数量。 将机器学习利用于网络性能和平安问题的挑战之一是不足用于训练这些算法的标记数据。不足标记数据是当今网络的现状,其起因如下: 许多乏味的事件 (1) 是常见的 (即产生频率不够高,无奈生成正当的训练集)、(2) 新兴 (即反映了某种以前未见过的新威逼或攻打) 的或 (3) 动静的。在网络产生故障时,通常是因为网络设备的 ” 一次性 ” 谬误配置造成的,该配置以意想不到的 (以前没有察看到的) 形式与网络上的其余设施交互。其余网络故障可能产生在物理硬件故障或特定的通信模式触发实现谬误或配置谬误时。可怜的是,因为每个故障实质上都是惟一的,基于过来的故障示例的训练可能无奈产生可能检测和诊断将来故障的分类器。一个能够学习的网络能够间接从运维人员、网络配置,甚至可能从用户或应用程序排汇信息,以减少检测和推理算法能够用来训练的标记数据的数量。
从用户输出。 来自最终用户的反馈能够帮忙推动网络中额定的被动和被动测量。网络运营商通常能够看到网络自身的指标,但这些指标有时很难映射为用户体验。咱们构想,通过用户的明确反馈,这些数据可能会更好的联合在一起,从而触发触发额定的被动或被动测量。例如,一种可能性是,Web 浏览器等应用程序有一个按钮,用户能够通过该按钮显式的批示应用程序性能较差(一个 ” 我很丧气 ” 按钮)。这种反馈可能体现在应用程序流量中的包正文上,从而触发来自交换机的额定被动或被动测量。
应用程序开发人员偶然会通过一种被称为体验抽样的技术,对终端用户就单个应用程序的性能进行考察(例如,” 您上次视频通话的体验如何?”)。与教训抽样相干的一个挑战是何时对用户体验进行考察,偶然的抽样可能导致应用程序性能数据不充沛,而过于频繁的采样可能会激怒用户或导致用户提交不称心的回复。一个可能的钻研方向是应用网络测量来驱动和自动化教训采样。例如,网络中的可编程交换机或仪表化的 OS 内核可能表明在某些条件下的进化,例如更高的丢包或提早,或吞吐量的升高,相似的,服务器可能会在 TCP 流中看到较高的丢包或提早。这些条件能够作为主动触发器来轮询用户的利用体验,通过适当集成,网络设备或服务器能够生成一个包,用户的操作系统或浏览器能够主动解析这个包来触发采样。
从利用或操作系统输出。 终端用户应用程序通常有对于他们正在经验的性能准确信息(例如,是否产生了从新缓存事件,视频比特率是否产生扭转),但通常没有方法将这些信息传递给网络。相似的,操作系统可能有对于用户参加的额定信息,例如应用程序是否在前台运行,甚至可能用户是否在操作应用程序(或设施)。将无关应用程序性能和用户参加的信息传递给网络能够更无效的促成网络资源的应用。操作系统能够将无关应用程序状态的信息蕴含到网络流量中,网络随后能够应用这些信息将流量调配给更高或更低的优先级队列。例如,即便视频仍在持续,但网络能够平安的确定升高用户不再观看的高吞吐量视频流的优先级。来自应用程序和操作系统的附加信息,比方 TCP 统计信息,也能够用来标记数据流,能够用作今后查问数据流的属性。
4. 越快越好
前几节中的性能依赖于实时监控和预测、对大量网络流量的流剖析以及线速解决能力,从聚合等简略性能到推理和预测等更简单的性能。在自智网络的设计和利用方面,还有许多钻研挑战,尤其是在使这些性能可扩大、分布式和实时化方面。
4.1 数据立体流量剖析
灵便的包解析、匹配操作流水线以及在交换机和数据包头上保护状态的能力能够使网络反对高级度量形象。
紧凑的数据结构。 可编程交换机能够执行算术操作和保护表中的状态,容许交换机反对紧凑的数据结构,保护对于包流的统计信息。这些数据结构能够反对更高层次的形象,例如保护汇合(例如,布隆过滤器),计数(例如,计数布隆过滤器或 Count-Min Sketch),或计算非反复数据(例如,count distinct sketch)。最近钻研表明,在新兴交换机上反对这类数据结构[20,26,31]、优化无限状态、计算资源和管制带宽方面还有很多工作要做。
在数据包上承载状态。 许多网络工作须要逾越多点进行操作。应用状态标记数据包并在后续节点上更新状态的能力使数据立体可能反对一系列弱小的形象。例如,报头能够携带利用于该包的网络策略版本(例如,反对统一的策略更新[25],汇合或序列(例如,下一跳,网络门路,或灵便的流量代理[21])。或者携带确定性无限自动机的状态,用于评估包属性及其通过网络门路上的正则表达式,以基于这些属性测量或管制流量[23]。或者携带跨路径流量统计聚合,以收集门路级指标,如最大链路利用率或总排队提早[13]。
简化与其余数据集的连贯。 剖析经常须要将流量统计数据与其余数据集联合起来。例如,将报文目标地址与其自治零碎 (通过连贯路由表数据)、网站或应用程序(通过连贯 DNS 查问日志) 或最终用户 (通过连贯认证服务器数据) 相关联。这些信息能够促成测量数据的聚合、流量的路由及调度,以及基于更高级别策略的访问控制。在明天的网络中,这些关联十分繁琐,通常依赖于来自不同地位的粗粒度工夫戳。数据立体能够通过两种形式简化关联过程。首先,数据立体能够通过同时剖析和合并数据集,或者通过保护第二个数据集的无效示意 (例如,一个与特定类中通过身份验证的用户相关联的 IP 地址表) 来实现关联。其次,交换机能够标记数据包,例如,示意网络中的某个地位和相干的工夫戳,这些信息能够简化后续的关联。
4.2 数据立体预测模型
如第 3 节所探讨的,机器学习曾经利用于各种各样的网络监控工作,从性能监控到平安。然而,到目前为止,其中很多模型曾经以纯离线的形式进行了演示和部署,流量以包的模式被捕捉,IPFIX 记录或 DNS 查问以日志的模式从网络中收集,并用于训练检测模型,而模型也是在脱机状态下进行评估的。然而,这些模型中有许多蕴含了简略的个性,这些个性通常能够从单个数据包中计算或推断进去。可编程交换机能够从数据立体数据包中提取这些特色,甚至依据这些学习到的模型计算回归函数,实质上是在线计算预测函数,并对网络中的流量性质做出实时决策,而不须要离线剖析。
思考基于机器学习的垃圾邮件过滤器,它依赖网络级别的个性,例如发送 IP 地址的自治零碎,以及同时发送邮件的相邻 IP 地址的数量[9]。可编程交换机能够内联计算这些特色,并计算单个特色的加权线性组合,以计算音讯是垃圾邮件的总体可能性。另一个例子波及到基于 DNS 查找僵尸网络,通过分类器检测异样特色,例如在字典程序上十分靠近的查问,在短时间距离内产生大量流量,并且托管在劣迹斑斑的 DNS 服务上。可编程交换机能够解析 DNS 查问来提取这些个性,并在交换机上检测与歹意流动相干的 DNS 查找,而不须要离线剖析。
5. 论断
古代网络应用对性能、可靠性、可用性和安全性的要求一直进步,使得网络管理比以往任何时候都更加重要。与此同时,网络自身曾经变得过于简单,无奈应用最先进的办法来治理,这些办法依赖基于繁多协定和设施级别上的网络行为和性能的闭合模型。作为一个社区,咱们必须思考全新的网络管理办法: (1)依赖于数据驱动的模型,能够从较低级别指标预测端到端网络性能; (2)将测量与实时控制相结合,尽可能将运维人员从管理控制回路中排除。过来十年为设计自智网络奠定了根底,从统计异样检测和基于学习的故障排除工具到可编程网络和线速算法的紧凑数据结构,咱们应该基于这些组件来构建古代利用所需的自智网络。
参考文献
[1] C. J. Anderson, N. Foster, A. Guha, J.-B. Jeannin, D. Kozen, C. Schlesinger, and D. Walker. NetKAT: Semantic foundations for networks. In ACM Principles of Programming Languages, pages 113–126, Jan. 2014.\
[2] M. Antonakakis, R. Perdisci, D. Dagon, W. Lee, and N. Feamster. Building a Dynamic Reputation System for DNS. In USENIX Security Symposium, pages 273–290, 2010.\
[3] M. T. Arashloo, Y. Koral, M. Greenberg, J. Rexford, and D. Walker. SNAP: Stateful network-wide abstractions for packet processing. In ACM SIGCOMM, Aug. 2016.\
[4] M. Arlitt, B. Krishnamurthy, and J. C. Mogul. Predicting shorttransfer latency from TCP arcana: A trace-based validation. In SIGCOMM Internet Measurement Conference, 2005.\
[5] Barefoot Tofino. https://barefootnetworks.com/technology/#tofino.\
[6] P. Bosshart, D. Daly, G. Gibb, M. Izzard, N. McKeown, J. Rexford, C. Schlesinger, D. Talayco, A. Vahdat, G. Varghese, and D. Walker. P4: Programming protocol-independent packet processors. ACM Computer Communications Review, 44(3):87–95, July 2014.\
[7] G. Gu, R. Perdisci, J. Zhang, and W. Lee. BotMiner: Clustering Analysis of Network Traffic for Protocol-and StructureIndependent Botnet Detection. In USENIX Security Symposium, volume 5, pages 139–154, 2008.\
[8] S. Hao, A. Kantchelian, B. Miller, V. Paxson, and N. Feamster. PREDATOR: Proactive Recognition and Elimination of Domain Abuse at Time-of-Registration. In ACM Conference on Computer and Communications Security (CCS), pages 1568–1579, 2016.\
[9] S. Hao, N. A. Syed, N. Feamster, A. G. Gray, and S. Krasser. Detecting Spammers with SNARE: Spatio-temporal Networklevel Automatic Reputation Engine. In USENIX Security Symposium, volume 9, 2009.\
[10] V. Heorhiadi, M. K. Reiter, and V. Sekar. Simplifying software-defined network optimization applications using SOL. In USENIX Networked Systems Design and Implementation, 2016.\
[11] P. Kazemian, G. Varghese, and N. McKeown. Header space analysis: Static checking for networks. In USENIX Networked Systems Design and Implementation, 2012.\
[12] A. Khurshid, X. Zou, W. Zhou, M. Casesar, and P. Godfrey. VeriFlow: Verifying network-wide invariants in real time. In USENIX Networked Systems Design and Implementation, 2013.\
[13] C. Kim, P. Bhide, E. Doe, H. Holbrook, A. Ghanwani, D. Daly, M. Hira, and B. Davie. In-band network telemetry (INT), June 2016. http://p4.org/wp-content/uploads/fixed/INT/INT-current-spec.pdf.\
[14] K. Kompella. The Self-Driving Network: How to Realize It. North American Network Operators Group (NANOG), June 2017. https://www.nanog.org/sites/default/files/1_Kompella_The_Netw…\
[15] M. Konte, R. Perdisci, and N. Feamster. ASwatch: An AS Reputation System to Expose Bulletproof Hosting ASes. ACM SIGCOMM Computer Communication Review, 45(4):625–638, 2015.\
[16] K. Kritikos, B. Pernici, P. Plebani, C. Cappiello, M. Comuzzi, S. Benbernou, I. Brandic, A. Kertesz, M. Sztaki, M. Parkin, and M. Carro. A survey on service quality description. ACM Computing Surveys, 46(1), Oct. 2013.\
[17] A. Lakhina, M. Crovella, and C. Diot. Diagnosing Networkwide Traffic Anomalies. In ACM SIGCOMM Computer Communication Review, volume 34, pages 219–230, 2004.\
[18] D. Lamanna, J. Skene, and W. Emmerich. SLAng: A language
for defining service-level agreements. In IEEE Workshop on Future Trends of Distributed Computing Systems, pages 100–106, 2003.\
[19] Z. Li, M. Zhang, Z. Zhu, Y. Chen, A. G. Greenberg, and Y.-M. Wang. WebProphet: Automating Performance Prediction for Web Services. In USENIX Symposium on Networked Systems Design and Implementation (NSDI), volume 10, pages 143–158, 2010.\
[20] Z. Liu, A. Manousis, G. Vorsanger, V. Sekar, and V. Braverman. One sketch to rule them all: Rethinking network flow monitoring with UnivMon. In ACM SIGCOMM, Aug. 2016.\
[21] R. MacDavid, R. Birkner, O. Rottenstreich, A. Gupta, N. Feamster, and J. Rexford. Concise encoding of flow attributes in SDN switches. In ACM Symposium on SDN Research, pages 48–60, 2017.\
[22] J. McGlurg, H. Hojjat, N. Foster, and P. Cerny. Event-driven network programming. In ACM Programming Languages Design and Implementation, June 2016.\
[23] S. Narayana, M. Tahmasbi, J. Rexford, and D. Walker. Compiling path queries. In Networked Systems Design and Implementation, Mar. 2016.\
[24] J. Padhye, V. Firoiu, D. Towsley, and J. Kurose. Modeling TCP Throughput: A Simple Model and Its Empirical Validation. ACM SIGCOMM Computer Communication Review, 28(4):303–314, 1998.\
[25] M. Reitblatt, N. Foster, J. Rexford, C. Schlesinger, and
D. Walker. Abstractions for network update. In ACM SIGCOMM, Aug. 2012.\
[26] V. Sivaraman, S. Narayana, O. Rottenstreich, S. Muthukrishnan, and J. Rexford. Heavy-hitter Detection Entirely in the
Data Plane. In Symposium on SDN Research (SOSR), pages 164–176, 2017.\
[27] R. Soule, S. Basu, P. J. Marandi, F. Pedone, R. Kleinberg, E. G. Sirer, and N. Foster. Merlin: A language for provisioning network resources. In ACM CoNEXT Conference, Dec. 2014.\
[28] Designing self-driving networks workshop, Apr. 2017. http://forum.stanford.edu/events/2017selfdriving.php.\
[29] M. Tariq, A. Zeitoun, V. Valancius, N. Feamster, and M. Ammar. Answering what-if deployment and configuration questions with WISE. In ACM SIGCOMM, volume 38, pages 99–110, 2008.\
[30] B. Vinnakota. Netronome and P4: A brief history and a roadmap. https://www.netronome.com/blog/netronome-and-p4-a-brief-histo…\
[31] M. Yu, L. Jose, and R. Miao. Software Defined Traffic Measurement with OpenSketch. In Networked Systems Design and Implementation, volume 13, pages 29–42, 2013.
* 你好,我是俞凡,在 Motorola 做过研发,当初在 Mavenir 做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI 等技术始终保持着浓重的趣味,平时喜爱浏览、思考,置信继续学习、一生成长,欢送一起交流学习。\
微信公众号:DeepNoMind*
本文由 mdnice 多平台公布