Software-Defined Networking:A Comprehensive Survey

摘要
传统网络复杂且难以管理,根据预定义策咯也难以对网络进行配置,也难以重新配置。
软件定义网络编程(Sdn)是一种新兴的模式,它能够通过打破垂直集成、将网络控制逻辑与底层路由器和交换机分离、促进网络控制的(逻辑)集中化和引入网络编程能力来改变这种状况。

关键词:载体级网络;可靠性;基于流程的网络;网络管理程序;网络操作系统(Noss);网络虚拟化;OpenFlow;可编程网络;编程语言;可伸缩性;软件定义环境;软件定义网络(Sdn)

主要内容
前两节介绍了SDN的背景,介绍了SDN的动机,并解释了这一新范式的主要概念以及它与传统网络的区别。
第三节介绍围绕SDN的一些标准化工作。
第四节是本综述的核心,使用自下而上、分层的方法对SDN基础设施的构建块进行了广泛和全面的分析。
第五节中是关于正在进行的研究工作、挑战、未来工作和机会的讨论。
第六节总结了本文。

I. INTRODUCTION

Traditional IP networks are complex and hard to manage.
To make it even more complicated, current networks are also vertically integrated.
Software-defined networking (SDN) [4], [5] is an emerging networking paradigm that gives hope to change the limitations of current network infrastructures.
Although SDN and OpenFlow started as academic experiments [9], they gained significant traction in the industry over the past few years.
The controller exercises direct control over the state in the data plane elements via this well-defined application programming interface (API), as depicted in Fig. 1.

II. STATUS QUO IN NETWORKING

计算机网络可以分为三个功能层面:数据、控制和管理层面(见图3)。

网络策略在管理层面制定,在控制层面执行,数据层面根据其规则来转发数据。
而在传统的IP网络中,控制平面和数据平面是紧密耦合的,整个结构高度分散,这在早期的互联网设计中被认为是十分重要的。
然而,这也是传统网络僵化、管理和控制复杂的根本原因。
网络的错误配置在如今十分常见。
【数据包丢失、转发循环、设置意外路径或违反服务契约【packet losses, forwarding loops, setting up of unintended paths, or service contract violations】】
网络运营商【operators】必须获得和维护不同的管理解决方案和相应的【corresponding】专业团队。建设和维护网络基础设施的资本【capital】和运营【operational】成本很高,投资周期很长,这阻碍【hamper】了创新和新功能和服务的增加(例如,出入控制、负载平衡、能源效率、交通工程)。
为了缓解【alleviate】网络内部缺乏路径功能【in-path functionalities】的问题,大量【myriad of】专门的组件【components】和中间盒,如防火墙、入侵检测系统【intrusion detection systems】和深度数据包检查【inspection】引擎,在现有网络中大量出现。

III. WHAT IS SOFTWARE-DEFINED NETWORKING?

我们将SDN定义为具有四大支柱【pillars】的网络体系结构。
1. 控制平面和数据平面分离。
2. 转发决策是基于流的,而不是基于目标的。流由一组作为匹配(过滤器)准则【match (filter) criterion】和一组操作(指令)【actions (instructions)】的分组字段值【packet field values】广义地【broadly】定义。
3. 控制逻辑被移动到外部实体【entity,】,即所谓的SDN控制器或NOS.
4. 网络是可编程的,通过运行在NOS之上的软件应用程序与底层数据平面设备交互。
spurious 假的,欺骗性的
控制逻辑集中的好处。
SDN可以通过三个基本抽象来定义:转发、分发和规范。
图4描述了SDN的体系结构、概念和构建块。

图5显示了控制平面和数据平面的耦合。

控制和数据平面的耦合【coupling】(及其在网络元素中的物理嵌入【physical embedding】)使得开发和部署新的网络特性(例如路由算法)非常困难,因为它意味着通过安装新固件【firmware】和在某些情况下对硬件进行升级【upgrades】来修改【modification】所有网络设备的控制平面。
load balancers 负载平衡器
intrusion detection systems (IDSs) 入侵检测系统
而SDN所做的就是将控制平面与数据平面分离,这有以下几个好处:
1. 编写应用程序更加容易
2. 所有应用程序都可以利用相同的网络信息来做出更有效的决策。
3. 这些应用程序可以从网络的任何部分执行操作。
不同应用程序的集成【integration】变得更加简单。

A. Terminology

1)转发设备(FD)【Forwarding Devices】
2)数据平面(DP)【Data Plane】
3)南向接口Southbound Interface (SI)
4)控制平面Control Plane (CP)
5)北向接口Northbound Interface (NI)
6)管理平面Management Plane (MP)

B. Alternative and Broadening Definitions

SDN的定义有很多种,不一定就是标准的规范定义:
1.Control Plane/Broker SDN:一种网络方法,保留现有的分布式控制平面,但提供新的API,允许应用程序(双向)与网络交互。
2.Overlay SDN:软件或基于硬件的【software- or hardware-based】网络边缘被动态编程以管理管理程序和/或网络交换机之间的隧道【tunnels】,引入覆盖【overlay】网络。

C. Standardization Activities

表1概述了促进可持续发展网络标准化的主要可持续发展目标和组织,以及迄今取得的主要成果。

D. History of SDN

尽管SDN是一个新的概念,但是其是各种之前思想的集合。它以活动网络、可编程ATM网络等可编程网络上的工作以及关于控制和数据平面分离的建议为基础。
在表2总结了之前与SDN有关的工作的不同实例,并分为五类:

最早的分离数据和控制信号的举措可以追溯到1980年代和90年代。

Software-Defined Networking:A Comprehensive Survey--Day1的更多相关文章

  1. Software Defined Networking(Week 1)

    前言 课程名称:软件定义网络 课程地址 Coursera上新的一期还没开课,所以是YouTube. Instructor:Nick Feamster Get Started 对于本次课程,主要的新内容 ...

  2. Software Defined Networking For Dummies, Cisco Special Edition

    从接触SDN开始,不论是硬件还是软件,一直都是从具体的点开始,慢慢的勾勒出自己认为的SDN的样子,相信读完这本思科出的关于SDN的书会对其有新的认识 这本书的名字就是Software Defined ...

  3. Improving Network Management with Software Defined Networking

    Name of article:Improving Network Management with  Software Defined Networking Origin of the article ...

  4. Software-Defined Networking: A Comprehensive Survey

    文章名称:Software-Defined Networking: A Comprehensive Survey 文章来源:Proceedings of the IEEE ( Volume: 103  ...

  5. Software-Defined Networking A Comprehensive Survey --阅读_day1

    The Internet has led to the creation of a digital society, where (almost) everything is connected an ...

  6. Method of Seamless Integration and Independent Evolution of Information-Centric Networking via Software Defined Networking

    A method of transferring data between a software defined network (SDN) and an information-centric ne ...

  7. A Survey of Machine Learning Techniques Applied to Software Defined Networking (SDN): Research Issues and Challenges

    将机器学习用到SDN中的综述:研究的问题和挑战 从流量分类.路由优化.服务质量(Qos)/体验质量(QoE)预测.资源管理和安全性的角度,回顾了机器学习算法如何应用于SDN领域. 相关知识 在SDN中 ...

  8. Software-Defined Networking A Comprehensive Survey --阅读_day2

    3. 什么是SDN?(WHAT IS SOFTWARE-DEFINED NETWORKING?) The term SDN was originally coined to represent the ...

  9. Software Defined Networking(Week 2, part 2)

    History of SDN 1.3 - 1.4 课程地址 Network Virtualization 网络可虚拟化,可以说是SDN的一项核心内容,同样也源自很多先前的技术和思想.我们先讨论何为网络 ...

  10. Software Defined Networking(Week 2, part 1)

    History of SDN 1.1 - 1.2 本节讨论从上世纪八十年代时到现在为止出现的SDN的思想和发展历史.了解历史,可以明白技术后面的成因以及一些原则,并从架构上去大致掌握.了解一些主旨. ...

随机推荐

  1. 关于ip判断

    php正则实现ip段判断 $ip = '22.18.10.2'; $arrayip = array('123.12.*.*','22.18.10.*');//ip段 $ipregexp = implo ...

  2. Nginx HTTPS功能部署实践

    本文出处:http://oldboy.blog.51cto.com/2561410/1889346 30.1 文档目的 本文目的提高自己文档的写作能力及排版能力,加强上课所讲的内容得以锻炼也方便自己以 ...

  3. QGIS里的编程模型

    项目(QgsProject) 用于读写项目状态 图层分组(QgsLayerTreeGroup) 项目树的分组节点,用来存放图层节点. 图层节点(QgsLayerTreeLayer) 项目树的图层节点. ...

  4. android java.lang.ExceptionInInitializerError

    11-08 13:36:05.108: E/AndroidRuntime(5318): java.lang.ExceptionInInitializerError 11-08 13:36:05.108 ...

  5. calico 网络流量 过程 分析 apt-get install telnet

    1.calico node 容器在kubernetes中以DaemonSet 的方式运行,容器的网络模式为hostNetwor,与host共享网络栈,拥有相同的Ip和hostname 2.查看某个po ...

  6. 常用的php数组函数

    以下是自己比较常用的数组函数 数组元素增加减少array_pusharray_poparray_shiftarray_unshift array_splice  (对数组的增删改) array_sli ...

  7. Oracle中Error while performing database login with the XXXdriver; Listener refused the connection with the following error; ORA-12505,TNS:listener does not currently know of SID given inconnect descrip

    一次连接数据库怎么也连接不上,查了多方面资料,终于找到答案,总结 首先应该保证数据库的服务启动 在myeclipse的数据库视图中点 右键->new 弹出database driver的窗口,  ...

  8. [POI2007]旅游景点atr BZOJ1097

    分析: 我们可以考虑,因为我们必须经过这些节点,那么我们可以将它状压,并且我们因为可以重复走,只是要求停顿前后,不要求遍历前后,那么我们之间存一下点与点之间的最短路,之后每次转移一下就可以了. f[i ...

  9. MiZ702学习笔记9——XADC采集片上数据PS版

    这次借助zynq的内嵌的XADC来采集zynq内部的一些参数: •VCCINT:内部PL核心电压 •VCCAUX:辅助PL电压 •VREFP:XADC正参考电压 •VREFN:XADC负参考电压 •V ...

  10. coco2d-x游戏逻辑结构

    在Cocos2d-x中开发游戏的主要逻辑和结构是:先创建场景,在场景上添加一层或多层,然后可以在指定层上添加精灵.菜单.文字等,可以为精灵.文字执行某个动作(或者移动),检测玩家触屏事件,开启任务调度 ...