一位IEEE终身Fellow对SDN的理解

网络
无论是真旺还是虚火,SDN已经吸引了业界众多的关注,国内许多权威人士大谈SDN。那么为什么要搞SDN?SDN与传统的因特网有什么不同?如何研究SDN?中科院计算所研究员,同时也是IEEE终身Fellow的闵应骅,谈了他对SDN的理解

无论是真旺还是虚火,SDN已经吸引了业界众多的关注,国内许多权威人士大谈SDN。那么为什么要搞SDN?SDN与传统的因特网有什么不同?如何研究SDN?中科院计算所研究员,同时也是IEEE终身Fellow的闵应骅,谈了他对SDN的理解。以下是原文:

 

下一代互联网,大家都关心,方案也很多了。最近,看见国内那么多权威人士在各种场合大谈SDN,介绍SDN,总是不甚了了,都是比较宏观,比较笼统抽象,看不出来与现在的因特网有什么不同。只得静下心来读文章。看了一些文章以后,有了一些感想。不知是否正确,与大家分享一下,欢迎批评指正。

(1) 为什么要搞SDN?

因特网存在和发展了几十年。随着服务类型和规模的急剧增加出现了一些问题。长期以来通过命令行接口的手动配置阻碍了网络虚拟化的前进,操作费用高,网络刷新慢,容易引入差错。取消把应用联系到特定网络详情,譬如端口和地址,使物理具体事项的改变无需重写应用和手动配置网络设备的时延和费用,也许是一种思路。路由是一个大问题。路由器里面的路由表越来越复杂,分散到各地去路由,既做不到***的路由,又产生许多重复的计算。从你的PC到一个网站浏览器,可能要经过20-100路由器或交换机。如果一个包到来,只知道目的地,但不知道怎么走,那只有交给下一跳。下一跳要是也不知道呢?这么盲目跳下去,怎么就相信会到达目的地呢?那只能靠相邻路由器经常交换信息。由于各路由器独立工作,就会有许多重复计算。ISP只考虑自己这一块,并不管整个因特网。路由表只可能存本自治域的地址,区域外则送网关路由器。路由算法复杂就在于根据线索推断它所应该知道的东西。就像没有地图在高速公路上开车。如果能集中考虑路由就会更有效率。

再说应用。在智能手机中,一个应用可以使一个API为其他开发者所用,而不需要修改原来的应用。譬如说,谷歌地图提供一个API,某饭店可以把它的地点加进去。这些地址信息实际上重构了谷歌地图的数据,但不需要修改谷歌地图数据的结构。如果应用可以跳过网络交换,通过API,重构网络资源,就更能适应该应用的需要。现在的网络主要不是传送信息。它们并不需要智能自动控制,不需要基于线路交换的增值服务。我们需要统一的控制平面处理包交换和线路交换来提供服务。而IP网络不利于支持频繁的动态链路和动态连接。由于服务的多样化;用户数量增加,IP网络协议可以说是头痛医头、脚痛医脚,修补的补丁很多。而SDN统一在控制平面里面用编程来解决。功能网络图使许多网络功能可以用集中方式实现,又简单,又可扩展。又如游戏。游戏者在移动、在不同地方玩同一个游戏,地址不同、网速不同,比赛怎么能公平?OpenFlow可以使地址不变,在同一个游戏服务器上,基本保持网速不变。自己笔记本上的软件也不变。

再说管理。分散管理的方式不是最有效的。现在的SDN实现基本上是试验性的,但已减少网络管理经费50%,减少IP地址使用60%。谷歌把它连接全世界数据中心的G-Scale WAN换成OpenFlow网络,使预留空间的利用率提高95%,不损失任何东西。

再说安全。安全规则越来越多,分散管理各自为政,很难保证切实实行。集中管理起来以后,只要在控制层面不断完善和修改,就可以达到安全要求。

总之,现在网络的分散管理和信息处理,不如集中起来更加高效。

(2) SDN与传统的因特网有什么不同?

SDN体系结构用下图表示比较直观。

 

 


现在的因特网是点对点,用路由器、交换机、负载均衡器、网络地址翻译器或防火墙等连接起来。而SDN把网络作为一个整体的平台,将网络的控制平面与数据转发平面进行分离,并实现可编程化控制。在控制平面,网络操作系统就是控制器。它控制所有的APP,以及安全策略。在数据平面,网络基础设施,包括OpenFlow交换机。每个交换机除了存有流表之外,就是一个交换CPU。控制平面与数据平面的联系通过一个应用程序接口,譬如OpenFlow,遵循OpenFlow协议。当包到达交换机,交换机判断是不是一个流表中的人口。假如是,流表给出怎样传送该包;如果不是,交换机产生packet_in信息送回控制器。控制器把这事通知适当的控制应用。此应用根据网络状态和该应用逻辑,送回一个消息packet_out或者增加、修改流人口。控制平面根据流量特征进行交换排队。反应模式、状态要求和拓扑发现使控制平面完全可见和网络动态控制。拓扑发现包括控制屏幕集中管理相互连接着的交换机群(OpenFlow island)。控制器可以指令数据平面从交换机端口送出链路层发现协议(Link Layer Discovery Protocol)包到链接。基于这些信息,控制平面可以判断流岛内的连通性,从而构造网络拓扑。SDN的基础建设包括OpenFlow交换机,WiFi接入点(运行OpenFlow软件交换),虚拟局域网运行OpenFlow。网络路由优化、安全、策略、QoS、流量工程等,都在控制平面解决。所有网络控制逻辑作为网络操作系统上面的应用。这些应用做出控制决策,处理一个带说明的网络图,这就是软件定义的网络。

(3) 怎么研究SDN?

在美国,整个试验如果从2007年算起,已经进行了8年。他们的试验由斯坦福大学牵头,组织普林斯顿、华盛顿.、威斯康星、佐治亚理工学院、堪萨斯等10几所大学校园网通力合作,做了四个阶段的试验,一次比一次深入。他们在文章中,公开每一阶段都了什么试验,解决了什么问题。介绍该项研究的文章有8个人署名,致谢的人按贡献的领域大约有上百人。

这样大规模的试验,大家不是来抢大头的科研经费,而是协作怎么能让这事搞成。和我们国家的情况有所不同。我们的大单位、大牛常常是竞争课题,分完钱就各司其事了,做的结果对大众好像也没个交待,或者是开发一个已经成熟的网络给大家用,没有科研结果,也就完了。这是科研吗?这能创新吗?他们的研究中还有一个特点,就是尽量使用公司的产品,让公司出产品、出人力、物力,参与研制。公司对此也很有兴趣。因为公司要考虑:如果SDN真正商业化,自己能做什么,公司能得到什么利益。

上述粗略的介绍对于关心SDN的朋友也许会有一个概略的了解。但是,由于本人也是初学,而且,SDN是一个新的网络体系结构,问题还很多。本人衷心希望内行和外行的朋友多多提出问题。这种交流也许本身就是一种研究。

 

原文链接:http://blog.sciencenet.cn/blog-290937-727072.html

 

 

责任编辑:林琳 来源: 博客
相关推荐

2020-11-26 09:35:00

人工智能机器学习技术

2009-05-14 09:37:29

博士求职面试

2019-09-19 10:23:18

编程手机微信

2012-03-20 21:09:46

APP

2021-11-25 12:48:00

智能自动驾驶汽车

2021-10-13 10:46:11

深信服

2013-01-24 16:52:55

开发者Windows 8WP8

2013-07-12 09:24:51

技术经理项目经理

2013-08-22 14:26:22

2015-10-13 10:39:18

前端工具集合

2012-09-24 11:11:56

程序员资深程序员软件行业

2011-06-23 08:40:27

2021-07-05 08:30:18

阿里技术工程师

2021-03-18 16:02:43

区块链数字货币

2009-06-02 13:24:45

工程师忠告职场

2015-11-18 19:03:27

开发者Linux容器

2013-05-09 09:50:11

2013-12-05 13:41:15

女程序员奋斗

2015-11-19 14:48:01

LinuxLinux容器虚拟机

2016-04-27 10:25:44

产品腾讯看法
点赞
收藏

51CTO技术栈公众号