清华大学张朝昆:软件定义网络(SDN)研究进展

在5月19日“2015全球未来网络暨SDN技术大会”下午的平行会议“SDN/NFV应用及探索”上,清华大学的张朝昆为我们解读了软件定义网络(SDN)研究进展。

ZDNET网络频道 05月19日 综合消息:  在5月19日“2015全球未来网络暨SDN技术大会”下午的平行会议“SDN/NFV应用及探索”上,清华大学的张朝昆为我们解读了其在软件定义网络(SDN)技术上的研究进展。

以下是演讲速录(内容未经确认):

各位专家,大家好。我是来自清华大学的张朝昆。今天我非常有幸能够站在这里跟各位专家一同分享、探讨,我们的SDN相关的一些内容。作为今天最后一个汇报,我计划来给大家把我们的软件定义网络进行一个总结。承上启下,继往开来。

报告分为四个部分,不过都很短。首先,我们先来看一下SDN,这个诞生发展。SDN它是怎么出现的?我觉得前面的专家都已经很深入的分析了,我在这块也再赘述了。我们很多基础设施,封闭,网络僵化都会导致我们网络结构必须发生一个变革。但是这就能够让我们产生SDN吗?答案肯定是否定的。首先我们得有一定的研究基础。那么研究基础。比如我们之前可能会有一些主动网络的研究,主动网络就是一种可编程性的网络,它可以允许我们的用户平面能够去执行我们的这些程序。后面还有4D网络,就是把控制平面和数据层面分离,有了这样一些基础,我们才有理由相信SDN会产生。但是SDN还是一定能产生吗?我们还有一定的决定因素,我们得需要一种网络抽象的基础里面,才会决定了SDN的产生。其实这个东西,之前各位专家已经谈过了,计算机系统的抽象就做的非常好。由原来的一些低级的语言抽象成文件,然后抽象成高级的语言,让我们不用关注东西,只关注应用就可以了。我们的网络也可以同样做到这样一点,利用我们的抽象把我们数据平面的这些路径、依赖结合出来,这样我们的SDN的架构也就会产生出来。但是仅有产生,它是不是一种很能够让我们可持续发展的这样一个东西呢?显然我们有各种的专家,各种行业,大家都在说SDN的标准化,还有以后的商业化,都能够促进我们SDN的发展。下面我列了一些ONF、EDSI这些标准化的组织,还有我们市场的产值。有报道称,我们2013年SDN仅仅有两亿美元的产值,到2016年预计将达到20亿美元,2018年将会产生110亿美元的产值,大家可以看出SDN发展的趋势是多么的可观。在学术上面,当然更不可能是在后面了,而是走在前面的。我记得刚刚毕军老师也说了,像我们很多顶级的会议,这些会议都在一些专门的醒目的地方给了一些专题专门来去研究SDN的相关的报告。接下来我们就来简单的说一下SDN的结构,前面人已经说了很多,我是一个总结。

最开始有一个白皮书,说SDN分为控制层、数据层、应用层三个部分。后来SDN的体系结构,给了右边这个图,给到一个更加详细的图,它能够清楚的展示我们每个层面里面的具体的内容。对SDN来说,除了这种ONF提出SDN之外,还有一个主流的就是NFV。这也是NFV的白皮书里面给出来的,我们的算是SDN的它的一个相关的体系结构。现在NFV也发布了三个版本了。具体的内容我就不再讲了。最关键的大家都比较关心,又有ONF称的SDN,又有NFV称的也是个SDN,那么到底它们俩有什么样的区别和联系呢?我这也是个人的观点。我认为我们的SDN可能是站在一个网络的角度去看待一个问题,是来看待我们这样一个问题。它是强调我们控制平面与数据平面相分离这样的一些事情。而我们NFV它是在一些网源的角度来去看待问题,并且强调了我们是功能虚拟化这样的一些事情。此外还有一些更小的区别,底下的列表列出来了。

稍微总结一下,我认为,我个人的观点,NFV它的实现是不依赖我们的SDN的,因为它是基于网源的。但是由于它的产生也是在SDN的基础上产生的,所以NFV的发展是离不开我们SDN的。但是从另一方面来说,这两个的概念虽然不同,是因为是不同组织提出来的,大家都提的同样一个概念好像就不太好了。但是由于这么多年的发展,这四五年的发展,那么我们这个架构其实我认为已经趋于同化了。说完了这个架构,还有一个接口的事情,大家最熟悉的就是南向借口,Open Flow。Open Flow发展这几年,从开始的1.0到现在的5.0的版本,我们的流表支持的力度越来越高,由原来的单表到后来支持群组表,IPv6的技术,流表的同步机制,还有出口的表,等等的这些信息是不断地完善。当然除了这样的南向接口之外,Open Flow为了配合交换机的环境,那么这是南向接口的一些对比,大家看一下就行了。还有北向的接口,其实北向的接口更多繁多一些。但其实现在大家一直想的是说能够做一个统一的北向接口,好像还有一定的困难。除此之外还有东西向的接口,也就是不同的控制器之间的接口,它们需要做到有一些负载均衡的事情,还有提升一些性能方面的事情,这是东西向接口所要做到的事情。

关键技术方面,大家知道软件定义网络分为三个层次,我们也就从这三个层次,从数据平面、控制平面和应用平面,三个方面的细节上来来看一下里面的关键技术。首先,我们从底下的数据平面看起。数据平面里面最关键的技术就是我们交换机的设计。现在交换机大家希望能设计成什么样子。大家SDN这块比较了解了,我希望这个交换机是一个通用的交换机,同时大家又希望它能够灵活的去匹配我们控制器下发的规则,然后能够快速的进行转发。这样既通用又灵活的方式,我们怎么去做呢?我们是两种方式,一种硬件的方式,一种软件的方式。最开始的时候毕老师也讲到这一点。硬件的优势转发速度非常高,成本比较低,能耗比较小。软件跟它相反,灵活度比较高,它还有一些可以避免硬件自身的内存小流表大小限制的问题,它灵活易于处理突发流的事情。上面的图就是显示的在我们的转发速度硬件和软件上的区别。硬件方面,那我们假设是有些人就会提出来,我采用硬件的这样一个技术。它提到了一种可重构的,可重新配置的一种匹配表。这个就是它的一个基本的架构图,详细的我就不再说了。这样一个可充值的匹配表,可以灵活的,它的功能可以灵活的定义我们,增加我们的定义域,可以灵活的设置我们流表的宽度、深度这样的一些信息。这样就可以使得一个硬件能够比较灵活的来去完成我们软件的一些匹配的工作。它的代价其实并没有告诉大家,仅仅不高于14.2%这样的一个数据,所以它换来的代价是很小的,当然换来的能耗也非常小,所以这样的硬件是值得大家去关注的。

除此之外还有其他的论文,SDN上面有一篇论文,它在我们的交换机的内部增加了一个层次,它把原来的控制线下发的逻辑流表整合在一起,然后把它再分解成N个硬件所能识别的流表的形式。软件的方面,因为它有灵活性,我们现在就想怎么提高速度,显然很直接的方法,我们可以采用一些折中的方式。现在最关键的是到底采用硬件还是软件。其实就是这样,不同的专家有不同的观点,就看他怎么看待这个问题了。当然毕老师也提到了,我们可以用硬件和软件相结合的方式,这也是非常不错的方式。也可以根据实际的情况来判定这个东西到底采用硬件还是软件。比如说SDN上面还有另外一篇文章,它在说我们有记数器,这个东西不太适合放在硬件里面,认为它如果放在软件里面去执行,可能效果会更好。说完了这个交换机方面的设计我再来看一下我们控制平面这个控制器方面的设计,它又有什么样的需求呢?它能够提供一个可编程的平台,很方便的供这些运营商来去能够方便的开发。当然它也能够为我们提供一个全网的信息,通过全网信息逻辑上控制我们这些交换机。

最开始的方案大家也比较了解,NOX,这是一个比较早的控制器了,它可以完成整个SDN网络的控制。显然随着规模的增大,我们不能够满足这样的现状,可能NOX也不能完全这样的东西了。有两个方式,第一个提升自身的控制器的能力,采用多核的方式提升它。像NOXMT的控制器,它就能够做到这一点。另外就是采用多层次的控制器,一个是扁平式的控制器,它是每一个MT控制器管自己的一个域,然后每一个控制器之间进行一个交互,这是一个扁平式的。但是随着这个的增大,我们还有全局控制器。全局控制器来去管理局部控制器。控制器的开发,这块可能不如一些,像Open Stack开发的人更有经验,只是来去形而上的说一下。我们在不同的规模下面可能要考虑不同的控制器,一个小规模的你非要用大型的,分布式的控制器可能性能上来不一定很优。第二个,你语言的选择,你是选择C++,还是一些什么样的语言。

下面的表列出来了各种的控制器及它们所用的一些语言,还有它是不是一个分布式的情况,和它的一个简单的介绍。这里我不再多说了。另外,除了控制器的设计之外,我们还有一个关键性的技术,就是接口语言。因为我们的控制器毕竟要向上来去给开发商或者配置人员,提供一个简单的界面。向上的北向接口是非常重要的事情。它希望能够提供一个比较高级的配置语言,而不是仅仅简简单单的就是用Open Flow的这样一些基本的方式来去进行配置。现在最大的问题就是网络应用非常多,网络类型迥异。配置的语言抽象程度比较低,高级语言它的实时性从何保证呢?当然了,有不同的学者、专家也提出了不同的这样一些语言,这也是一个罗列。因为我是综述性质的,详细的大家可以找一些资料,这些都是一些非常好的高级的抽象语言。有了这样一些高级的抽象语言之后,现在有一个重要的事情,就是我如何将这些高级的语言能够转换成一个低级的配置的语言,这也是控制器需要完成的事情。它把我们高级的一些语言,通过一些它的优化器,然后把它转换成数据层面所需要的一些规则,然后并且用实时调度器把它分别下发下去,就做到这样的一个系统。并且它告诉我们,这个整个的性能,不管是从优化器这个方面,还是从实时调度器方面都达到了一个非常优的效果。

此外,我们控制层面这块研究的东西非常多。在理论上面我们还有一个特性方面的研究。有一个理论叫做CAP理论。刚才我记得有位嘉宾也提到这一点,在如果保证可用性的时候,它的容灾,容错性就不好保证。这个网络的容错性和一致性,可用性三者都不能够保证。很多的科研只能围绕一项或者两项来去优化它。在一致性方面,关键的问题,比如我们分布式的控制器就存在着不一致的情况。还有2012年的一篇文章,它专门研究一致性方面的策略,采用了一个叫做两阶段提交的方式,来去解决的这样一个事情。在可用性方面,如果我的交换机的请求负载过于重的话,使得这个控制器发生了瘫痪,这样的话这个网络也就不可用了,为了考虑到这一点,我们也是采用两种方式。一个是转移,就是平衡负载。我们将我们的分布式的控制器都进行一个转移,让大家能够均衡一下负载。另外一种方式,很多文章把我们的控制器的大小流的问题能够分解开,使得一些请求次数能够降低。

在容错性方面,我们SDN网络其实它同样跟传统网络一样,也存在网络节点和链路失效的问题。当然如果网络节点失效的话,这件事情相对好办一点对SDN来说比传统网络更具有优势,它可以让它旁边的,因为有一个节点,比如说我画的网络节点已经失效了,它旁边的一些交换机就可以告诉控制器它失效的一些情况,并且通过一个计算,然后能够重新的绘制它们接下来数据平面的一个数据流。所以这块是非常的方便。但是如果链路失效,这时候没有办法,别人已经不知道它的存在了,它只能采取传统网络回放的方式告诉大家我已经失效了。

刚才说完了控制平面。在应用平面,我们做的工作可能会更多一些。比如我们在网络互联方面,我们主要做了一些下一代互联网的过渡机制,还有数据中心,网络合作缓存方面的事情。我们来看一看,现在我们做的一些理论方面的研究。大家都知道IPv6和IPv4。现在有一部分的IPv6,这些IPv6用户想访问IPv4资源的时候,我们发现大家都知道,IPv4和IPv6这两个语意不兼容,很难把这两个网络兼容在一起,所以过渡网络就应运而生了。现在刚才有很多人也提到了ITF,那么在这个ITF上面,提出了各种的IPv6过渡技术,那么每一种过渡技术,因为网络环境不同,采用了不同的方案。可能今天你采用这个人的方案,我们部署上去,明天发现一个更好的过渡方案,我们还要部署上去。这个时候发现IPv6这个设备也无法更好的更换,所以它的可扩展性就非常的弱。这个时候我们就考虑到SDN的这样一个技术,因为SDN能够把一些路由控制和我们的数据传输分离开,然后让我们一些过渡的技术能够与我们正常的数据传输能够分离开。这样子的话就能够便于我们设备上面部署一些过渡的网络。这是我们的一个过渡的技术。在这里面我们简单的说一下就行了。我们就是把这个路由控制和我们的数据传输分离开来,然后底下的虚拟网络就是我们做的架构图,最下方就是我们的基础设施层,我们的数据,上边两层就是被虚拟下来,一层是IPv4的网络,一层是IPv6的网络,他俩就不存在不共融的一种现象。

第二个SDN在数据中心当中也有很好的应用。今天有一个热点事件,我们要开展SDN网络了,大家关注度就高一些。所以热点数据可能随时变化,当这个热点数据,可能会场上的一个人,我刚刚访问了会议的信息,可能你也访问了会议的信息,这个时候会发现很大的冗余。这个数据中心大规模的数据计算本身也会产生一些冗余,Mapreduce产生超过30%的冗余流量。这样的方式就非常的LOW,只能说减少一对服务器之间的冗余。如果我访问完了你再访问,这种交冗余就无法处理。我们采用了SDN的方式,我们在交换机当中添加一些缓存,SDN的控制器就将这些缓存部署在一个最优的交换机上面,然后采取我们最优的算法把它部署到相应的位置。并且怎么能够让这个用户感知到我们的信息在什么地方呢?用户的机器来去感知,我们采用指纹的方式,相当于很小的信令,由控制器通知沿路的路径上的交换机,告诉他们这个信息在什么地方。通过这样的方式,可以使得我们的冗余降到最低。当然我们的冗余旁边那个图是我们的实验,然后我们的冗余经过实验证明,它的冗余已经超过了50%的程度。

第三种,还是这样一个热点的数据,在因特网上是不是也有这样的效果。比如说交换机上的用户,如果他需要一个信息,他去右上角的因特网要这个信息。但是第二个人又去要这个信息的时候,对热点数据来说也是非常冗余的,如果我能放到交换机N上,他得到的信息就会非常快捷。我们希望把我们的数据尽量部署在离客户端最近的位置。我们SDN就可以在里边起到一个,通过一个全局的信息然后去掌握整个的全局信息,去把这个热点数据分配到离它最近的位置,有点类似于我们现在比较传统的那种CDN的技术。不过就是由我们的控制器SDN来去控制。这个是我们的效果。我们在节点的容量,如果比较低的情况下,加速性超过40%,节省流量35%。

最后,我们来看看我们SDN未来的发展趋势有哪些。比如像这种可扩展性,我认为将来大家不管在南向的、北向的、东西向的,做的工作可能开发的工作更加多一些。右上角的跨域通信的问题,本来SDN是可以掌握全局信息的,但是每一个域之间是不是真的能够把信息共享呢?这样的矛盾怎么解决,可能也是学术界和产业界共同思考的问题。共存性,不可能一下子都变成SDN,传统网络,IP网络和我们现有的SDN网络能不能共存,会有什么问题?怎么增量的部署?也是一个问题。中间件,由于有了中间件,导致了SDN全局信息是不是能够完整的获取,这也是一个值得我们思考的问题。现在政府希望,比如我们有些信息,我们无法去访问到,谷歌的一些学术,比如说我们没有办法访问到,但是为什么呢?是因为把它停掉的时候,是因为我不知道你在访问什么,所以我不得不停掉。那么SDN,如果有了SDN,如果它能够去判定这样的东西,这是非常好的。但是中间件这个东西,这个东西如果能够向别人去汇报这样的事情的话,是非常好的事情,所以中间件的研究也是未来非常重要的事情。当然还有嘉宾提到的物联网、无线网络,等等一些信息都是我们未来发展的趋势。

我再总结一下,SDN是现在比较热门的一个技术之一。下面有这样的一些各种的好处,比如说像我们的设备的更新换代可以独立,可以简化网络模型使得运营商从这里解放出来,可以掌握全局的信息,提升网络性能。这样的东西大家已经总结了很多,我不再赘述了。如果想发展我们的SDN,我想可能还要面临更多的困难。可能一些标准化、开源性、商业化还是要进一步发展。我今天讲的东西可能比较偏向一些学术性的东西,如果把它转向1.5,Open Flow1.5,没有2.0,我也看2.0,是不是产业界一下就能出来这个东西,这也是一个鸿沟,这个应该是我们产学研共同推进这个东西。

我是在清华大学的Netlab实验室,很早就有一个实验室了,从开始的X25的分组交换实验室开始,我们开始关注IPv4网络、IPv6网络,还有指导性的下一代互联的东西。我们依托的平台,大家可能也比较清楚的,就是中国教育网,就是我们现在教育网,还有现代的更进一步的CNGICERNET2。刚才我们说到的过渡技术,无线数据中心、云存储技术,这方面我们都有一些重要的文章。主要我们今天说的SDN,我们SDN取得了一些重要成果。其中我的这篇论文,就是现在我说的就是软件定义网络的研究进展,这五个月的时间,一月份发表的,到现在五月份,现在下载量3000多次,比2014年的全年的也能排到第二位,就是4个月超过他们一年的下载量。我还有这样的宣传画册,还有不到20份,如果有需要的可以发给大家,做一个小小的宣传。这就是我的报告,谢谢大家。

来源:业界供稿

0赞

好文章,需要你的鼓励

2015

05/19

18:27

分享

点赞