过去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. Matlab组合模式

    组合模式(Composite),将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性.组合模式的目的是让客户端不再区分操作的是组合对象(Compos ...

  2. 三星手机使用应用沙盒一键修改路由mac数据

    之前文章介绍了怎么在安卓手机上安装激活xposed框架,xposed框架的极强的功能大家都知道,能够不修改apk的前提下,修改系统底层的参数,打比方在某些应用情景,大家需要修改手机的某个系统参数,这情 ...

  3. 关于服务器程序运行中收到SIGPIPE(转)

    (此文为原文删减版,原文地址:http://blog.sina.com.cn/s/blog_502d765f0100kopn.html) 我写了一个服务器程序,在Linux下测试,然后用C++写了客户 ...

  4. 将html版API文档转换成chm格式的API文档

    文章完全转载自: https://blog.csdn.net/u012557538/article/details/42089277 将html版API文档转换成chm格式的API文档并不是一件难事, ...

  5. jQuery 页面加载后执行的事件(3 种方式)

    刚刚工作,没怎么用过 jQuery.今天在工作中遇到一个 jQuery 问题,页面加载的时候需要触发函数,第一直觉告诉我应该写成 onload(),结果不是.后来查了文档发现是 load(),但是版本 ...

  6. QuickStart系列:docker部署之Gitlab本地代码仓库

    gitlab是可以在本地搭建的使用git作为源代码管理的仓库. 运行环境: win10+vmware14+docker7+docker 1. 使用命令拉取镜像(非必须,耗时比较久,这里以ce为准,ce ...

  7. beta版本——第三次冲刺

    第三次冲刺 (1)SCRUM部分☁️ 成员描述: 姓名 李星晨 完成了哪个任务 认证学校那一栏增加检测机制的ui设计 花了多少时间 1h 还剩余多少时间 1h 遇到什么困难 没有困难 这两天解决的进度 ...

  8. Python开发应用-操作excel

    一. openpyxl读 95%的时间使用的是这个模块,目前excel处理的模块,只有这个还在维护 1.workBook workBook=openpyxl.load_workbook('path(. ...

  9. CentOS7.6编译安装redis5.0

    yum install gcc wget http://download.redis.io/releases/redis-5.0.0.tar.gz tar xvf redis-5.0.0.tar.gz ...

  10. git merge与git rebase区别(转载)

    这是最近看的讲的比较通俗易懂的rebase与merge的区别了 https://www.jianshu.com/p/4079284dd970