The Road to SDN: An Intellectual History of Programmable Networks(二)

2..The Road to SDN

单词学习

The Road to SDN: An Intellectual History of Programmable Networks(二)

翻译

Making computer networks more programmable enables innovation in network management and lowers the barrier to deploying new services. In this section, we review early work on programmable networks. We divide the history into three stages, as shown in Figure 1. Each stage has its own contributions to the history: (1) active networks (from the mid-1990s to the early 2000s), which introduced programmable functions in the network to enable greater to innovation; (2) control and data plane separation (from around 2001 to 2007), which developed open interfaces between the control and data planes; and (3) the OpenFlow API and network operating systems(from 2007 to around 2010), which represented the first instance of widespread adoption of an open interface and developed ways to make control-data plane separation scalable and practical

使计算机网络更具可编程性有助于网络管理的创新,并降低部署新服务的障碍。在本节中,我们将回顾可编程网络的早期工作,将历史分为三个阶段。每个阶段对历史都有自己的贡献。

  1. 主动网络(从20世纪90年代中期到21世纪初),它在网络中引入了可编程功能,以实现更大的创新。
  2. 控制和数据平面分离(从2001年到2007年左右),开发了控制和数据平面之间的开放接口。
  3. OpenFlow API和网络操作系统(2007年至2010年左右)代表了广泛采用开放接口的第一个实例,并开发了使控制数据平面分离具有可扩展性和实用性的方法

Network virtualization played an important role throughout the historical evolution of SDN, substantially predating SDN yet taking root as one of the first significant use cases for SDN. We discuss network virtualization and its relationship to SDN in Section 3.

网络虚拟化在SDN的历史演进过程中扮演着重要的角色,它在SDN出现之前就已经有了实质性的发展,但作为SDN最早的重要用例之一,网络虚拟化已经扎根于SDN之上。我们在第3节讨论了网络虚拟化及其与SDN的关系。


 

2.1 Active Networking

单词学习

The Road to SDN: An Intellectual History of Programmable Networks(二)

The Road to SDN: An Intellectual History of Programmable Networks(二)

The Road to SDN: An Intellectual History of Programmable Networks(二)

The Road to SDN: An Intellectual History of Programmable Networks(二)

翻译

The early- to mid-1990s saw the Internet take off, with applications and appeal that far outpaced the early applications of file transfer and email for scientists. More diverse applications and greater use by the general public drew researchers who were eager to test and deploy new ideas for improving network services. To do so, researchers designed and tested new network protocols in small lab settings and simulated behavior on larger networks. Then, if motivation and funding persisted, they took ideas to the Internet Engineering Task Force (IETF) to standardize these protocols. The standardization process was slow and ultimately frustrated many researchers

20世纪90年代初到中期,互联网蓬勃发展,其应用及吸引力远远超过了早期的文件传输和科学家电子邮件应用程序,更多样化的应用程序和更广泛的公众使用,吸引了渴望测试和部署改进网络服务的新想法的研究人员。为此,研究人员在小型实验室环境中设计并测试新的网络协议,并在大型网络上模拟行为,如果动机和资金持续存在,他们会将想法提交给互联网工程特别工作组(IETF)以使这些协议标准化。标准化过程缓慢,最终使许多研究人员感到沮丧。

In response, some networking researchers pursued an alternative approach of opening up network control, roughly based on the analogy of the relative ease of re-programming a standalone PC. Specifically, conventional networks are not “programmable” in any meaningful sense of the word. Active networking represented a radical approach to network control by envisioning a programming interface (or network API) that exposed resources (e.g., processing, storage, and packet queues) on individual network nodes, and supported the construction of custom functionality to apply to a subset of packets passing through the node. This approach was anathema to many in the Internet community who advocated that simplicity in the network core was critical to Internet success.

于是,一些网络研究人员采用了一种开放网络控制的替代方法,大致是基于对独立PC重新编程相对容易的类比。具体地说,传统网络在任何意义上都不是“可编程”的,主动网络代表了一种激进的网络控制方法,通过设想一个编程接口(或网络api)来公开各个网络节点上的资源(例如,处理、存储和数据包队列),并支持构建应用于子集的定制功能。这种方法遭到许多互联网社区人士的憎恨,他们主张网络核心的简单性对互联网的成功至关重要。

The active networks research program explored radical alternatives to the services provided by the traditional Internet stack via IP or by Asynchronous Transfer Mode (ATM), the other dominant networking approach of the early 1990s. In this sense, active networking was the first in a series of cleanslate approaches to network architecture [14] subsequently pursued in programs such as GENI (Global Environment for Network Innovations) [33] and NSF FIND (Future Internet Design) [31] in the United States, and EU FIRE (Future Internet Research and Experimentation Initiative) [32] in the European Union

主动网络研究计划探索了传统互联网协议栈通过IP或异步传输模式(ATM)提供服务的根本替代方案,ATM是20世纪90年代早期的另一种主要网络方式。leanslate网络架构方法随后在美国的GENI(网络创新的全球环境)和NSF Find(未来互联网设计)和欧洲的EU Fire(未来互联网研究和实验倡议)等项目中进行。

pean Union. The active networking community pursued two programming models:

  • • the capsule model, where the code to execute at the nodes was carried in-band in data packets 
  • the programmable router/switch model, where the code to execute at the nodes was established by out-of-band mechanisms

欧洲联盟——活跃的网络社区追求两种编程模式:

  • 胶囊模型,其中在节点处执行的代码在数据包中的带内执行
  • 可编程路由器/交换机模型,其中在节点处执行的代码由带外机制建立。

The capsule model came to be most closely associated with active networking. In intellectual connection to subsequent efforts, though, both models have some lasting legacy. Capsules envisioned installation of new data-plane functionality across a network, carrying code in data packets (as in earlier work on packet radio [88]) and using caching to improve efficiency of code distribution. Programmable routers placed decisions about extensibility directly in the hands of the network operator.

胶囊模型与主动网络联系最为密切。胶囊设想在网络上安装新的数据平面功能,在数据包中携带代码(如先前在分组无线电上的工作),并使用缓存来提高代码分发的效率,而可编程路由器将可扩展性的决定直接交给网络运营商。

Technology push and use pull. The “technology pushes” that encouraged active networking included reduction in the cost of computing, making it conceivable to put more processing in the network, advances in programming languages such as Java that offered platform portability and some code execution safety, and virtual machine technology that protected the host machine (in this case the active node) and other processes from misbehaving programs [70]. Some active networking research projects also capitalized on advances in rapid code compilation and formal methods

鼓励主动联网的“技术推动”包括:降低计算成本,使其能够在网络中投入更多的处理,在诸如Java的编程语言方面提供了平台可移植性和一些代码执行安全性和虚拟机技术保护主机,一种保护主机(在本例中是活动节点)和其他进程不受程序错误影响的机器技术。一些活跃的网络研究项目也利用了快速代码编译和形式化方法的进步。

An important catalyst in the active networking ecosystem was funding agency interest, in particular the Active Networks program created and supported by the U.S. Defense Advanced Research Projects Agency (DARPA) from the mid-1990s into the early 2000s. Although not all research work in active networks was funded by DARPA, the funding program supported a collection of projects and, perhaps more importantly, encouraged convergence on a terminology and set of active network components so that projects could contribute to a whole meant to be greater than the sum of the parts [14]. The Active Networks program placed an emphasis on demonstrations and project inter-operability, with a concomitant level of development effort. The bold and concerted push from a funding agency in the absence of near-term use cases may have also contributed to a degree of community skepticism about active networking that was often healthy but could border on hostility and may have obscured some of the intellectual connections between that work and later efforts to provide network programmability

主动网络生态系统中的一个重要催化剂是资助机构的利益,特别是美国国防高级研究计划署(DARPA)从20世纪90年代中期到21世纪初创建和支持的主动网络计划。虽然并不是所有主动网络的研究工作都是由DARPA资助的,但该资助计划支持了一系列的项目,也许更重要的是,鼓励了术语和主动网络组件集的融合,从而使项目能够为GRE的整个计划做出贡献,这个整体的贡献要大于各个部分的总和。主动网络计划强调演示和项目的互操作性,并依赖着开发工作的水平。在没有近期使用案例的情况下,一个融资机构的大胆一致的推动也可能导致一定程度的对积极网络的怀疑,这种网络通常是健康的,但可能接近敌对状态,并且可能掩盖了这项工作以及后来为提供网络可编程性所做的努力。

The “use pulls” for active networking described in the literature of the time [15,74] are remarkably similar to the examples used to motivate SDN today. The issues of the day included network service provider frustration with the timescales necessary to develop and deploy new network services (so-called network ossification), third-party interest in value-added, finegrained control to dynamically meet the needs of particular applications or network conditions, and researcher desire for a platform that would support experimentation at scale. Additionally, many early papers on active networking cited the proliferation of middleboxes, including firewalls, proxies, and transcoders, each of which had to be deployed separately and entailed a distinct (often vendor-specific) programming model. Active networking offered a vision of unified control over these middleboxes that could ultimately replace the ad hoc, one-off approaches to managing and controlling these boxes [74]. Interestingly, the early literature foreshadows the current trends in network functions virtualization (NFV) [19], which also aims to provide a unifying control framework for networks that have complex middlebox functions deployed throughput.

当时文献中描述的用于主动网络的“使用拉”与今天用于激励SDN的示例非常相似。当前的问题包括网络服务提供商对开发和部署新的网络服务(所谓的网络僵化)所需的时间表感到失望,第三方对增值的兴趣,动态满足特定应用程序或网络的需求的精细控制.对于网络环境,研究人员希望有一个能支持大规模实验的平台。此外,许多早期关于主动网络的论文都提到了包括防火墙、代理和转码器在内的中间盒的激增,每一个中间盒都必须单独部署,并且需要一个不同的(通常是特定于供应商的)编程模型。主动网络提供了对这些中间盒的统一控制,最终可以取代管理和控制这些中间盒的临时、一次性方法.有趣的是,早期的文献预示了当前网络功能虚拟化(NFV)的趋势,这也旨在为具有复杂的中间盒功能的网络提供一个统一的控制框架.

Intellectual contributions. Active networks offered intellectual contributions that relate to SDN. We note three in particular

主动网络提供了与SDN相关的智慧贡献。我们特别注意到三个方面.

Programmable functions in the network to lower the barrier to innovation. Research in active networks pioneered the notion of programmable networks as a way to lower the barrier to network innovation. The notion that it is difficult to innovate in a production network and pleas for increased programmability were commonly cited in the initial motivation for SDN. Much of the early vision for SDN focused on control-plane programmability, whereas active networks focused more on data-plane programmability. That said, data-plane programmability has continued to develop in parallel with control-plane efforts [5, 21], and data-plane programmability is again coming to the forefront in the emerging NFV initiative. Recent work on SDN is exploring the evolution of SDN protocols such as OpenFlow to support a wider range of data-plane functions [11]. Additionally, the concepts of isolation of experimental traffic from normal traffic—which have their roots in active networking—also appear front and center in design documents for OpenFlow [51] and other SDN technologies (e.g., FlowVisor [29])

网络中的可编程功能,以降低创新的障碍.主动网络的研究开创了可编程网络的概念,以此来降低网络创新的障碍。SDN最初的动机通常是认为在生产网络中很难创新,并要求增加可编程性,SDN的早期愿景大多集中在控制平面可编程性上,而主动网络则更多地集中在数据平面可编程性上。也就是说,数据平面的可编程性在控制平面的努力下继续发展,数据平面的可编程性在新兴的NFV计划中再次走到了前列.最近有关SDN的工作正在探索SDN协议(如OpenFlow)的演进,以支持更广泛的数据平面功能。此外,在OpenFlow和其他SDN技术(如FlowVisor)的设计文档中,将实验流量与源于主动网络的正常流量隔离的概念也出现在了前面和中心位置.

Network virtualization, and the ability to demultiplex to software programs based on packet headers. The need to support experimentation with multiple programming models led to work on network virtualization. Active networking produced an architectural framework that describes the components of such a platform [13]. The key components of this platform are a shared Node Operating System (NodeOS) that manages shared resources; a set of Execution Environments (EEs), each of which defines a virtual machine for packet operations; and a set of Active Applications (AAs) that work within a given EE to provide an end-to-end service. Directing packets to a particular EE depends on fast pattern matching on header fields and demultiplexing to the appropriate EE. Interestingly, this model was carried forward in the PlanetLab [60] architecture, whereby different experiments run in virtual execution environments, and packets are demultiplexed into the appropriate execution environment on their packet headers. Demultiplexing packets into different virtual execution environments has also been applied to the design of virtualized programmable hardware data planes [5].

网络虚拟化,以及基于数据包头对软件程序进行多路分解的能力,这需要支持多个编程模型的实验,这导致了对网络虚拟化的研究。主动网络产生了一个架构框架,描述了这样一个平台的组件,该平台的关键组件是一个管理共享资源的共享节点操作系统(Nodeos),一组执行环境(EES),每个环境定义一个用于数据包操作的虚拟机,以及一组在给定EE中工作以提供端到端服务,将数据包定向到依赖于头字段的特定EE上的快速模式匹配,和对适当EE的解复用。有趣的是,该模型是在Planetlab体系结构中进行的,根据该体系结构,在虚拟执行环境中运行不同的实验,数据包在其数据包头上被解复用到适当的执行环境中。将数据包分解到不同的虚拟执行环境中也被应用于虚拟化可编程硬件数据平面的设计.

• The vision of a unified architecture for middlebox orchestration. Although the vision was never fully realized in the active networking research program, early design documents cited the need for unifying the wide range of middlebox functions with a common, safe programming framework. Although this vision may not have directly influenced the more recent work on NFV, various lessons from active networking research may prove useful as we move forward with the application of SDN-based control and orchestration of middleboxes

为MiddleBox编排提供统一架构的构想.尽管在主动网络研究计划中,这一设想从未完全实现,但早期的设计文件指出,需要将广泛的中间盒功能与通用、安全的编程框架统一起来。尽管这一设想可能没有直接影响到最近关于NFV的工作,但随着我们进一步应用基于SDN的控制和协调中间盒,从主动网络研究中得到的各种教训可能会被证明是有用的.

Myths and misconceptions. Active networking included the notion that a network API would be available to end-users who originate and receive packets, though most in the research community fully recognized that end-user network programmers would be rare [15]. The misconception that packets would necessarily carry Java code written by end users made it possible to dismiss active network research as too far removed from real networks and inherently unsafe. Active networking was also criticized at the time for not being able to offer practical performance and security. While performance was not a first-order consideration of the active networking research community (which focused on architecture, programming models, and platforms), some efforts aimed to build high-performance active routers [84]. Similarly, while security was under-addressed in many of the early projects, the Secure Active Network Environment Architecture project [2] was a notable exception.

主动网络包括这样一个概念,即网络API将可用于发起和接收数据包的最终用户,尽管大多数研究界人士认识到,最终用户网络程序员将是罕见的。认为数据包必然携带最终用户编写的Java代码的错误观念使主动网络研究与实际网络相去甚远,并且本质上不安全,主动网络在当时也因为无法提供实际的性能和安全性而受到批评。虽然性能并不是主动网络研究界(专注于架构、编程模型和平台)的首要考虑因素,但也有一些旨在构建高性能主动路由器的努力。类似地,虽然安全性在许多早期项目中没有得到充分的解决,但是安全主动网络环境体系结构项目是一个显著的例外

In search of pragmatism. Although active networks articulated a vision of programmable networks, the technologies did not see widespread deployment. Many factors drive the adoption of a technology (or lack thereof). Perhaps one of the biggest stumbling blocks that active networks faced was the lack of an immediately compelling problem or a clear path to deployment. A significant lesson from the active networks research effort was that “killer” applications for the data plane are hard to conceive. The community proffered various applications that could benefit from in-network processing, including information fusion, caching and content distribution, network management, and application-specific quality of service [15, 74]. Unfortunately, although performance benefits could be quantified in the lab, none of these application areas demonstrated a sufficiently compelling solution to a pressing need.

 尽管主动网络提出了可编程网络的设想,但这些技术并未得到广泛应用,许多因素推动了技术的采用(或缺乏)。可能主动网络面临的最大障碍之一是不能立即解决问题或有一个清晰的部署路径。主动网络研究工作的一个重要教训是,数据平面的“杀手级”应用很难想象,社区提供了各种可以从网络处理中受益的应用,包括信息融合、缓存和内容分发、网络管理和特定于应用的服务质量。不幸的是,尽管性能优势可以在实验室中量化,但这些应用领域中没有一个能够充分满足紧迫需求的解决方案

Subsequent efforts, which we describe in the next subsection, were more modest in terms of the scope of problems they addressed, focusing narrowly on routing and configuration management. In addition to a narrower scope, the next phase of research developed technologies that drew a clear distinction and separation between the functions of the control and data planes. This separation ultimately made it possible to focus on innovations in the control plane, which not only needed a significant overhaul but also (because it is commonly implemented in software) presented a lower barrier to innovation than the data plane

接下来的工作我们将在下一小节中描述,从他们所解决的问题的范围来看,是比较温和的——只关注路由和配置管理。除了范围更窄之外,下一阶段的研究还开发了一些技术,对控制平面和数据平面的功能进行了明确的区分和分离。这种分离最终使人们有可能专注于控制平面的创新,这不仅需要进行重大改革,而且(因为它通常在软件中实现)比数据平面的创新障碍更低

上一篇:Docker-compose up时报错:


下一篇:Community Detection in Large Networks