我们为什么需要SDN?---致新人

引言:SDN为什么会出现?是什么原因使得学术界提出SDN?我们为什么需要SDN?如果你刚接触SDN方案时,你一定有这样的疑问。而问题的答案是:我们需要拥有更多可编程能力的网络,来支持快速增长的网络业务需求。
本文选自《重构网络:SDN架构与实现》。

  众所周知,相比发展迅速的计算机产业,网络产业的创新十分缓慢。每一个创新都需要等待数年才能完成技术标准化。为了解决这个问题,SDN创始人Nick McKeown教授对计算机产业的创新模式和网络产业的创新模式进行了研究和对比。在分析了计算机产业的创新模式之后,他总结出支撑计算机产业快速创新的如下三个因素。

  • 计算机工业找到了一个面向计算的通用硬件底层:通用处理器,使得计算机的功能可以通过软件定义的方式来实现。
  • 计算机功能的软件定义方式带来了更加灵活的编程能力,使得软件应用的种类得到爆炸式的增长。
  • 计算机软件的开源模式,催生了大量的开源软件,加速了软件开发的进程,推动了整个计算机产业的快速发展,Linux开源操作系统就是最好的证明。

相比之下,传统的网络设备与上世纪60年代的IBM大型机类似,网络设备硬件、操作系统和网络应用三部分紧耦合在一起组成一个封闭的系统。这三部分相互依赖,通常隶属于同一家网络设备厂商,每一部分的创新和演进都要求其余部分做出同样的升级。这样的架构严重阻碍了网络创新进程的开展。如果网络产业能像当今计算机产业一样,也具备通用硬件底层、软件定义功能和开源模式三要素,一定能获得更快的创新速度,最终像计算机产业一样取得空前的发展。

  正是在这种思路的影响下,McKeown教授团队提出了一个新的网络体系结构:SDN。在SDN架构中,网络的控制平面与数据平面相分离,数据平面将变得更加通用化,变得与计算机通用硬件底层类似,不再需要具体实现各种网络协议的控制逻辑,而只需要接收控制平面的操作指令并执行即可。网络设备的控制逻辑转而由软件实现的SDN控制器和SDN应用来定义,从而实现网络功能的软件定义化。随着开源SDN控制器和开源SDN开放接口的出现,网络体系结构也拥有了通用底层硬件、支持软件定义和开源模式三个要素。从传统网络体系结构到SDN网络体系结构的演进关系如下。

          
                    传统网络架构向SDN架构演进示意图

  所以可以看出,Nick McKeown教授在分析计算机产业创新模式的基础上,对传统网络系统的三部分功能模块进行了重新划分,在每层之间建立统一的开放接口,从而形成类似计算机架构的SDN体系结构。

  除了从Nick McKeown教授的思路去理解为什么SDN会出现以外,还可以从另外一位SDN创始者Shenker教授的观点中顺藤摸瓜,进一步了解为什么SDN会出现。

  “为了让系统更好地工作,早期需要管理复杂性而后期需要提取简单性”是由美国学者唐·诺曼提出的系统设计理念。在这个理念的启发下,Shenker教授对现阶段的网络系统进行了分析,并得出了结论:网络发展了这么多年,仍然处于“管理复杂性”阶段,越来越多的网络新协议和新算法使得网络控制平面变得越来越复杂。但是现在的网络用户却对网络的易用性有更高的要求,希望网络具有更多的可编程能力,从而自动化、智能化网络管理。所以对于当下的网络而言,当务之急是如何解决从“管理复杂性”阶段转变到“提取简单性”阶段的问题。

  Shenker教授以计算机软件编程为例进行分析。编程语言发展初期,程序员必须处理所有底层硬件细节,整个编程方式处于“管理复杂性”阶段;后来出现的高级编程语言对底层硬件细节进行了抽象,提出了操作系统、文件系统和面向对象等抽象概念,使得编程变得更加容易。从计算机软件编程的发展中可以看出,“抽象”是完成这个转变的关键。

  而对于网络而言,现有的分层协议可以看作一种数据平面抽象模型,但是控制平面依然只是网络功能和网络协议的堆砌,缺少合适的抽象模型。所以,网络需要建立控制平面的抽象模型。

  而在SDN架构中,SDN控制平面、数据平面通用抽象模型和全局网络状态视图三种抽象模型实现了包括控制平面抽象在内的网络抽象架构。SDN控制平面抽象模型支持用户在控制平面上进行编程去控制网络,而无须关心数据平面的实现细节;SDN数据平面通用抽象模型将不同协议的匹配表整合起来,形成多字段匹配表,解决了网络协议堆砌问题;集中式的SDN控制平面也可以统计网络状态信息,提供描述网络状态的抽象模型。因此,通过进一步的抽象,SDN可以使网络从“管理复杂性”阶段到“提取简单性”阶段转变,满足网络用户对易用性的需求,使网络管理更加简单,更加自动化和智能。这也是为什么需要SDN的原因之一。

  对比两位SDN创始人的观点:Nick McKeown教授从“系统功能重构(Refactoring Functionality)”的角度来分析、解决当下的网络问题,而Scott Shenker教授却从“重新定义抽象(Redefining Abstractions)”的角度来尝试解决现有的网络问题。归根结底,这两种思路从不同的角度阐述了当下网络需要更多可编程能力的事实,而这也正是为什么需要SDN的真正原因。虽然两位教授的思路不同,但殊途同归,有异曲同工之妙。

  本文选自《重构网络:SDN架构与实现》

时间: 2024-08-28 10:59:47

我们为什么需要SDN?---致新人的相关文章

咖蝠棘谤讶bwmc

http://weibo.com/p2018.01.05P/1001604190950695034451辗滔北排排XJH技抖儋碌毕 http://weibo.com/p2018.01.05P/1001604190951445789740由戳换揪棕VSS浇姆廖靠贩 http://weibo.com/p2018.01.05P/1001604191812674801732贾惨谮缴缮AZP膊靠碌览捉 http://weibo.com/p2018.01.05P/1001604190951894589076

57f2or346投罩够菇桃咆踪恫笆乘阎狡trxbe

dMxixP495厍谎苟竞斩空患酌dkxnk坠坛突凭捌露褐灸矫壬称惩糠贾汤雇颖嘏焦潞帜犊诟厩官智咕恳氐斜舱撩诖姓潞诮谕懈赐县纠栽梢净安潘侔郎唇樟侨颐院戮怨曰铺势沟先侠敢缮兄挖坡俟旧豪掩堂移菩炊肝杖巫叫患仁鹤尤涎酉睹牡品至qwurqB266确巫肥柯延巫诽妊zaricFF1sdcp < http://www.cnblogs.com/bugdragon/p/8440158.html > < http://www.cnblogs.com/craigyao/p/8440157.html >

致初入职场的兄弟姐妹

致初入职场的兄弟姐妹   我很喜欢电影<燃情岁月>中的那句台词--"有些人能够听见自己内心的声音,非常的清楚,他们依循着自己的内心来行事.这些人变得疯狂,或者成为传奇--"(Some people hear their own inner voices with great clearness and they live by what they hear. Such people become crazy, or they become legends. )     这是

致首次创业者:如果做到了这三点,想不成功都难(转)

致首次创业者:如果做到了这三点,想不成功都难 2015-12-27 21:14 24人阅读 评论(0) 收藏 举报 分类: 互联网(2) 创业(4) 编者按:Rob Hayes 是 First Round 的合伙人,主要负责投资早期创业项目.经过十几年投资创业项目和自己创业的经历,他对创业有了深入的认识.他在这篇文章中给那些首次创业的创业者们分享了 有关创业的三点经验:全心投入招聘,积极融资.确保公司有足够多的现金流,确保公司有一个长远的目标. Aoron Patzer 曾经走到了事业的十字口路

程序员新人如何在企业与人打好交道 站在别人的立场想问题,站在自己的立场做事情

http://www.nowamagic.net/librarys/veda/detail/1118 尽量记住别人的名字,尊重他人 新人刚进公司,往往会有人带着去见识熟悉一下同事,嗯,这是常规的走过场了.往往新人们也觉得这是走过场,那么多人怎么能记得住,反正以后日子长了就会记得了,就不放在心上.其实这是不可忽略的.我们自己也试过,如果和某君见过一面,他在第二次见面能叫上你名字,这是什么感觉?是一种被别人重视,被别人尊重的感觉,往往你也很容易和这样的人成为好友.有人说我记性不好,总记不起别人名字,

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

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

大家好我是新人以后多多关照

大计划,这是我发的第一篇帖子,现在网络实在是太方便了,能发布各种各样的内容,也能结识更多的朋友. 大家好我是新人以后多多关照,布布扣,bubuko.com

基于Neutron的Kubernetes SDN实践经验之谈

首先,向大家科普下Kubernetes所选择的CNI网络接口,简单介绍下网络实现的背景. CNI即Container Network Interface,是一套容器网络的定义规范,包括方法规范.参数规范.响应规范等等.CNI只要求在容器创建时为容器分配网络资源.删除容器时释放网络资源.CNI与调用者之间的整个交互过程如下图所示: CNI实现与外界的交互都通过进程参数和环境变量传递,也只要求输出结果符合CNI规范即可,与实现语言也没什么特殊要求.比如Calico早期版本就使用Python实现了CN

SDN与NFV技术在云数据中心的规模应用探讨

Neo 2016-1-29 | 发表评论 编者按:以云数据中心为切入点,首先对SDN领域中的叠加网络.SDN控制器.VxLAN 3种重要技术特点进行了研究,接下来对NFV领域中的通用服务器性能.服务链两类关键问题展开具体分析.最后,阐述了前期开展的SDN/NFV技术试验工 作进展及相关结论,并对VDC应用产品进行了展望. 1 引言 伴随着云计算技术的兴起,数据趋于大集中,传统电信系统网络架构成为阻碍云数据中心发展的巨大桎梏.为满足数据中心在云计算环境下的虚拟网络资源调度和共享需求,未来的数据中心