Software

Stella981
• 阅读 486

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

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

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

##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. Software

##II. STATUS QUO IN NETWORKING 计算机网络可以分为三个功能层面:数据、控制和管理层面(见图3)。 Software

网络策略在管理层面制定,在控制层面执行,数据层面根据其规则来转发数据。 而在传统的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的体系结构、概念和构建块。 Software

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

控制和数据平面的耦合【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概述了促进可持续发展网络标准化的主要可持续发展目标和组织,以及迄今取得的主要成果。 Software

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

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

点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Wesley13 Wesley13
2年前
SDN 技术指南(一):架构概览
Background软件定义网络(Softwaredefinednetworking,SDN),一种新的网络架构。SDN提出的控制与转发平面分离、网络状态集中控制、支持软件编程等理念并不是什么新鲜事,但是长久以来一直没有非常突破性的进展。“为了让系统更好地工作,早期需要管理复杂性而后期需要提取简单性。”—唐·诺曼(D
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
3个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这