过去20年中可编程网络的发展可以分为几个阶段?每个阶段的贡献是什么?

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;

(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.
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.

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

每个阶段对历史都有自己的贡献:

(1)主动网络(从20世纪90年代中期到21世纪初),它在网络中引入了可编程功能,以实现更大程度的创新;

(2)控制和数据平面

分离(2001年至2007年),开发了控制平面和数据平面之间的开放接口;

(3)OpenFlow API和网络操作系统(2007年至2010年左右),代表了广泛采用开放接口的第一个实例,并开发了使控制数据平面分离可扩展和实用的方法。

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

网络虚拟化与SDN的关系:

Relationship of Network Virtualization to SDN.
Network virtualization (an abstraction of the physical network in terms of a logical network) clearly does not require SDN. Similarly, SDN (the separation of a logically centralized control plane from the underlying data plane)
does not imply network virtualization. Interestingly, however, a symbiosis between network virtualization and SDN has emerged, which has begun to catalyze several new research areas. SDN and network virtualization relate in
three main ways:

  • SDN as an enabling technology for network virtualization. Cloud computing brought network virtualization to prominence, because cloud providers need a way to allow multiple customers (or “tenants”) to share the same network infrastructure. Nicira’s Network Virtualization Platform (NVP) offers this abstraction without requiring any support from the underlying networking hardware. The solution is use overlay networking to provide each tenant with the abstraction of a single switch connecting all of its virtual machines. Yet, in contrast to previous work on overlay networks, each overlay node is a actually an extension of the physical network—a software switch that encapsulates traffic destined to virtual machines running on other servers. A logically centralized controller installs
    the rules in these virtual switches to control how packets are encapsulated, and updates these rules when virtual machines move to new locations.
  • Network virtualization for evaluating and testing SDNs.The ability to decouple an SDN control application from the underlying data plane makes it possible to test and evaluate SDN control applications in a virtual environment before the application is deployed on an operational network. Mininet uses process-based virtualization to run multiple virtual OpenFlow switches,end hosts, and SDN controllers—each as a single process on the same physical (or virtual) machine. The use of process-based virtualization allows Mininet to emulate a network with hundreds of hosts and switches on a single machine. In such an environment, a researcher or network operator can develop control logic and easily test it on a full-scale emulation of the production data plane; once the control plane has been evaluated, tested, and debugged, it can then be deployed on the real production network.
  • Virtualizing (“slicing”) an SDN. In conventional networks, virtualizing a router or switch is complicated,because each virtual component needs to run own instance of control-plane software. In contrast, virtualizing a “dumb” SDN switch is much simpler. The FlowVisor system enables a campus to support a testbed for networking research on top of the same physical equipment that carries the production traffic. The main idea is to divide traffic flow space into “slices” (a concept introduced in earlier work on PlanetLab ), where each slice has a share of network resources and is managed by a different SDN controller. FlowVisor runs as a hypervisor, speaking OpenFlow to each of the SDN controllers and to the underlying switches. Recent work has proposed slicing control of home networks, to allow different third-party service providers (e.g., smart grid operators) to deploy services on the network without having to install their own infrastructure [89]. More recent work proposes ways to present each “slice” of a software-defined network with its own logical topology and address space.

网络虚拟化(从逻辑网络的角度对物理网络进行抽象)显然不需要SDN。类似地,SDN(逻辑集中控制平面与底层数据平面的分离)

并不意味着网络虚拟化。然而,有趣的是,网络虚拟化和SDN之间的共生关系已经出现,这已经开始催化几个新的研究领域。SDN和网络虚拟化

三种主要方式:

  • SDN作为网络虚拟化的一种支持技术。云计算使网络虚拟化变得突出,因为云提供商需要一种方式,允许多个客户(或“租户”)共享同一网络基础设施。Nicira的网络虚拟化平台(Network Virtualization Platform,NVP)提供了这种抽象,而不需要底层网络硬件的任何支持。解决方案是使用覆盖网络为每个租户提供连接其所有虚拟机的单个交换机的抽象。然而,与先前在覆盖网络上的工作不同,每个覆盖节点实际上是物理网络的一个扩展——一个软件交换机,它封装了发送到其他服务器上运行的虚拟机的流量。逻辑集中式控制器安装这些虚拟交换机中的规则控制数据包的封装方式,并在虚拟机移动到新位置时更新这些规则。
  • 用于评估和测试SDN的网络虚拟化。将SDN控制应用程序与底层数据平面分离的能力使得在将应用程序部署到操作网络之前,可以在虚拟环境中测试和评估SDN控制应用程序。Mininet使用基于进程的虚拟化在同一物理(或虚拟)机上运行多个虚拟OpenFlow交换机、终端主机和SDN控制器,每个控制器都作为单个进程。使用基于进程的虚拟化允许Mininet模拟一个网络,在一台机器上有数百个主机和交换机。在这样的环境中,研究人员或网络运营商可以开发控制逻辑,并在生产数据平面的全面仿真上轻松地对其进行测试;一旦对控制平面进行了评估、测试和调试,就可以将其部署到实际的生产网络上。
  • 虚拟化(“切片”)在传统网络中,虚拟化路由器或交换机是很复杂的,因为每个虚拟组件都需要运行自己的控制平面软件实例。相比之下,虚拟化“哑”SDN交换机要简单得多。FlowVisor系统使校园能够支持在承载生产流量的相同物理设备上进行联网研究的试验台。其主要思想是将流量空间划分为“片”(PlanetLab的早期工作中引入的一个概念),其中每个片都有一个共享的网络资源,并由不同的SDN控制器管理。FlowVisor作为hypervisor运行,向每个SDN控制器和底层交换机讲OpenFlow。最近的工作建议对家庭网络进行分层控制,以允许不同的第三方服务提供商(如智能电网运营商)在网络上部署服务,而无需安装自己的基础设施。最近的工作提出了用自己的逻辑拓扑和地址空间来表示软件定义的网络的每个“片段”的方法。

【2019.11.27】SDN课程阅读作业(2)的更多相关文章

  1. SDN课程阅读作业(2)

    SDN课程阅读作业(2) 1.过去20年中可编程网络的发展可以分为几个阶段?每个阶段的贡献是什么? 答:可编程网络的发展分为三个阶段. (1)主动网络阶段 贡献: 1.对主动网络的研究开创了可编程网络 ...

  2. 2019 SDN课程阅读作业(2)

    1.过去20年中可编程网络的发展可以分为几个阶段?每个阶段的贡献是什么? 主动网络(从1990年代中期到2000年代初) 它在网络中引入了可编程的功能以实现更多的创新: 20世纪90年代初,主动网络研 ...

  3. [New!!!]欢迎大佬光临本蒟蒻的博客(2019.11.27更新)

    更新于2019.12.22 本蒟蒻在博客园安家啦!!! 本蒟蒻的博客园主页 为更好管理博客,本蒟蒻从今天开始,正式转入博客园. 因为一些原因,我的CSDN博客将彻底不会使用!!!(带来不便,敬请谅解) ...

  4. 【2019.11.27】SDN上机第5次作业

    参考资料: https://www.cnblogs.com/zzqsss/p/11924685.html 问答环节 描述官方教程实现了一个什么样的交换机功能? Ryu是一个基于组件的软件定义的网络框架 ...

  5. 2019 SDN第一次阅读作业

    目录 阅读 文章链接 阅读 阅读文章<软件定义网络(SDN)研究进展>,并根据所阅读的文章,书写一篇博客,回答以下问题(至少3个): 1.为什么需要SDN?SDN特点? 背景:传统网络的层 ...

  6. 17秋 SDN课程 第一次作业

    SDN第一次作业 你会选择作 网络编程 方向的程序员吗?为什么? 有可能.原因如下: 1.我的研究与网络密切相关: 2.SDN侧重软件实现,自然涉及socket等网络编程知识,属于基本功: 3.市场. ...

  7. 2019SDN课程阅读作业(2)

    1.过去20年中可编程网络的发展可以分为几个阶段?每个阶段的贡献是什么? 分为三个阶段,第一个阶段是主动网络(从20世纪90年代中期到21世纪初),它在网络中引入了可编程功能,以实现更大的创新:第二个 ...

  8. Train Problem I 分类: HDU 2015-06-26 11:27 10人阅读 评论(0) 收藏

    Train Problem I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  9. Retinex系列之McCann99 Retinex 分类: 图像处理 Matlab 2014-12-03 11:27 585人阅读 评论(0) 收藏

    一.McCann99 Retinex McCann99利用金字塔模型建立对图像的多分辨率描述,自顶向下逐层迭代,提高增强效率.对输入图像的长宽有 严格的限制,要求可表示成 ,且 ,. 上述限制来源于金 ...

随机推荐

  1. 【转载】C#中double.TryParse方法和double.Parse方法的异同之处

    在C#编程过程中,double.TryParse方法和double.Parse方法都可以将字符串string转换为double类型,但两者还是有区别,最重要的区别在于double.TryParse方法 ...

  2. js继承(十)

    一.原型链继承[子构造函数的原型对象是父构造函数的实例][对原型属性和方法的继承]1.每个构造函数[prototype]都有一个原型对象,原型对象中都包含一个指向构造函数的指针[constructor ...

  3. 证券secuerity经济术语

    证券按其性质不同,证券可以分为证据证券.凭证证券和有价证券三大类.证据证券只是单纯地证明一种事实的书面证明文件,如信用证.证据.提单等:凭证证券是指认定持证人是某种私权的合法权利者和持证人纪行的义务有 ...

  4. python学习之os模块

    1 window下的路径分隔符和mac上的一样吗 在win下用\做路径分隔符,mac里用/ 2.如何查看当前工作目录 import os os.getcwd() 3.如何切换当前工作目录 import ...

  5. 在Spring中使用AspectJ实现AOP

    在Spring中,最常用的AOP框架是AspectJ,使用AspectJ实现AOP有2种方式: 基于XML的声明式AspectJ 基于注解的声明式AspectJ 基于XML的声明式AspectJ 1. ...

  6. WPF 依赖属性前言

    WPF 依赖属性前言 ​ 在.net中,我们可以属性来获取或设置字段的值,不需要在编写额外的get和set方法,但这有一个前提,那就是需要在对象中拥有一个字段,才能在此字段的基础上获取或设置字段的值, ...

  7. ubuntu16.04重置root密码

    问题描述: 一个用户不能G附加多个用户组,在centos没有问题的.具体的还不清楚 问题解决:   重启进入启动项修改启动参数进入root中设置密码 参考: https://www.cnblogs.c ...

  8. maven学习笔记三(依赖特性,作用域)

    上一章中  我们看到了添加了个junit的依赖包.那么maven中想添加依赖的jar包我们只需要配置相应的dependency就行.例如: <dependency> <groupId ...

  9. 【Flask】 python学习第一章 - 5.0 模板

    jinjia2 模板 python实现 flask 内置语言  参照Djago实现  设置模板文件夹 设置模板语言 jinja2 demo6_template.html  ----> 从代码渲染 ...

  10. MYSQL中常见的时间处理

    use test; select getdate() select sysdate(); select now(); select current_timestamp select current_t ...