关于SDN和OpenFlow的调研: 从概念到实现外文翻译资料

 2022-10-27 03:10

英语原文共 26 页,剩余内容已隐藏,支付完成后下载完整资料


关于SDN和OpenFlow的调研:

从概念到实现

摘要:软件定义网络(SDN)已经成为管理大规模复杂网络的最重要架构之一,它可以满足网络有时需要重新配置的需求。SDN通过分离控制平面和数据平面可以很容易的进行流量监管。因此,网络路由器/交换机只需要根据控制层的流表来转发数据包。目前,OpenFlow是最受欢迎的SDN协议/标准和设计规范。尽管SDN / OpenFlow是一个相对较新的领域,它已经引起了了来自学术界和产业界的广泛关注。本文将对SDN / OpenFlow的设计实现的重点难点问题进行全面的调研,包括基本概念、应用程序、语言抽象、控制器、虚拟化、服务质量、安全,以及在与无线和光纤网络集成等方面的应用。本文中对不同方案的优劣进行了比较,探讨了这一激动人心的领域未来的研究趋势。这份调查可以帮助产业界和学术界致力于SDN研究的人员掌握SDN / OpenFlow最新的发展动态。

关键词:软件定义网络(SDN)、OpenFlow、网络虚拟化、服务质量(QoS)、安全

SDN产生的背景

传统的网络架构是在特定的硬件设备上实现特定的算法,来实现控制和检测网络中的数据流、管理路由路径以及决定不同设备在网络中的互联方式等功能。通常这些路由算法和规则都是在专用的硬件设备,如专用集成电路(Application Specific Integrated Circuits,ASICs)上来实现的。专用集成电路只能用来实现某一指定功能。拿数据包转发作为一个例子进行简单的说明。在传统网络中,在路由设备需要接收数据包时,它是通过嵌入到硬件设备中的一系列算法规则来寻找目标设备和数据包路径的。大部分情况下,数据包是以相似的方式发送到相同的目的地的,这样的操作在低成本的路由设备上就可以完成。高成本的路由设备则可以根据数据包的特性和内容以不同的方式来处理不同类型的数据包。比如思科路由器就允许用户通过定制的本地路由器编程来对不同的数据流进行优先级的标记,这样用户就可以在每个路由器上直接管理队列的大小。这种定制化的本地路由器可以更有效地调节交通拥堵,实现优先级控制。

这种方法带来的问题是,当前的网络设备无法满足大流量的需求,将严重限制网络的性能。随着网络的快速发展,数据中心之间互联的网络流量日益增大,诸如灵活性、安全性、可靠性和网络速度等问题的出现严重制约了当前网络设备的性能。由于都是在底层硬件设备上定义路由规则,当前的网络设备在处理不同类型、不同内容的数据包时缺乏灵活性。此外,构成英特网骨干的网络需要在不对底层硬件和软件进行大规模改动的情况下适应网络业务的变化,而传统网络想要达到这样的需求并不容易。

脱离底层硬件,通过软件模块来实现对数据处理规则的设计为解决这一问题提供了可能的方法。这种方法让网络管理员对于网络流量有更大的控制权,因而在提高网络性能,更加有效的利用网络资源方面有着巨大的潜力。这种方法就被定义为软件定义网络(Software-Dfined Networking,SDN)。这一概念最早是由美国斯坦福大学clean slate研究组提出。SDN网络提出的目的是提供一种开放的、用户可通过软件定义网络的方式。SDN将数据平面从路由器和交换机的控制平面分离,控制平面可以发送命令到硬件(路由器或交换机)的数据平面。这种模式可以掌控全局网络,并且可以不改变硬件单元上的设备配置就实现网络配置的改变。值得注意的是,根据网络规模大小的不同,控制层可由一个或多个控制器组成。如果使用多个控制器,则可以组成一个点对点高速。可靠的分布式网络控制器。在任何情况下,所有数据层的交换机都应拥有数据传输的统一视图。数据平面的交换机只负责根据控制平面的控制器所控制的数据流表来发送数据,这极大地减轻了交换机的工作量,因为它不再需要执行控制功能。

SDN并不是一个全新的概念。事实上,几十年前人们就可以使用某些基础设施(比如云计算硬件)从计算密集型应用(类似SDN数据平面的数据发送)来解耦网络操作系统(类似于SDN网络控制平面的控制功能)。当前,云计算能够使网络计算和存储不使用本地资源。这种控制层与数据层分离的工作模式在大规模、高速计算系统中起着关键性作用。

SDN的出现和应用,使得网络性能在网络管理、控制和数据处理方面得到了改善和提高。SDN在解决传统网络架构所面临的问题上极具潜力,同时,它正在被越来越多的应用所接纳,如云计算等。它可以应用于数据中心和工作负载优化系统。通过SDN技术,网络管理员可以不必单独的处理每一个设备,而是使用软件模块控制应用程序实现,从而控制数据流表,改变网络中交换机(或路由设备)的性能。这使得网络管理员能够任意改变网络中路由设备上的路由表(路由路径)。SDN还允许添加额外的控制器来控制数据,这样网络管理员就可以对数据包标记优先级或设置允许/阻止某些数据包流入网络。

SDN的出现有利于云计算技术的发展。首先,它使得云提供商更容易部署不同厂商的设备。传统的大云供应商(如谷歌、亚马逊等),为了能够方便配置路由参数(如路由表更新周期),必须得从相同的厂商那里购买高性能的交换机/路由器。不同厂商的设备各有自己的优缺点,然而这也使得在配置每个路由器时困难重重,因为每个厂商可能都有自己的语言语法。现在,只要每个厂商的路由器都遵循SDN的协议标准,云供应商就可以快速检测路由或是资源分配情况。其次,SDN使云用户可以更有效地使用云资源或通过创建虚拟流片进行科学实验。OpenFlow协议兼容GENI标准,这使得用户无需考虑网络物理层设备,就可以任意创建切片/裂片。无论基础设施是无线还是有线系统,不管云提供商在哪里部署什么存储单元,SDN网络中虚拟流的概念都能使得数据流顺利地通过所有云设备。

与传统网络架构相比,SDN网络的成本更低,因为它只需要遵循SDN协议标准的、最普通的、具备数据转发功能的交换机,同时它又能更好地控制网络流量。SDN主要有以下几个优势:

  1. 智能和速度:SDN网络能够通过其强大的控制平面来优化工作负载的分配,从而提高传输速度和资源利用效率。
  2. 简单的网络管理:管理员可以远程控制网络,改变网络特性,如根据工作负载模式改变服务模式和连接方式。这使管理员能够更有效和即时访问配置修改。
  3. 多链路租用:SDN的概念可以扩展到多个分区的网络,如数据中心和数据云。例如,在云应用程序中,多个数据中心租户需要跨多个网站将他们的应用程序部署在虚拟机中。云运营商需要确保所有的租户有良好的跨站点隔离性能服务于租户特定的网络交通优化,现有的云架构还不能满足。利用SDN分离控制平面、数据平面和资源可视化的特点可以很好的支持跨租户数据中心优化。
  4. 虚拟应用网络:虚拟应用网络使用网络资源的虚拟化(比如在每个路由上交换队列,分布式存储单元等)来隐藏用户应用程序中的底层物理细节。因此用户无需直接管理跨多个数据网站资源的分离和迁移问题就可以无缝地利用全球资源网络中分布式应用程序。虚拟应用网络可以由网络管理员通过使用分布式虚拟覆盖网络(DOVE)——一个具有透明传输、自动化以及更好地移动网络负载特点的已经虚拟化的技术方案来实现。事实上,大量的SDN应用正在往合理的虚拟化方向发展。虚拟化可以隐藏所有底层物理网络的细节,让用户更容易地检测网络业务。虚拟化已经应用在许多特定的网络中,比如大名鼎鼎的欧洲计划VITRO就是工作在虚拟无线传感网络中的。虚拟无线传感器网络将应用程序从传感器部署的细节中分离出来,因此我们可以在同一组物理传感器上运行多个逻辑传感器,这就使得同一个无线传感网络可服务于多个应用程序。

SDN的实现:总体介绍

在此部分,我们简要总结了SDN的设计方面内容。在2-8小节,会对每个设计方面进行详细的介绍。既然SDN控制层能够在软件的基础上重新报警,它的再编程也应该遵循常规的软件设计原则。本节,我们首先是简单的复习了软件设计周期。一个软件模块的设计主要有以下三步:(1)设计(2)译码,编译(3)整体的测试。SW调试器是重要的工具,例如GDB。集成开发环境(IDEs)像Eclipse提供了相近的使用水准。作为一种有前途的软件设计原则,基于组件的软件工程(CBSE)已经在4WARD 项目中被提出。开放服务网关协议也已经在软件设计的整个生命周期中使用。敏捷软件开发方法论与传统的瀑布方法论相比,能够在不同阶段提供更好的反射。

相关控制器有用C编写的Nox,Python编写的POX,Trema,Java编写的floodlight等。NOX是第一个实现了的OpenFlow控制器,它是用C 编写。NOX的扩展版本是在POX上实现的。NOX能够在Windows,Linux,Mac OS和其他平台上运行。 Beacon是一个基于Java的控制器,它的扩展版本是Floodlight控制器,它能够通过开放栈结构模拟SDN控制。当前,Trema 控制器同基于Wireshark的OpenFlow网络模拟器装载在一起。

在实现OpenFlow设计之前,有一些很好的仿真工具用于最初的概念验证,例如基于OF-SID的NS-2。Mininet 在最近成了一种很有用的仿真工具。

SDN/OpenFlow编程语言在一些项目中已经学习过。例如,FML可用于简单的SDN网络策略定义。 Procera定义了控制器的政策和行为。Frenetic语言允许在一个平台上编写另一个平台的程序。

SDN/OpenFlow调试器用于追踪控制器项目的执行状态,ndb仿GNU调试器tdb和使用断点和back-traces监控网络行为。Tremashark是将Wireshark插入到Treama中,现在进化成了另一个强大的调试工具OFRewind。FlowCheck能够检查流水表的更新状态。另一个综合性更强的工具是NICE,已经有一个初步的版本,可以用于分析代码和包流。通过上述工具,OpenFlow测试平台可能在全世界范围内建立,就像美国的GENI,欧盟的Ofelia,日本的JGN。

OpenFlow:一个使用广泛的SDN协议/标准

在真实应用中,SDN具有多种协议标准,其中使用最广泛的一种被称为OpenFlow。OpenFlow是一个协议,使SDN能够在软件和硬件层面部署实现。OpenFlow的一个重要功能是,SDN研究者们可以利用现有的硬件设计新的协议并分析其性能。现在是商用路由器和交换机的一部分。现在它已经逐步被应用到商用路由器和交换机中。

OpenFlow是由斯坦福大学提出的一种标准的SDN协议。在OpenFlow实验过程中,学者们围绕OpenFlow协议提出了很多设计方案。他们用开放源代码控制SDN通用控制器和交换机。OpenVSwitch(OVS)是应用最为广泛的交换机之一,是一种软件驱动的基于OpenFlow协议的交换机。其内核写在LINUX3.3上,固件兼容品科科技(Pica8)和Indigo。

OpenFlow是一种以流为导向的协议,用交换机和抽象接口来控制流。在SDN中,名为控制器的软件集中管理交换机来控制流量传输。控制器连接OpenFlow交换机,并通过OpenFlow来对其管理。一个OpenFlow交换机可以有多个流表,一个组表,和一个OpenFlow通道。每个流表包含流量入口,与控制器相连,可由组表配置流量入口。OpenFlow交换机通过OpenFlow接口互相连接。

OpenFlow路由设备最初的数据路径里有一个空的路由表和一些字段(如源IP地址、QoS类型等等)。这个表包含几个字段,比如不同接口的目的地址(接收或传输),以及一个操作字段,包含实现不同操作的代码,如包转发或接收等。此表可以根据传入的数据包进行填充。若一个接收到的新的数据包在数据流表中没有匹配的条目,这时转发到控制器处理。控制器负责数据包处理决定,例如,包丢弃,或者在数据流表中增加一个新的入口以便在下次接收到类似数据包时知道如何处理。

尽管SDN可以同时管理多个交换机,它依然是一个分布式系统,因此还是会有传统的复杂性比如丢包、控制包延迟等问题。目前SDN的开发平台,比如NOX和Beacon可编程,但依然十分复杂。随着新的协议(如OpenFlow)的出现,SDN正逐渐变得更易实现。控制平面生成路由表,数据平面通过表来确定数据包该发往何处。许多公司在他们的数据中心网络中应用OpenFlow协议来简化操作。OpenFlow和SDN让数据中心和研究人员可以轻松地抽象和管理大型网络。

OpenFlow架构通常包括以下三个重要组件:

  1. 交换机:OpenFlow定义了一个开源协议监控/修改不同的交换机和路由器上的流表。一个OpenFlow交换机至少有三部分组成:a)流表,每个流表有一个操作字段联系每个流入口;b)通信通道,在控制器和交换机之间提供命令和数据包传输的链路;c)OpenFlow协议,使OpenFlow控制器能够与任何路由器/交换机连接。
  2. 控制器:控制器可以根据用户的需求从流表中更新(修改、添加或删除)流入口。静态(动态)控制器可以只是一个运行在电脑上的软件单元,能够在实验用的测试电脑之间建立静态(动态)的数据包路径。
  3. 流表入口:每个流入口至少应该包含对应流项目的一个操作。大部分OpenFlow交换机支持以下三种操作:a)将该数据包发送到某接口;b)封装这个流的数据包并发送给控制器;c)丢弃该数据包。

OpenFlow已经经历了好几次更新,目前是1.3版本,但是只有1.0版本是可以实际应用在软件和硬件设计中的。第二版以及后续的版本改变了匹配构造使得每个头字段的数量和位数可以被指定,因此新的协议将变得更易实现。一个特定的控制器专门用来控制数据位位数,这使得网络基础设施更容易共享。服务器通常被用来做OpenFlow架构的控制器部分。

目前,在日本和欧洲,有好几个基于OpenFlow技术的项目正在进行。在欧洲,八个岛屿目前正在用OoenFlow互联。日本正计划创

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[153484],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。