Nick Mckeown:未来,像编写电脑程序一样编写网络

我觉得把网络的编程应该跟电脑编程是一样的简单,但是在开始之前,我想给大家展示一下,SDN现在已经有十年的历史了,大家应当同意我的看法,不少的事情已经发生了,在过去十年发生了不少的改变,如果你有一个大的网络,要去决定怎么去控制它,你可以写自己的网络控制软件,也可以委托别人写这样的网络控制软件,或者还可以直接从网上下载。

https://img1.sdnlab.com/wp-content/uploads/11/nick.jpg
在某些层面上,不管你采用哪一种方式控制自己的网络,你需要去决定网络如何去控制,我记得在2010年的时候有一个谣言:大的网络公司不会建立自己的网络设施了,但是今天每一个大的网络公司如中国移动都建立它自己的网络设施,现在网络不断地改变自己的方式,在过去十年里改变很大。新的软件方式,我们网络的大脑系统,新的观念不断地出现,新的技术在网络上不断出现,我们需要相应的控制中心,网络的运营商有这样的钥匙,他们可以做出决定如何运营网络。

这些改变不断地发生,在整个网络基础设施方面,发生了前所未有的剧变,但是当然一直会有一个但是,这只是故事的一半。在同样的十年期间,基本上某些层面上没有什么改变,在一些基本的层面上没有改变,真正的改变观念哪些改变了?他们让他自己的观念更加可靠,更好的使用和更好的衡量,在某些层面上只是能够把自己的资源能够更好的进行分配,我觉得如果我们改变整个网络方面的处理技能,我们没有定义整体的网络行为,整体来说这个网络方面就是一种方式,从一个地方传输到另外一个地方,中间进行修改,如果我们不能够控制整个,包括如何打包和传输,不是真正的控制,因此我们可以看到有传递出的数据包方面,不需要它有任何的停止,需要它更好的进行创新,要想让它变得更加具体一点,如果你想要加一个协议给你的网络,需要怎么做?或者把你不需要的协议简单删除怎么办?这样你就不会浪费任何的空间,你怎么做?或者你想把私有的包裹标头能够加在你的打包里,或者比如说O4OB,或者DNS这样一些测试系统,能够降低它整个包裹的数量或者是把它相应的功能块削减,如何能够在整个创新方面加入自己新的观念,不需要告诉你的设施提供商或者交换机的提供商,你可以自己去处理,自己去做,把自己好的观念加入到自己的网络里,你想怎么去实现呢?

大概2017年的时候,我跟我的同事他们方向一个观念,我们怎么能够把整体的网络进行编程管控呢?首先看一下存在的问题有哪些,这是网络,它是在交换机方面,今天是非常通用的图画,包括交换机的操作系统,它跟驱动器进行交互信息,还跟整个交换机进行相互的对话,交互信息,这是今天的网络编程基本的构架。在2010年的时候有所改变,现在的网络客户要求用更好的方式去发送数据包,他们知道这个数据包是属于谁,而整个设备的提供商可以去提供相应的软件,能够控制交换机,让整个驱动器方面进一步更新,能够确保跟他们自己的系统更好的兼容起来,大概需要几周或者几个月时间做这样的事情。是他把整个交换机也需要改变,因为在整个格式方面都进行改变,有时候花几年的时间才能进行升级和革新。这是原始的计划,这是利益最高、投资最高的,需要四年的时间进行改变,这也就意味着我们只要加一个新的功能,而我们的设备提供商不能提供相应的软件革新,而新的设施和功能需要多年开发,不管是整个革新是否可行,或者要么没办法解决自己的问题,要么我们需要非常昂贵的成本才能够实现这一点,不仅仅在硬件,在软件方面都需要更新。

为什么可编程性现在成为业界的潮流,有一个大的原因,现在在整个计算机行业里,在不同的领域里,也遇到相应的问题,在整体的域的关键处理器方面遇到相应的问题,比如说它的显卡,有一些公司的图形处理都是用特殊处理器。同时,相应的事情在信号处理、DSP、也是不断爆发式的发展,用于处理相应的编辑、编译功能,在另外一个高的层面使用,在整个域方面的处理过程当中,用正确的模式和正确的格式去处理,在机器学习方面我们还有另外一个编译器,TPU,在网络方面还没有人想到底采用什么样的编译器、硬件搭配,跟以前的计算机图形处理、信号处理、机器学习都有相应的编译器,但是我们网络还没有相应的编译器。PISA,P是编程,整体的过程当中如何进行编程,协议也是表示把硬件方面形成相应对接接口,I表示把编程跟芯片更好的结合起来。大家可以跟计算的风险进行比较,PISA比较辨别基本的建议和指示,能够建立相应交换机的芯片,但是我觉得在我们的行业里,大家有不少人已经认识到,我们已经听过不少新的观念,现在可编程的交换器大概一百倍,当然成本也更加高,消耗的电能更加大,只有1%的速度。我会告诉你这个事情将不再是真的,我们花了不少时间才能改变这一点,但是我们已经做到了。

在这个层面上,整体架构是这样的,是依赖于协议方面独立的交换机的架构,它的处理过程称之为匹配加上行为阶段,跟它的内存进行匹配,相应的行动,比如说你是把整个域修改,还是删除一个域等等,比如一个包从这儿走过来之后,通过使用者的端口进行分配,然后在第一个层面进行匹配,交换机之后进行相应的修改,不管是删除、插入、移除,走到最后送到流程当中,再重新架构之后又形成一个包的顺序,最后整个使用者怎么交互,仅仅叫做PISA有三个部分可以进行编程,第一个叫PISAD编程,它可以识别这种语言。左边是绿色,可以告诉整体的路由和的路径设置,蓝色主要描述了采用哪一种影射表、地址表,具体整个控制方面如何去实现,它整体的控制流程都有不同的编程工具,不同的设备跟它匹配。
现在这些特征可以增加在里面,而且原来是需要花四年时间,现在4个小时可以重新配置交换机、整个网络。另外一方面编程性怎么应用呢?在过去几年大家一直在想怎么使用,首先是通过网络的可编程性可以把复杂度降低,想把网络里不需要的部分删除掉。第四层负载均衡器也能够替代两百个服务器,仅仅是把这个编程功能加入了之后,而且非常快的防火墙,这样可以删除跟踪100S,或者几千多个新的连接,每秒钟可以处理这么多的连接数量。

在P4 Runtime,我们可以重新定义一个API,用户交换接口在某个层面上是非常开放的,可扩展性的一种独立的API,我们把它称之为P4 Runtime,Google定义了这个概念,而且是用于开源代码进行定义,这种开放的可拓展性,硅谷独立的API,这个API应用于那些情景下,怎么定义API的应用情景,在这儿想象一下,如果我们编程有不同一系列的交换机去针对它们编程,而且不同的FPGA、不同的交换机有不同的交换通道和不同的流程,我们要找到通


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/20242.html
分享到:
相关文章
SDNLAB君 发表于17-11-28
0