专访Nick McKeown:网络领域的游戏颠覆者
如果要找到一个过去10年在网络领域最热的词汇,那么非SDN(软件定义网络)莫属。在过去的十年间无论是学术机构还是标准组织,无论是电信巨擘还是互联网大厂都成其拥趸。
然而几乎每一件SDN的重大事件都离不开一个男人。斯坦福大学教授,美国国家工程院、美国艺术与科学学院、英国皇家工程院院士、开放网络实验室(ON.Lab)创始人,获英国计算机学会Lovelace Medal奖,IEEE Kobayashi计算机与通讯奖,ACM Sigcomm终身成就奖和IEEE Rice通讯理论奖,还有ETH荣誉博士学位,Barefoot首席科学家,曾创办的3家科技企业分别以4亿、1250万、12.6亿美元被收购。这些令人眼花缭乱的角色都指向了这个男人,这位叱咤学术和产业界的传奇人物,也是我们这篇文章的男主角——Nick McKeown,喜爱中国文化的Nick给自己起了一个颇具哲学意味的中文名——马格里。笔者有幸在UCloud TIC大会上对本文的男主角进行了访谈,围绕可编程网络趋势、开源项目进展和马老师教育心得进行了沟通,下面我们就来走进马老师的网络世界。
图片来自UCloud TIC大会
网络界的“带货王”
SDN起源于马老师团队的Clean Slate项目,最初的SDN方面的学术贡献几乎由斯坦福大学包揽全局。马老师无疑成为了SDN界的领军者,无论是早期的SDN控制器NOX还是进阶的POX,无论是仿真界的小王子Mininet还是虚拟化软件FlowVisor,这些成果都离不开马老师的研究团队。同时这些成果也成功的驱动了整个网络行业的变革,企业蜂拥而至,应用百花齐放。马老师似乎也成为了网络界的“带货王”。
“我们大约10年前开始研究可编程网络,因为我特别失望的是当时的互联网还很原始,架构是相同的,功能是相同的。他们总是由委员会设计,由芯片设计师设计,如你所知,芯片设计师不会运维网络”
在这样的场景下,本应该是建网络的人最了解网络最需要什么,现在却让外行掌握着核心技术。马老师意识到“释放软件能力进入网络领域”的重要性,
“可编程是其中的关键,因为我们知道软件可能会发生变化,进化和改进,比硬件快得多,所以如果你可以变成硬件问题,那么你可以将程序员的所有力量释放到网络上,因此我们制定了非常雄心勃勃的目标,试图让网络计划能够用到计算机,所以你可以编写程序来操作,修改”。
我们也看到了马老师的研究轨迹,从固定功能的黑盒到控制面与转发面解耦,从转发面可编程到开发芯片、开发语言、开发组件,从耳顺之龄迈入了天命之年,“带货王”的背后是对整个网络行业变革的深度实践,是颠覆者的游戏。
OpenFlow 10年,是创新还是桎梏?
在2000年的第一个十年,马老师和他的团队开启了SDN的创新之路。当时马老师一个叫Martin Casado博士生在毕业论文的基础上发明了OpenFlow试图用“管控分离,集中控制”的思想解决网络问题,从此这个思想以星火燎原之势在整个行业里掀起了热潮,同时还伴随着OpenFlow和SDN鸡生蛋蛋生鸡的争论。谷歌开始将OpenFlow用于他们所有的数据中心,以及他们所有的WAN网络,行业同仁也非常欣喜的能在各种公开论文和新闻中获取信息、吸收养料,然后也看到在一些其他大型项目合作中开始使用OpenFlow,创新的味道弥漫在硅谷的上空。
“对我而言,OpenFlow是踏上创新阶梯的第一步。” 马老师阐述道。“第一步做到了解耦,这对于SDN初期而言至关重要”。
在当时OpenFlow似乎已经成为了SDN事实中的标准,各大厂家在做优化,版本在做频繁更迭。然而这似乎只是虚假繁荣,P4的出现让OpenFlow显得无所适从,马老师解释道:
“OpenFlow太过于僵硬,为了找到匹配的包头,你必须设法充分描述,再调用接口,灵活性很差。P4带来的灵活性不仅可以改变转发面的属性,还可以改变控制器调用的接口。P4 Runtime的出现使OpenFlow也可以成为其属性之一。.P4的文件让任何转发面的属性都变成一个应用程序”。
当笔者问及OpenFlow是否已经完成其使命时,“在某些情况下是的”教授谨慎地回答。
但这并不代表OpenFlow毫无用武之地,“非常简单的网络,不会发生很大变化” 很适合使用OpenFlow,“日本的一些大型基础设施中,部分功能需求不高的项目就应用了OpenFlow。”
与其说完成了使命,倒不如说是完成了进化,任何一个技术都不是万金油,P4在选择上给了我们颠覆,这是质的飞跃,何必纠结它还是不是它呢。
从Cloud到万物互联,网络进化的上下求索
自SDN诞生之初,云就一直是网络创新的练兵场。虚拟化技术的优化和成熟推动了云计算的发展,虚拟化的环境也为云服务商优化基础设施配置提供了便利,网络优化也来的更从容甚至激进。以Google、Facebook、Amazon为代表的企业也开始了持续的网络基础架构的迭代优化之路,全球的运营商也试图通过SDN降本增效并且多加些行业存在价值,当然还有一些诸如热气球计划、无人机计划等开脑洞的通信创新,虽然和SDN不一定有关,但其格局值得敬佩。
马老师也坦言,“近些年,很多创新发生在云中,包括我们的合作伙伴UCloud,在容量方面有很多的需求,在可视化和测量方面也有诉求。”
“像UCloud这样的云计算公司是很多中国优秀云公司的缩影,我看到它在不断壮大,有工程师的地方就有创新。从SDN硬件卸载到P4到使用P4完成IPv6至IPv4的NAT转换,创新如此充满意义。这同时也给产业链上的公司很大的动力,无论是Barefoot这类芯片厂商还是设备上都是很大鼓舞。”
图片来自UCloud TIC大会
当谈及云公司和运营商对网络的需求时,马老师发表了下面的观点。
“一般而言,云公司最关心带宽,拥有相对简单的功能和协议,他们需要一切都是可靠的。”
用户的增长和业务的膨胀使云的规模逐渐庞大,其业务特征也变得复杂,诸如虚拟化支持、多业务承载、资源灵活调度。
“他们对负载均衡,防火墙,一个寻址到另一个寻址的转换,多播到单播的转换,从旧世界到新世界或者从物理世界到虚拟世界的转换都有着巨大的需求。”
从这个角度看云更像是一个转换设备。无论从节省成本还是节约带宽来讲,可编程的网络设备具有更大的价值,“同样使用硬件,但更便宜,更快,行为更可控”。
“对于电信公司而言,种类繁多的用户,使得电信公司长期需要支持更多的特性和协议。无论是带宽和高性能都是他们所关心的。”
业务和客户的复杂度,直接导致了网络的高度复杂。“随着时间的推移,新客户需要新特性,他们需要回收资源以期复用给新特性。”
在此时,如果设备可编程,将可以利用所有资源来开发新特性,为新客户服务。电信公司有很多需求,可编程的设备让这些想象一切都变得简单。
科技发展,日新月异。5G、物联网、工业互联网,无论是云还是边缘,这些不同类型的网络都有着不同的需求,不同的速度,不同类型的特性,不同的协议,都有不同的计费、测量、封装要求,他们在所有的环境中都是不同的,所以这些不同类型的网络,意味着需要新的设备。
“此时一个能适用于不同场景需求的可编程硬件会让事情变得简单,无需为每一个场景设计专用的芯片。”可编程的网络硬件的确为网络的创新提供了很好的方向和技术支撑,作为笔者也对马老师倡导的可编程网络方式充满了期待。
关于开源,笔者围绕开源进展、P4与ONF合并和P4的应用场景向马老师进行了探讨。
开源和可编程,能否奏响网络变革的主旋律?
在过去的几年我们看到了层出不穷的控制面开源项目,但他们似乎都发展缓慢。
“我认为未来几年网络、互联网和整个世界的变化很小。一个是控制平面将更开放更开源,网络作为基础设施。任何一家公司开发的控制平面都不会即刻获益。诸如Stratum、Sonic,诸如ODL、ONOS,他们因不同时期需求而产生,在未来仍将继续下去,还有很长的路要走。” 马老师肯定的说。
“在15到20年内,世界上所有大型网络都将由开源控制平面控制。我认为这是不可避免的。”
似乎现在有一种声音是白盒不如黑盒,有太多性能问题需要解决,而且白盒并不比黑盒售价低,还有高昂的研发成本,这是很多用户在质疑的问题。
“现在我们知道你可以构建具有相同功率,相同成本,相同性能和固定功能的转发平面。然而固定功能转发平面没有未来,将来,所有转发平面都是可编程的。”
“转发平面、控制平面的开源,让网络可以一直向下编程。我们将以多种方式看到互联网的变化。因为它主要是为了使其更可靠,使其更安全,并允许不同的公司彼此形成不同的模式,这对互联网来说是一个非常重要的进步。”
“当你拥有从上到下的软件时,这意味着你可以使用所有软件工程实践来正式测试和验证,甚至可以正确地进行预测。以前永远不可能实现这一点。因为之前,许多功能都隐藏在Verilog中,代码在硬件中运行。我们不知道那里到底发生了什么。” 现在这些功能都可通过P4语言描述,马老师已经用事实践行了他的观点。
“你可以衡量您在网络中看到的内容,你可以反馈它,在未来10年内,我们会在网络中“看到更紧密的循环控制,其中有测量,验证,改变其行为以确保一切正常运行。”
P4 + ONF = ?
2011年马老师与加州大学伯克利分校的Scott Shenker老师联合业界知名公司创立了ONF(开放网络基金会),旨在加速SDN落地。P4语言是在2013年左右开始创建的,并且自那时起它一直在增长,聚集开发人员、研究人员,在几年内成长为拥有百余名成员的P4社区。2019年4月9日,开放网络基金会(ONF)宣布已完成与P4.org的合并,并将主持所有P4活动和工作组
“P4目前还是个小型组织,但我们意识到如果成为一个更大的组织将会受益良多,联合ONF自然而然成为了好选择,后者有非常规范的组织模式,他与Linux很相似,采用类似的治理模式”。
“作为ONF的成员,这意味着电信运营商可以开始参与P4,而不仅仅是拥有这些部件。”
云计算已经成为了未来的基础设施,从公开的一些数据我们不难看出,大多数P4开发和应用案例都是针对云的。
“现在我们期待在下一阶段,电信公司也将有所增长。 这同样也符合了全球电信公司软硬件解耦的诉求。开放网络基础设施ONF正好是其中心,ONOS,CORD以及它所有的开源项目,都将与P4有很好的组合。” 马老师阐述了对运营商的期待。
“ ONF的ONOS项目作为控制面,南向接口用P4-Runtime,加上修改过的P4模型。” P4与电信行业的合作似乎水到渠成。在现有丰满的开源生态中,我们看到了大量的网络开源项目,在生态中占据不同的位置。仔细观察P4-Runtime的架构,你会发现它在整个P4生态中至关重要。
“P4-runtime的关键之处在于它允许您使用P4作为语言来表达行为。这使其成为转发平面和控制平面之间的纽带。” 我们也期待P4&ONF合作后未来在电信公司的更多应用。
UCloud & P4,标杆案例
在访谈中马老师多次毫不吝啬地对UCloud这位合作伙伴表达赞扬,“ UCloud是很棒的合作伙伴,他们进行了很多出色的工作 ”,我们也在这里给大家分享两个标杆案例。
云计算业务的猛增给基础设施带来了压力,随着网络带宽从10G向25G、100G的演进,通用服务器需要通过更强力的CPU才能达到线速,随之带来的是高昂的投入成本。特别是单Core的主频越高,价格越贵,且主频增加之间和价格增加是非线性关系。网络IO计算与存储软件本身的计算对CPU构成了争抢。SDN硬件卸载方案呼之欲出,排除了VXLAN VTEP和OpenFlow1.3交换机方案后,在与P4社区及Barefoot公司的沟通下,UCloud通过运行于Tofino芯片的P4程序,取代了之前运行于200台x86服务器之上的负载均衡工作,而且是线速处理,这在云领域首屈一指。
对于IPv6转换服务,UCloud使用有状态的NAT64技术来实现,NAT64是一种通过网络地址转换(NAT)形式促成IPv6与IPv4主机间通信的IPv6转换机制。NAT64网关需要至少一个IPv4地址和一个包含32位地址空间的IPv6网段来完成IPv4与IPv6协议间的翻译。其中NAT64 Access使用P4交换机实现,通过NAT64 Access的一致性Hash实现高可用。同时在NAT64 Access对CPS进行限速,实现DDoS防护。相较于业界的其他方案P4无疑代表了更高效、更稳定的转发性能。
传道授业的再思考,给学习者的建议
作为斯坦福大学教授,马老师向本科生、硕士生和博士生教授网络技术。在谈及教育时,马老师开始滔滔不绝。
“我们花了很多时间思考我们要如何教导下一代网络如何改变。”
因为如果你看看今天大学里大多数网络课程的教学方式大都是从一本书开始,列出所有协议,包括IPv4、IPv6,以及所有不同类型的协议,“这就像一碗汤,丰富但杂乱无章。”
但我们看问题的方式的确是这样的吗?如果你想想网络工程师,或未来的网络软件开发人员,“从软件的角度,他们不会说,我需要实现这个协议,他们会说我对我的网络做了什么行为,让我写一个程序来描述这种行为。” 最后的结果可能与现有协议相似,也有可能创造新的协议。如果软件不错,验证工具也不错,这样他们就可以进入书中没讲的新天地。
“因此,现在我们需要弄清楚如何教学生首先思考他们想要的行为,并给他们编程技能,让他们能够做到这一点,我们需要创造这样的环境。”
图片来自stanford.edu
在世界各地,想要学习编程、网络和计算机科学的学生人数都在大幅增长,无论是中国还是北美。在斯坦福,我们看到计算机科学专业的学生人数在过去的7年里增长了5%,增长很快。现在全世界都是这样。
“原因是编程变得如此强大。你可以实实在在地改变世界,我们每天都能看到它所创造的技术类型。”
全世界每年大约有100万个新的软件开发工作岗位,然而,我们每年只产生大约50万个新项目,这为高薪提供了可能。开源社区的创建,相比于传统网络的封闭,无论是学习还是推动行业发展,提供了更好的交流方式。
“开放的环境,更容易交流,更容易产生新的创意”。
一般每一个领域必然有那么几个的先驱人物,但Nick McKeown的传奇性不仅仅是学术界也不仅仅是学术产业,我看到的是一位理想主义者,对网络的未来充满无尽的想象。他同时更是一位游戏颠覆者,无论教学还是研究,无论是学术还是产业,他的思想一直在进化,用超乎寻常的思考和实践推动整个行业的变革。
专访Nick McKeown:网络领域的游戏颠覆者的更多相关文章
- 一起来全面解析5G网络领域最关键的十大技术
提到5G,很多人的第一印象就是它的网络速度快.延时性低.带宽大,没错,这就是5G时代的特点!5G作为第五代移动通信网络,其峰值理论传输速度可达每秒数十Gb,这比4G网络的传输速度快数百倍,整部超高画质 ...
- UE4 多人网络对战游戏笔记
1.给物体施加一个径向力 定义一个径向力: URadialForceComponent* RadialForceComp; 在构造函数里赋默认值: RadialForceComp = CreateDe ...
- [转] 软件定义网络(SDN) 的应运而生
原文见51CTO:http://network.51cto.com/art/201103/251425.htm 2012的故事 2012年的某天,你跟往常一样起床,打开电脑,却发现无法登录到邮箱.无法 ...
- 游戏行业DDoS攻击解决方案
行业综述 根据全球游戏和全球移动互联网行业第三方分析机构Newzoo的数据显示:2017年上半年,中国以275亿美元的游戏市场收入超过美国和日本,成为全球榜首. 游戏行业的快速发展.高额的攻击利润.日 ...
- 阿里云:游戏行业DDoS攻击解决方案
转自:http://www.gamelook.com.cn/2018/01/319420 根据全球游戏和全球移动互联网行业第三方分析机构Newzoo的数据显示:2017年上半年,中国以275亿美元的游 ...
- SDN第一次作业——关于网络编程
你会选择作网络编程方向的程序员吗?为什么? 我觉得我应该不会选择成为专门从事网络编程的程序员,因为我的从事计算机的理想一直是希望开发出自己的一款软件和游戏,所以应该是比较偏向软工方向的,也报了栋哥的软 ...
- 游戏引擎架构 (Jason Gregory 著)
第一部分 基础 第1章 导论 (已看) 第2章 专业工具 (已看) 第3章 游戏软件工程基础 (已看) 第4章 游戏所需的三维数学 (已看) 第二部分 低阶引擎系统 第5章 游戏支持系统 (已看) 第 ...
- 数据中心网络架构的问题与演进 — SDN
目录 文章目录 目录 前文列表 OpenFlow 源起 从 OpenFlow 衍生 SDN 前文列表 <数据中心网络架构的问题与演进 - 传统路由交换技术与三层网络架构> <数据中心 ...
- 透过微软研究院在“数据中心网络”的重大进展看SIGCOMM 2013
2013" title="透过微软研究院在"数据中心网络"的重大进展看SIGCOMM 2013"> 编者按:于8月12日至16日在香港举行的SI ...
随机推荐
- 原生Ajax+springBoot实现用户登录
思路:用户输入登录信息——信息传到后台——数据库查询——比较查询结果——返回登录信息(成功/失败) html页面代码: <!DOCTYPE html> <html lang=&quo ...
- 面试(手打手写,待更新loading...)
1)JAVA基础面试 1,引用数据类型和基本数据类型的区别是什么? Byte 1 short 2 int 4 long 8 Boolean 1 char 2 float 4 double 8. 基本数 ...
- ubuntu12.04 ppa安装pidgin
sudo apt-get update sudo apt-get dist-upgrade sudo add-apt-repository ppa:pidgin-developers/ppa按下回车 ...
- Python 基础(一)
本章内容 1.编译和解释型语言的区别 2.Python的解释器 3.pyc文件 4.运行环境 5.变量 6.数据类型 7.字符编码 8.三元运算 编译和解释型语言的区别 编译器是把源程序的每一条语句都 ...
- mysql primary partition分区
尝试把数据库一个表分区 ALTER TABLE user PARTITION BY RANGE(TO_DAYS(`date`)) ( PARTITION p1004 VALUES LESS THAN ...
- jade和ejs两者的特点
jade特点 1超强的可读性 2灵活易用的缩进 3块扩展 4代码默认进过编码处理,以增强安全性 5编译及运行时的上下文错误报告 6命令行编译支持 7html5模式(使用 !!!5文档类型) 8可选的内 ...
- Good Bye 2017
太菜了啊,一不小心就goodbye rating了 A. New Year and Counting Cards time limit per test 1 second memory limit p ...
- python3 保存一个网页为html文件
我使用的python版本为3.5.2. 最近租房子,恨透了中介,想绕过中介去租.结果发现豆瓣同城里有好多二房东,感觉人都还不错.但是豆瓣这里没有信息检索的功能,只能人工地看房子的地址,非常地不方便.所 ...
- Codeforces963B - Destruction of a Tree
Portal Description 给出一个\(n(n\leq2\times10^5)\)个点的树,每次可以删除一个度数为偶数的点及其相连的边,求一种能够删掉整棵树的方案. Solution 简单起 ...
- 学习 WebService 第五步:在Local创建测试用WebService(WSDL)
[准备] Eclipse+Tomcat7(Tomcat端口修改为不冲突的值) axis2 1.7.7 jar包(没有来这里下载:http://www.apache.org/dyn/closer.lua ...