Nick McKeown:Programming the Network From the Top Down

发布时间:2020-08-14分享到:
非常感谢邀请我来这里,在第四届未来网络发展大会上发表演讲。这个其实是我要展现我认为互联网在未来的演变轨迹,我会大胆的尝试一下。我今天的题目就是从上至下的网络规划格局。我前面和大家解释一下。

今天我想跟大家讲一下在未来十年网络如何发展。现在是2020年,我会和大家介绍一下变化。对于那些已经接触互联网很久的人来说,互联网已经发生了很多的变化,我们先回顾一下互联网在过去十年间发生了什么样的变化,如果大家真正从事网络行业,就知道在2010年的时候,网络产业,以及我们建立网络的方式跟现在都截然不同,那个时候的网络是封闭的,而且它是基于垂直的设备建立的架构,70年代和80年代的主机行业,当然行业标准也是在迅速提高的。

许多互联网调查服务提供商认为这是供应商的垄断,在2010年的时候有一个项目,从开始我们如何来设计这个软件,以及未来如何设立这个软件。我想说,这个就是我们的第一部分,变化的第一部分,这些网络拥有者来决定网络,在十年前美国公司都是通过垂直堆叠的设备,专有设备来构建网络,这十个最大的云运营商,其实他们的网络设备我之所以称之为第一步,大家除了第一步之外还有第二步,作为第二步就是来控制剩余的网络,第一步是指说控制平面的软件,比如说像入营协议,特别是在控制平面上,如果真正想要使用网络的时候,比如想要网络更加稳定安全的时候,我们必须要转变转发的行为,这个其实发生了很大的变化。

在几年前,所有的交换机像一个固定的管道,其中有一个阶段专门用于交换的芯片,当时被认为这是一个非常有效的方法,但是如果我们来看看交换机和路由器的工作原理,就会发现问题,在交换机内部是一个处理数据包的装置,最初它看起来有点像工作管线,在交换机操作系统之上,是DGP的一些协议,这些协议决定了这些数据包是如何通过插入条目的方式处理的。在交换机里面的这些管线,当数据包进入每个管线,这个过程总共花了四年,这边非常有趣的一点,这个是投资最大,盈利最高的一皮,这一块花了四年才开发出这个功能,这个模型显然是有问题的,现在在加速进程,CPU相对来说比较慢。还有一些具体的领域,比如图象有比较好的数据模型,也可以使用数据编译器,可以在特定领域或者专域下进行,目前网络领域并没有出现这样的变化。

在过去几年里,还出现了一个第四语言,这是一个高级语言,可以用于底层语言之外的特定转发行为。还有PISA,PISA架构,左边有一个简易器,它按照不同阶段的顺序进行处理,在这个包到来的时候有不同的颜色,会找到不同的字段,在管线当中经过的时候会根据储蓄员的操作进行处理和修改,这样也可以添加字段,也可以删除字段,进行解封,我们已经准备好将数据包打包起来发到数据当中,所有的数据包都是被同时处理的,数据包会放在一个大型的公共汽车上面,通过这个管线,这是一个很好的比喻,我们通过简单的模型了解到这个案例。如果想要看到更多的例子,想要了解更多的内容,可以登陆我们的P4ORG。

到这里我已经给大家讲到了第一和第二部分,第一部分是网络所有者和运营者控制了这些网络的行为,现在是高级软件,包括了交换机系统,现在也控制了转发的平面,通过时被处理的方式。我们要想这些可编程的平台行为,网络会另行在不同的组建分区,在每个组件上面运行交换机。他们是最知道如何让自己的网络更加可靠安全。我也在教学生如何学习分布式的系统,这是非常重要的学习网络编程的一个部分,对于我来说最重要的一部分就是这些平台,所有的软件都是由最终用户定义的,这意味着我们可以将用户带入到网络实践中。在最终,重要的就是这个网络将会有很多运营使用的人进行编程。

这是我所讲的内容。我觉得有三条做到了才有可能实现这一点。每个数据包都要做到操作,对于这些网络是相当熟悉的,以前我们并不了解这些技术主要用于网络的发展,这些已经是用了25或者30年,这并不能让我们非常了解这些网络到底是做什么,我们需要使用大量的检测器,在实际当中的数据,我们会看看每一个数据包的情况,比如在这个当中,我们要想一想这个数据包在什么地方,我可以发送专业的数据包,但是不能了解单独的数据包的情况,比如说你反问的交换机数据,访问的时候能不能告诉我这个信息,如果这些信息可以存储在数据包当中,我们就可以在网络的末端获得这些信息,从而获得数据包的行为。这就是一个关键能够保证网络的安全。每一个交换机知道这个信息,因为在交换机当中的规则可以帮助做到这一点,如果我们看一下这些表在软件当中的情况,我们为什么不能进行存储数据包当中,这就是规则,我们能够了解到数据包何时能够到达这个点,他们为什么要到达这个点,据我所知,世界上没有哪个网络可以做到这一点,我们如果能够从功能上实现,性能又怎样呢?性能通常和数据的排队行为有关,在他们数据通过的时候,比如数据包在每一个交换上面排队了多长时间,比如就是一个网络叫做的一组数据,可以看到其中的一个数值更大,因为有很多的数据包在排队,我也把这个交换机再放大一下,这个数据包为什么会这样呢?我们到底和其他怎么进行数据分享。我们看一下数据流,是橙色的数据量组塞了队列。我们希望获得这些数据,我们的数据包采用了哪些规则,在哪个交换机上排队多久,他们要进行哪些分享。如果回答节几个问题,这些基础信息将大大提高我们的能力,以更加可靠的方式来控制网络。

每一个交换机给数据包贴上信息的标签,比如说交换机的ID到达实践,匹配规则,如果每一份交换机都这么做了,数据包的遥测信息,让它允许进入交换机时,我们可以获得这些信息,我们让它送到日志,这些应用程序就可以得到操作,这个技术是这个程序的能力,可编程的能力。

这里有一个案例。不同的颜色表示不同的流,信息都是从INT分析设备当中收集的,就是上一页所展示的设备,每一个竖条代表了当时的队列占用率,这里重要的信息通过每个书记包的到达和离开,这样我们就可以区别的从队列的时间序列,这给了我们强大的能力了解网络能做什么。如果发现了问题,就能够纠正。

如果能够测量数据包,就可以验证是否正在正常工作,接下来要做的就是自动改变或者修改控制网络的方式,这不只是想要描绘一个愿景,看看在接下来的几年当中如何实现。我把这个图片放在这边,放在上面,放到中央或者是平面,它也可以放到下面的交换集当中。

我们可以观察控制程序本身,无论是路由协议,还是整体管理,应用程序。一旦我们掌握了这些观察和获取的所有信息,我们就能够观察它,就能够关闭,有一个闭环,通过人工的关闭,最终所有的这些内容随着时间的推移,网络当中的每一个数据包的状态都是精确的数据,这样就能够自动的生成新的代码,这些数据的代码可以满足我们需要的固定属性,在运行中得到验证。控制平台和P4运行,如果我们需要,可以改变转发行为,所有的将会集中分区,会产生闭环控制,实际上我们已经在左手建造这些组件了,有些在实验室,写在公司里面研究,这些大的工程需要不同的人的协同,这个研究才能成为现实。

我们在这十年当中,大部分能够做到,这使得我们有快速的更准确更可靠的安全的网络控制,我觉得这就是未来的网络发展方向。如果我们能够建立好这个平台,其他的顶层设计都可以实现。谢谢。

 

上一篇:杨长风:北斗卫星导航系统建设发展与融合应用
下一篇:孙凝晖:信息高铁综合试验场