软件定义网络学习总结

软件定义网络 SDN 是一种新兴的网络架构,SDN 将网络的控制平面和转发平面解耦合,并使其直接可编程。应用层由不同的业务和应用组成,其可以对网络转发的策略进行管理和控制,也支持对于 QoS 的优化保障和对网络属性的配置以提高网络的利用率和安全性;控制层负责完成数据平面的抽象,实现网络拓扑和状态信息的维护,按照应用层业务的要求来控制和调用转发面资源,该层也被称之为网络操作系统(Network Operating System,NOS)层;基础设施层也称之为数据转发层,其基于业务流表来实现数据的转发和处理。控制层通过提供北向接口向应用层暴露编程接口,通过如 OpenFlow 等南向控制数据平面接口协议完成流表的分配。

下图描述了 SDN 的架构:

网络的智能化由基于软件的 SDN 控制器集中提供,其在全局视野上对网络进行管控,基于此架构,从网络应用和策略引擎角度来说,网络设备即是单个的逻辑交换实体。运营企业从单一的逻辑管理点进行运营商独立的网络控制,这大大简化了网络的设计和操作。SDN 同时也大幅度简化了网络设备本身,因为其不再需要理解和处理成千上万的协议标准而仅仅需要按照 SDN 控制器的的指令进行数据域的转发。

对于网络操作者和管理者来说,更有意义的在于它们可以通过编程的方式集中配置整个网络而不必要面对大量的设备和其各自巨大的代码量。此外,通过使用 SDN 控制器完成网络智能的集中控制,网络管理者可以实时的改变网络的行为并在数小时或几天内完成新应用和服务的部署,而不再像以往那样需要几周甚至几个月来完成业务部署。通过控制层的集中管控,SDN 使得网络管理者能够灵活的动态配置、管理、优化网络资源并提供安全性。

除了对网络进行抽象,SDN 架构提供了一系列的应用程序编程接口(Application ProgrammingInterface,API)来为网络服务和应用的部署提供能力,通过调用 API,应用层可以快速的完成诸如路由、多播、安全、接入控制、带宽管理、流量工程、QoS、存储优化、策略管理和各种面向用户需求的业务实现。

归纳来说,SDN 架构通过类似计算机领域的虚拟抽象技术来简化网络管控,通过屏蔽复杂的网络底层为上层应用提供简单的配置与管理。SDN 技术通过将网络控制和转发功能相分离实现转发抽象,通过引入全局视图为上层应用屏蔽底层的分布式状态信息和提供网络的全局视图来实现分布式状态抽象,通过在全局视图的基础上提供针对应用趋向的特定视图抽象来简化上层业务应用对于底层网络的操作,并以此促进应用与业务创新。

而实现数据转发平面和控制平面的处理协议是OpenFlow。 OpenFlow是由斯坦福大学的 Nick McKeown 教授提出的,其最初目的在于在现有的校园网络中部署新的网络协议,而现在OpenFlow 已作为 SDN 架构中的控制数据平面接口(南向接口)被广泛接受。ONF 的成立是 OpenFlow 发展史上的里程碑,其标志着 OpenFlow正式走向产业化发展道路,ONF 正在致力于围绕 OpenFlow 协议推行 SDN 标准和规范。目前OpenFlow 已经发布了多个版本,但 ONF 还在继续对OpenFlow协议进行完善,使 OpenFlow 成为稳定的商用部署标准。

OpenFlow 将网络控制功能与数据转发功能解耦合,从网络设备中分离出控制器,控制器负责控制逻辑的实现和流表的生成、维护、配置和派发,OpenFlow 交换机作为网络设备只负责按照流表项进行数据的转发而不需要关心上层逻辑,通过这种方式,网络可以灵活地动态进行逻辑控制和高层策略配置,而 OpenFlow 的流表结构使得数据面的处理颗粒度细化,实现了扁平化的网络处理层次。

Openflow 由控制器和 OpenFlow 交换机两部分组成,其相互关系如下图所示:

控制器中的网络操作系统 NOS 完成控制逻辑的实现,网络的基本信息由 NOS 通过网络视图的形式进行维护,NOS 上运行的各种应用通过对网络视图的调用完成对 OpenFlow 交换机的操作,以此来达到管控网络的目的。当前多种 NOS 系统已经发布,如基于 C++/Python 进行开发的NOX、基于 Java 语言进行开发的 Beacon等。

OpenFlow 交换机负责数据层面的转发,其至少包括流表、安全信道和 OpenFlow 协议三个部分。其中流表是由和每个流表项相关联的一个行为(action)所组成的,它负责指示交换机如何对流进行处理;安全通道连接了交换机和远端的控制器,它允许控制器和交换机之间通过 OpenFlow 协议进行命令和分组的交换。当数据流到达 OpenFlow 交换机时,流将按照流表的顺序进行对应匹配,并根据情况完成诸如线速度的存储转发、封装后转发给控制器或丢弃等操作。

OpenFlow 通道是交换机连接控制器的接口,用于控制器和交换机之间交换 OpenFlow 消息。所有消息必须按照 OpenFlow 协议中规定的格式封装后,在控制器和交换机之间传输。通过这个通道,控制器可以配置、管理交换机,接收交换机的事件信息,并指示交换机如何处理用户数据包等。OpenFlow 通道建立在安全传输层协议(TLS)或者无保护 TCP 连接之上。一个典型的控制器可以与多个不同的交换机相连,对应构成多个不同的 OpenFlow 通道。另一方面,交换机可以连接一个控制器,也可以连接多个控制器以确保可靠性。由交换机向控制器发起连接,该连接可以建立在单一网络之上,例如一个独立的专用网络,或者由该交换机管理的网络,这种情况下,即为带内控制器连接,唯一的要求是该网络必须可以建立 TCP/IP连接。此外,出于并行性考虑,OpenFlow 通道也可以由多重网络连接构成。

此外,依托于 SDN 技术实现的未来网络必须同时实现网络功能的虚拟化(NFV),才能对各种新兴业务进行全面的支撑。2012 年 10 月,由 AT&T 等大型运营商牵头的网络功能虚拟化标准工作组NFV 在欧洲电信标准协会成立,其目的在于标准化 IT 虚拟化技术,使得不同的网络设备以软件的形式运行在符合行业标准的高性能硬件设备中,实现网络设备和功能的虚拟化。

网络功能虚拟化旨在改变传统的网络架构,其通过使用标准的 IT 虚拟化技术来将许多网络设备以软件的形式安装在符合工业标准的高性能服务器、交换机和存储硬件中。如图所示,在数据中心、网络节点和端用户中的硬件设备只需要提供统一的标准化接口,传统的网络应用将直接安装在高性能硬件之上来进行业务部署。

网络功能虚拟化将会给运营商和网络本身带来许多益处,其大大减少了网络设备成本和运营过程中的能源消耗,节省了部署应用的成本;有力的减小了新业务部署的周期,加速了网络革新的速度,使得网络运营商能够快速的针对市场需求进行业务调整;通过 NFV,网络运营商可以将底层网络资源共享给多个租户,提供面向用户的目标服务;NFV 使得网络本身对外开放,打开了面向纯软件公司的虚拟应用市场的大门,同时在保证网络安全的前提下给小型公司和学术界提供了网络操作的接入,这将大大促进新业务和新型网络经济的革新和发展。

NFV 与传统硬件网络应用不同在于其通过标准的执行环境与管理接口实现网络功能与硬件的解耦合,这使得多种虚拟网络功能以虚拟机的形式共享底层硬件。NFV 的实现也面临着许多挑战和技术难题,首先必须定义统一的接口来实现可移植性与互操作性,只有实现了标准的接口才能将网络功能以软件的形式进行部署;其次网络对于时延和性能的要求很高,在NFV 环境中,所有的网络功能将以软件的形式实现,如何保证底层硬件资源的分配以提供与硬件相同的性能将是需要重点解决的问题;NFV 想要大规模部署,必须依托于全面高效的网络管理,NFV 使得网络更加的灵活也让网络的管理难度增大;与 SDN 的基本要求相同,NFV也必须保证虚拟机间的隔离和安全性要求,由于网络功能应用和对软件的管理都发生在相同的物理机器上,如何无差错无干扰的对单个虚拟机进行控制和管理也是在 NFV 进行全网部署时必须有效解决的难点问题。

NFV 与 SDN 是相辅相成的关系,两者之间并非相互依赖而是高度互补的关系,两者可以相互独立的实施,但是通过 SDN 中控制与数据平面相互分离的方式,网络功能虚拟化的性能可以得到巨大的提高,充分简化虚拟化实现的部署难度和操作。NFV 为 SDN 软件的运行提供了环境,可以说 NFV 和 SDN 联合组网将带来最大程度的虚拟化能力。

时间: 2024-08-14 01:54:43

软件定义网络学习总结的相关文章

《SDN软件定义网络从入门到精通》导论课

前言 SDN(Software Defined Network)即软件定义网络,是一种网络设计理念,或者一种推倒重来的设计思想.只要网络硬件可以集中式软件管理,可编程化,控制转发层面分开,则可以认为这个网络是一个SDN网络.所以说,SDN并不是一个具体的技术,不是一个具体的协议,而是一个思想.一个框架.狭义的SDN是指的"软件定义网络",广义的SDN的概念还延伸出了:软件定义安全.软件定义存储等等.可以说,SDN是一个浪潮,席卷整个IT产业. 「大物移云」的时代已经到来,传统的底层网络

华为VRP V8,软件定义网络的梦幻平台

编者按:在人们的工作和生活都越来越离不开网络的时候,降低社会使用网络的总成本,使网络应用的开发“平民化”正是人们所需要的.降低社会使用网络的总成本,华为全力打造的VRP V8网络平台力图构建网络领域的“APP Store”,让网络应用开发门槛降低,成为网络业务创新的孵化器. 当前封闭的网络无法满足实时的响应需求 在传统网络时代,网络是封闭的,这种“封闭”的网络使用方式,在快速变化的云计算时代,一方面,会降低业务部署效率和响应时间.另一方面,也无法满足业务要求网络“实时”响应的需求. 华为基于多年

实现软件定义网络(SDN)的6种途径

尽管围绕软件定义网络(SDN)的所有兴奋点都是由OpenFlow刺激起来的,但实际上利用各种标准工具对网络进行编程已经有一段时间了.OpenFlow并非实现SDN的唯一方法或者唯一途径.就目前而言,要想实现SDN,除了OpenFlow以外,至少还有6种方法或途经. 命令行接口(CLI) CLI是交换机和路由器的常用接口,网络经理们常用它来配置交换机,激活或者禁用某些服务. Arista网络的CEO Jayshree Ullal说,"要想开放,不只有一种方法.要想扩展,也不只一种方法.CLI虽然不

ios网络学习------11 原生API文件上传之断点续传思路

#import "MainViewController.h" @interface MainViewController () @end @implementation MainViewController - (void)viewDidLoad { [super viewDidLoad]; //下载文件 [self download]; } -(void)download { //1. NSURL NSURL *url = [NSURL URLWithString:@"ht

ios网络学习------8 xml格式数据的请求处理 用代码块封装

#pragma mark 加载xml - (void)loadXML { //获取网络数据. NSLog(@"load xml"); //从web服务器加载数据 NSString *str = @"http://www.baidu.com?format=xml"; //这里是乱写的 //1简历NSURL NSURL *url = [NSURL URLWithString:str]; //2建立NSURLRequest NSURLRequest *request =

软件定义网络(Software Defined Network, SDN)

软件定义网络(Software Defined Network, SDN)在InfoWorld于2011年11月公布的将影响未来10年的十项新技术中排名第二.2012年7月,SDN代表厂商Nicira被VMware以12.6亿美元收购,随后Google宣布成功在其全球10个IDC网络中部署SDN,这促使SDN引起业界的强烈关注.到底SDN与传统网络架构有何区别?其带来哪些颠覆性创新? 现有网络中,对流量的控制和转发都依赖于网络设备实现,且设备中集成了与业务特性紧耦合的操作系统和专用硬件,这些操作

ios网络学习------9 播放网络视频

IOS提供了叫做MPMoviePlayerController  MPMoviePlayerViewController两个类,可以轻松用来实现视频播放.MPMoviePlayerViewController只能全屏播放视频. #import "MainViewController.h" #import <MediaPlayer/MediaPlayer.h> @interface MainViewController () //视频播放器 @property (strong

ios网络学习------4 UIWebView的加载本地数据的三种方式

UIWebView是IOS内置的浏览器,可以浏览网页,打开文档  html/htm  pdf   docx  txt等格式的文件.  safari浏览器就是通过UIWebView做的. 服务器将MIME的标识符等放入传送的数据中告诉浏览器使用那种插件读取相关文件. uiwebview加载各种本地文件(通过loadData方法): - (void)viewDidLoad { [super viewDidLoad]; [self setupUI]; NSString *path = [[NSBund

网络学习详解-从平凡到独特

修炼篇: 每个人心中或许都有一个武侠梦,那么对于很多刚入行的网工,不知从何入手,总是想要去买一堆网络的"武林秘籍",闭关修炼一年半载的,然后王八之气一震当上武林盟主迎娶小师妹,貌似这个剧情合情合理,但是却又遥不可及. 虽说"武林秘籍"是前人留下的成功不二法门,只要勤勤恳恳总有一天你会成为武林一霸,可现如今江湖动荡,少侠可以全然不顾刀光剑影的江湖,不顾腰带中的银子,放下纷扰江湖事,一心只读圣贤书吗? 你等江湖,江湖不等你. 之前有一位江湖少侠找到我,说叶前辈我想要跟你