毕军:互联网体系结构变革与广义SDN

在5月19日“2015全球未来网络暨SDN技术大会”下午的平行会议“SDN/NFV应用及探索”上,清华大学教授、博士生导师、网络体系结构和IPv6研究室主任毕军首先开讲,为与会嘉宾带来了题为“互联网体系结构变革与广义SDN”的主题演讲。

ZDNET网络频道 05月19日 综合消息: 在5月19日“2015全球未来网络暨SDN技术大会”下午的平行会议“SDN/NFV应用及探索”上,清华大学教授、博士生导师、网络体系结构和IPv6研究室主任毕军首先开讲,为与会嘉宾带来了题为“互联网体系结构变革与广义SDN”的主题演讲。

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

今天我们是SDN专场,技术一会儿各位专家都会谈,我稍微形而上一些,从未来网络谈一些,所以我的题目是互联网结构变革与广义SDN。

现在大家都在说互联网体系结构发展下去如何做,所以我讲第一个问题,想跟大家一起分享一下互联网成功的因素,到底它成功的基因是什么?如果我们今天再变革互联网应该继承这样的基因,所以体系结构的革新。我们的副标题,窄腰还是胖腰,大家看我的身材就是胖腰的例子,就是能装东西,今天我们设计的体系结构还是功能比较瘦的,还是能够包容大家的设计和创新。第二个问题,谈一谈对SDN的一些见解。SDN的构架好处在于它包容很强,能够支持大家创新的思想和技术,再往核心层发挥作用。所以接着谈一谈SDN。

但是对SDN现在也有一些争议,很多人说它好,也有人说它还不够好,这很很正常,对同一事物有不同的看法,可能有两个SDN。我认为应该把这个分析一下。第一个,为什么成功。我想每个人有自己不同的,对这个问题的回答。为了谈这个问题,我想从网络体系结构,这个学科角度,因为来自大学,从这个角度来谈。体系结构这个词,建筑学有这个词,所以实际上我们这个学科非常有特色,它和很多自然学科不一样,可以说我们是一个设计的学科。比如说物理,上帝或者自然法则也好,创造了这样一个现实世界。那么科学家们去发现自然的法则,然后利用它去创造一些机器。即使是离我们很近的通信学科,它也受很多自然的限制,比如说光和频谱,这都是自然存在的。到我们网络结构,纯粹是我们头脑中创造的虚拟世界,所以你可以设计非常好的结构。所以和建筑学一样,有各种形状的建筑,它的来源是业主的需求,也不是随便设计的。这个业主需要引人注目,印象深刻,像央视一样标新立异的,像大裤衩一样的楼。像火车站,如果要体现北京欢迎你,这个大门,体现中国特色它就是好的设计。设计不可能满足所有需求,所以一般它要满足一到两个主要的需求,其他的需求是尽力满足。所以我们今天看互联网很多功能,实际上和当初的设计原则有关系。

我们回顾一下,我们有一个顶级的学术会议叫,我们称之为互联网体系结构设计师,都是在它的领导下设计出来的,他最著名的名言就是拒绝国王,拒绝总统,拒绝投票,所以投票都是不举手的。这是非常有名的。88年,他发的文章回顾了美国国防部研究局对建筑师,提供设计需求时给了哪些需求。就是这篇文章,大家可以看一看。这个文章里,他说有一个基本需求,就是把已经存在的网给它连起来。因为当时每个大学都有自己的完整的站,但是互相不能互通,它有很多更新没法传递命令或者攻击的信号,所以需要把它连起来。这是必须实现的。这上面是我给学生讲课的PPT,我也分析做的好不好。互联非常好,因特网这个词就是把网连起来,其他的有灵活性,你要维护,所以这是分布式的网络,分布式的路由。有的做的很差,有的基本没有做到。所以我们今天说好多,服务上的互联网提供不了,和当时的设计理念有关系。

与时俱进的看,我们今天非常需要的,当年的一个几吨的计算机,今天我们几两的手机把它接收能力还强,当时是不可想像的,你不能对前人苛刻的要求。你要说为什么让它支持银行,支持互联网+,为什么我们对这么一个简单的网发展到今天,我们到互联网+时代,这是按照刚才的需求设计出来的互联网体系结构,我们一般称为沙漏计时器。功能很简单,就是把它连起来,通过打方框的,底下还有协议,由于最后这个窄腰一统天下,其他的没有作用了。最关键的是点上,就是这个应用进程,AP,在这个小方块,端口,这个结构虽然窄腰,它之所以厉害就是让大家能够创新。这样的应用,它们之间这个绿色箭头,从传输层以上大家都是邻居,看不到底下的路由器的节点。然后这个复杂的处理也在它们多系统之间,就是这两头的主机,它们很完整,很智能,像姚明一样,它们传球,底下的路由器像潘长江一样够不着。所以只能在这些高个子之间。所以为什么现在互联网公司能过得很好,因为它们有接口,老板有一个想法,马上一编程上线,我们手机经常换,一到重大事件,一些功能推送出来了。由于这样的体系结构,虽然窄腰的很差很简单,但是它打开了创造的阀门,让大家能够去创造。当然是在应用层创造。这样的结构大家觉得很好,是因为看到了APP和应用很好,如果单拿窄腰的功能和失败的系统,让专家打分肯定说这是什么玩意儿,肯定不行。但是它打开了这样一个墨盒,让大家来创造。你要让互联网之父,他可能想不出微信这些东西。是靠构建了生态系统,让大家去共存、竞争、演化,最后留下来的必然是好的。

但是这个有两面,刚才说比较成功的因素。发展到一定阶段,这个模型也开始有一定制约。刚刚我们看到了网络应用的这些优点,你做一个应用一个学生可以去创业,你做一个什么信,大家只要觉得好用就可以下载,你不用找厂商。现在万众创新、创业,很容易激发他的活力。但是我们如果想在这个窄腰里加就非常难,因为我是一个窄腰层,每个设备、主机都得到部署,或者去国际标准组织拿过来用,或者你的影响力大,有厂商做也可以,但是对于创新都是非常困难的。所以带来地结果就是网络运用易于创新、易于革新,我们的核心层面改很困难。比如说改个地址、格式,比如从32比特改到28比特,即使改这么点都很困难。但是这样一个很窄的功能,我们一直忍受它,我们认了,你就这样了。但是忍到今天我们发现不行了,一个从经济的角度,这个钱都跑到应用那儿去了。另外,网络发展到今天,我们服务的对象成为信息基础设施了,是有很强的需要变革。所以在这个时代,我们变革的驱动力是它原始的网络的需求。每个问题可能每年有上万篇论文,很难真正用到,如果这个学生他是搞应用层的,有个好论文,很快就会转换成商业价值,这样不利于自身的创新,利于应用层的创新。

我们对需求总是很难预测的,像我刚才讲的移动性,你抱怨说老祖宗为什么不把它设计成移动,比如说我们编一个程序,现在如果是主机移动的话,前缀变了,地址变了,为什么这样的当时没想到,当时没有这样的需求。所以我们再过十年可能有什么需求觉得非常重要,现在我们未必能想到。所以面对不断有新的需求来,我们看到新的需求,然后搞一个革命性的,比如说日后有什么需求,搞CCIP,做一个演进。我认为信息基础设施,可演进能力还是非常重要的。

关于如何,我说演进很重要,不能推倒重来。我国参加一个国际会议也讲了这个问题,我认为有两个途径来革新互联网,第一个就是像当年IP一样,我看到一个需求,要把不同的网连起来,我再设计一个新的窄腰,这个内容访问的需求或者安全的需求,总之我设计一个新的窄腰,满足某个需求。我们的体系结构是一个设计学科,就是为了满足需求的。

第二个,我们构建一个开放的系统,或者一个生态的环境,使大家都能长起来,各种功能都能来试一试。第二个就是我题目说的,就是胖腰。第一个方式大概有三步,我总结总是把narrow往上走,第一个设计需求和窄腰。第二个搭便车,继承的方式去发展。第三,当用的人越来越多,每一个节点都是了,你就大功告成,你就是新窄腰了。当年IP提的电话网移动天下的地位就是这么做的,直到设备都支持IP。现在IPv6也是这么做,但是它也是花了很长时间,可能性能还是受影响。现在有些非IP的未来网络架构也是想这么做。这是刚才说的NDN,就是它觉得没有满足对内容访问的需求,所以设计一个新的窄腰。左边的IP,发展成一个内容访问这样一层。然后IP,把IP踩在脚底下了。

第二个路线,就是我们发展的开放的网络体系结构,一个生态系统,就像我回顾互联网成功的经验,如果在应用层支持,大家都来试试,甚至学生你的功能好不好,也可以在网上加载一下,是不是我们在网络设备上,一些核心的层面也可以做。SDN就是这样一个例子。如果从网络体系革新我可能说的就是长远的目标,企业关注的可能是眼前的。如果从整个业界或者学科,我觉得它的意义这儿,有可能构建一个新的生态系统,使我们像APP应用层创新一样,将来有可能运营商就是运营一个开放的构架,第三方大家都可以加路由或者安全的功能,必然会出现很多优秀的安全的协议,支持服务质量的协议来为大家服务,同时也会诞生新的竞争模式。当然这是中长期的一个过程。

我们的设备不但固化为某个协议,为窄腰,我们是开放的,IPv6可以加载,或者没有改其他IP格式的,路由功能也可以加载。在黄色的这个位置去创造。这一段我总结一下,就是当我们看到未来网络这个领域有很多的研究,国外的教授,国内的有很多的想法,我们这些设计的时候不一定要选一边站,因为他们都是看到了需求而设计的,都是非常宝贵的,不是说它们是无意义的。因为设计不可能是万能的,它可能看到了需求AB,它兼顾不了需求CD,所以每个单独看都不一定满足未来的需求。所以我们参考目前互联网成功的经验,我们非常希望能像它支持应用层那样,能够把我们网源的功能,把核心层的功能也能够打开。那么怎么能做到,想法是很好,怎么构造这样的环境,SDN就有其价值。因为我们如果能做到这样一种开放,实际上是需要在功能抽象的基础上提供一种可编程的能力,让大家都来创造。从这点我认为SDN具有独到的价值。你认为它好的,是看到了它的价值,你认为它不够好的,是因为今天我们这个技术离这个目标可能还需要有一个发展阶段。所以关于SDN现在大家有很多不同的见解,所以我接着进入第二个话题,我怎么看待SDN。

SDN,从学术界来看是一个非常热门的话题。这页上面几行,大家看到GCOMM的会议,在这么顶级的会议五分之一的内容都是,可见它的价值。时间关系,我举一个例子。现在关于SDN的综合分析我不说了,有人说Open Flow,有人说就是分离,是控制和转发层面。但是你们要回答为什么分离了就打开了这个魔力,有人说是集中管控,它原来是分布式的,有人说以前有个功能BOX,现在这个方式和BOX是分离的,虚拟化。每个都对,但是每一个也不一定很全面,如果你说集中式,那是不是只要集中的就是,其他的就不是?所以像盲人摸象一样,摸到腿的说是柱子,都是片面性的观点。去年COMM14有一个终身成就奖,去年给了微软研究院的,请他发表一个观点,他说如何在这个研究上如何走快车道,他的观点就是要做技术河流,他好像是站在密西西比河主干和支流的交汇处感慨以后的力量,他说当发展到瓶颈期的,往往借助兄弟学科可以发展。他举的例子,绘画,早期没有照相机的时候画的越像越牛,照相机发明以后就把心理学的学科借来了,发展了印象派,在绘画里不是展现的现实世界,是展现的内心世界。向日葵画的像就值十块钱,甚至十块钱都不值。右边的莫奈还是谁,最近有个土豪花了四个亿。所以这个算法就是计算机破解了。当网络遇到云服务,我们中国电信为总数的时间服务,我们现在互联网加载的服务,分分钟老板拍脑袋定了,马上上线,然后我们运营商调度一个线路,两周,这就是电信网时间和互联网的差别。当在云时代,我们希望网络服务能,能与传统的配置,我们工程师像蓝领一样。编程、接口以后,我们变成白领了,喝着咖啡把事情做了。不是遇到问题打个电话,华为厂商赶紧来,来了给你修好,自身的价值也提升了。
时间的关系我不展开了,我直接说我的观点,可能在别的场合大家也听说过。我认为有两种SDN,广义的是在道的层面,狭义的是在术的层面。广义的SDN,我认为是对网络体系结构的可编程性,是通过API和工具提供的。刚才盲人摸象也好,分离也好,它都是做某件事是目标决定的,你做一个很简单的目标,比如SDN跑得很好,我想分一些流,你不一定有Open Flow,你可能下发一些路由表就可以解决。你要做一些复杂的功能,可能用一种集中式分离了,总之不同的目标可以导致不同的设计。狭义的SDN就是真的把目标能看到的,一类是比较革命性的,我们希望把今天的设备弄得更丰富一些,能对流做处理,或者对状态处理,或者是不是把转发、存储做统一的编排。

传统网络我们强调的是横向模型,完全从通信学科借来的。在SDN里,其实各个域,大家可以用自己不同的一套体制,当然各个域之间的互通是有必要的。刚才说到被抽象的实体的接口不同,革命性的SDN,新的数据平面抽象,演进型的SDN,开放接口+现有的数据平面,路由表。如何把IP表、转发表能够编程,或者你对PCE,或者数据中心的,为了灵活的构建,对VPN的编程,网络虚拟化的VxLAN,网络虚拟化是Overlay,不一定非常革命。当然也可以做混合的。有一个词叫软件驱动网络,有一些高大上的功能做不了,可以用这个做一下,注入一些分流的路由表,因为最短路径,大家都走最短的,可以匀一匀,从天津走。总之这个领域还是非常活跃的,也是充满了机会。不管是广义还是狭义的,都可以探讨,不管是学术界还是工业界都是一个创新的时代,我们进入这个领域并没有很晚,我们赶在一个发展的时期。

刚才说的很好,很美好,SDN,我打开我们网络设备也好,核心功能也好,创新的大门。但是真正做到这一点,我说的比较中长期的目标还是有一些问题。值得研究的很多,我这里列三个问题。第一个丰富的SDN数据平面可编程性资源抽象,你将要编程数据平面的功能,能够拿出来让你处理,这是非常重要的,今天实际上还有一些局限。第二个,与数据平面无关的SDN编程语言和编译器,如果刚才说的指令级还不够丰富,这是指我们的高级语言的发展。昨天我们耶鲁大学的杨教授专门谈了这个问题。第三个就是跨域,我刚才说了我们现在是不是一定要用通信学科的水平标准化,有时候我说各个域,其实各个管控域,各个企业网,当你把这个编程性要传递的时候还是水平的问题。我这里还是按照应用的紧迫程度,这个也值得研究。

第一个问题,现在其实也是一个学术界的前沿的两派争鸣,当然这是我个人的总结。一个是斯坦佛大学的团队,说我们的FLOW编程不够,我能做到32个流水线,它现在的发展是P4,成立了一个PIF协议无关的转发。总之思想是把芯片做的更加灵活。还有一派是反对做硬件,把硬件做的很贵,很高大上,他认为没必要,主要是构建一个互联起来。不对它做太多编程,但是可以拿软件随便编程,非常灵活。这两个我个人认为是各走一个极端,什么都要拿硬件做也不太合适,什么都能软件做性能也会有问题。所以我说是不是有第三个道路,合适的抽象粒度下软和硬的结合,这个也缺失一些能力,你把我们经常用到的功能,把它也能硬件实现就可以了。比如说数据平面,我们带宽也是非常重要的。所以这也是去年我在ONF这个峰会做的报告,大家看到可以把状态表和这个进行编程。然后基于这个,我们提一个技术,就是把硬软结合做FV,因为以前延迟或者某些场景是不够的。这个状态的监控,一些状态的迁移你可以放在这儿做。绿色的是硬件,蓝色的是虚机,也对比了有很大的优势。因为现在的流表,实际上是把对读和写的需求放在一起,当你为了满足可视性的需求可能目标很大,如果为何聚合转发,就会失去可视性,去年我们还得了一个学术竞赛奖,在COMM。

大概现在高级语言有两个流派,一个是以MAPLE为代表的,描述性语言。第二个就是以Policies为代表的,通过编译器智能的翻译成Open Flow的技术,这个算法,这也是我们计算机传统编程的习惯。最后说这个跨域,我认为有若干阶段,橘黄色的是自己的SDN网,没有互联的问题,但是你也不可能不互通,路由要传递。这个是我们清华和斯坦佛大学做的一个演示,SDNIXP。然后我认为接着发展,它们的可编程性需要传递,可能一开始中间还有不参与的,所以我们在做一个技术叫做We birdge。这是我们依托这个技术,我们和亚洲的学术网,国内北游,等等,我们构建了一个跨域的实验床,安装了紫色的模块,它们交互各个域,提供可编程的信息,可以开发这种功能,这个时间原因不介绍了。我们获得了比较高的评价,认为可能能为SDN扩展到全球提供基础。

最后总结一下,互联网成功不是没有原因的,是因为它支持了我们应用的创新,为什么互联网公司发财,就是为他们设计的,为他们创新设计的,谁创新谁发财,就是这个道理,很简单。为什么难以为继呢?是因为我们今天面临很多新的需求,原来任性的不能再任性下去了。有钱就任性,现在没钱了,不能再任性了。为了革新有这样的方式,通过胖腰的方式。SDN的理解有广义和狭义,对于它的发展,我认为还有三个方面值得研究。谢谢大家。

来源:业界供稿

0赞

好文章,需要你的鼓励

2015

05/19

16:28

分享

点赞

邮件订阅
白皮书