SDN先驱Nick教授以及netFPGA无法完美实现6802时间同步

2019-10-29 17:58:01 浏览数 (1)

一般来说,每一个领域必然有那么几个的先驱人物,而Nick教授就是网络领域尤其是SDN领域的先驱。但Nick教授的传奇性不仅仅是因为他在学术界的巨大贡献,更因为他在学术产业化方面近乎传奇的表现。接下来就来介绍一下Nick McKeown教授及其带领的团队The McKeown Group在SDN领域的传奇之路。前几天用了一下netFPGA,偶然得知netFPGA竟然也是Nick教授课题组推出的,出于好奇,仔细研究了一下SDN及Nick McKeown教授。也发现某些型号的netFPGA如NetFPGA-1G-CML不能很好的支持6802同步。

今天小编要给大家介绍的是一位SDN领域的传奇人物——Nick McKeown。

Nick McKeown,斯坦福大学教授、博士生导师,美国国家工程院院士,美国艺术与科学学院、英国皇家工程院院士、开放网络实验室(Open Networking Lab)创始人之一,Clean Slate项目主任,曾获得英国计算机学会Lovelace Medal奖,IEEE Kobayashi计算机与通讯奖,ACM Sigcomm终身成就奖和IEEE Rice通讯理论奖,同时还有ETH荣誉博士学位。一大长串各种在学术界和研究界的头衔,令人目不暇接。

更多内容请访问教授个人主页:http://yuba.stanford.edu/~nickm/。

netFPGA、SDN和Nick McKeown教授。

A good choice make a man

Nick教授与网络的不解之缘始于上世纪80年代的HP实验室,在惠普实验室他首次接受了网络领域的科研工作,一位网络领域大牛的种子自此种下。虽然当时他本人的意愿是从事AI的研究或计算机系统架构领域,但惠普实验室让Nick投身于互联网路由器架构领域。自此以后,Nick McKeown一直站立在网络架构领域的浪潮之巅。

对于一名十分热爱工程学的研究者而言,当Nick McKeown发现英国的网络技术氛围已经不能满足他的需求,特别是当加利福尼亚的激情与其喷涌而出的技术行业在他的工作中一览无遗时,美国无疑看上去对他是一个更好、更具吸引力的选择。

于是Nick McKeown果断选择到加州大学的伯克利分校进行学术硕士生涯的研究,之后他博士的工作转向了计算机网络领域,其课题的官方名称是 “Scheduling Cells in an Input-Queued Cell Switch”,但Nick McKeown解释说它真正做的事情是考虑如何尽可能地提升路由器和交换机的速度。该课题始于他在攻读硕士时所上的课程, Nick McKeown和他的三位同学一起发明了“世界上最快的路由器”,该系统的速度比其他的方案快了近十倍,他们称之为“Bay Bridge”并将其应用到了思科的GSR路由器中,GSR最终也成为了一款思科的旗舰路由器。

即便在SDN兴起之前,Nick McKeown也是当之无愧的网络路由交换领域的潮流引领者。从HP的实验室,到斯坦福大学,再到打造思科GSR系列路由器旗舰产品,Nick McKeown持之以恒专注在网络创新技术研究并以绝对的技术实力站立在网络架构领域的第一梯队。

Nick McKeown与SDN的不解之缘

SDN起源于斯坦福大学Nick McKeown教授团队的Clean Slate项目,最初的SDN方面的学术贡献几乎由Nick McKeown所在的斯坦福大学包揽全局。Nick McKeown带领的博士Martin Casado(业界称他为SDN之父)在2006年在RCP和4D论文基础上,提出了一个逻辑上集中控制的企业安全解决方案SANE,打开了集中控制解决安全问题的大门。一年后Casado博士在SANE基础上实现了面向企业网管理的Ethane项目, 这是SDN架构和OpenFlow的前身。

2008年,Nick McKeown、Scott Shenker、Larry Peterson和普林斯顿大学的Jennifer Rexford教授等一起发表了介绍OpenFlow的论文[N. McKeown, T. Anderson, H. Balakrishnan, G. Parulkar, L. Peterson, J. Rexford, S. Shenker, and J. Turner, “OpenFlow: enabling innovation in campus networks,” SIGCOMM Comput. Commun. Rev., vol. 38,no. 2, pp. 69–74, Mar. 2008.],标志着OpenFlow的诞生。同年,The McKeown Group发布了第一个开源SDN控制器NOX-Classic,也实现了基于开放创新平台NetFPGA的OpenFlow交换机【J. Naous, D. Erickson, G. A. Covington, G. Appenzeller, and N. McKeown, “Implementing an OpenFlow switch on the netfpga platform,” in Proceedings of the 4th ACM/IEEE Symposium on Architectures for Networking and Communications Systems, ser. ANCS ’08.】,而NetFPGA也是Nick教授他们发明的。2010年Nick的团队发布了Mininet。迄今为止,Nick团队发布的这些软件依然被业界广泛使用。

2011年Nick McKeown以及Scott Shenker创立了ONF(开放网络基金会),同时与和Scott Shenker、Larry Peterson创建了ON.Lab的前身——开放网络研究中心ONRC,随后与Guru Parulkar和Scott Shenker创建了开放网络实验室(ON.Lab)。这两大组织的成立,成功地将SDN推到前台,并获得业界的广泛关注,为推动SDN被业界广泛采用奠定了基础。

由Nick教授带领下的斯坦福大学的团队,不仅在SDN创立初期在学术界起到了重大的推广作用,在开源开放组织中也发挥了重要作用,Nick教授总是能敏锐地捕捉到业界发展的方向,把握业界的脉搏。

Nick McKeown的创业史

硅谷浓烈的创业氛围影响着斯坦福大学的Nick McKeown教授,作为一个在学术界和产业界都游刃有余的科学家,Nick McKeown曾经创业过若干公司,引领网络技术变革潮流,推动创新技术商业化。

SDN概念兴起之前

1997年,他和Anders Swahn一同创办了Abrizio公司,该公司于1999年被PMC-Sierra收购,股票价值4亿美元。 2003年他和Sundar Iyer共同创办了Nemo Systems公司并担任CEO,并且在2005年,该公司被思科以1250万美元的现金收购。

SDN概念兴起之后

Nick McKeown、Scott Shenker和Martin Casado成立了Nicira,并且在2012年被VMware以12.6亿美元的高价收购,开启了SDN创业的大时代。 2013年,又联合创立了数据平面可编程的芯片公司Barefoot Networks。 由普林斯顿大学的Jennifer Rexford和斯坦福大学的Nick McKeown两位教授主导并创立的可编程语言P4,打开了网络领域的另一扇门。而在2013年成立的Barefoot Networks正是开发可编程芯片的公司,该公司推出的Tofino芯片是目前市面上最快的芯片,吞吐量达到6.5 Tb/s且已经向业界提供产品。

仅仅数年之间,硅谷诞生了数十家SDN初创公司,其中与Nick McKeown有直接或间接关系的有其博士Guido等创办的Big Switch,他带领的另外四位博士生创办了Forward Networks,值得一提的是Nick McKeown的博士学生Glen等则创办的Barefoot Networks,Nick教授在该公司担任首席科学家和合伙人的职位。将SDN发展史上的大事件整理如下图所示,曲线上方是推动SDN发展的开源组织和业界厂商,以及产业界的标志性事件。曲线下方是支撑SDN逐步成熟的关键技术,主要是SDN学术界的研究成果。这两部分内容组成了一部完整的SDN演进史。我们可以从中找到许多和The McKeown Group相关的信息。

任何技术的创新发展离不开持之以恒的关注与贡献,Nick教授带领的团队正在SDN的大潮中发挥愈发重要的作用。我们可以看到几乎处处能见到Nick教授的身影,不仅仅是在学术领域,更在产业界。他的团队和他的合作单位几乎创造出了一个新的学术研究领域,然后又在这个新领域创立了很多新公司,成功将知识产权产业化,转化为商业运作,其商业嗅觉堪称一绝。所以笔者认为Nick教授团队的在SDN的发展之路的表现堪称传奇。

netFPGA开发板上实现6802同步遇到的问题

前几天对TTE网络进行调试时,发现NetFPGA-1G-CML在特定情形下,传输时延会在最小接近10us,最大接近20us之间变动,导致TTE网络完全不能正常实现6802同步,而其它开发板的传输时延基本保持在1us左右,时延抖动很小。以下是我们的调试场景和分析。

硬件平台

NetFPGA-1G-CML:有4个千兆RGMII接口,使用RTL8211E-VL以太网接口控制芯片;

ZYNQ706开发板:有4个千兆RGMII接口,使用FMC拓展板接口;

以及作为端系统的黑金的A7 PCIe开发板,带有两个千兆网口。

1、发现问题

  • 调试场景1

使用两块A7作为端系统,用一块NetFPGA-1G-CML作为TTE交换机;第一块A7的端口1连接TTE交换机,端口2连接Wireshark,用来抓取端系统所发送的数据帧;第二块A7的端口1连接TTE交换机,端口2连接TTE网络监测软件,用来监测TTE网络的网络运行状况。连接拓扑图如下:

调试现象(两个端系统不能正常同步):

端系统和交换机不能同步,用Wireshark软件进行抓包,发现端系统一直向交换机发送CS同步帧,而交换机一直没有回复CA同步帧;我们多次改变交换机和端系统的端口连接拓扑,仍然不能正常同步。

  • 调试场景2

使用一块A7作为端系统,用一块NetFPGA-1G-CML作为TTE交换机;端系统的端口1连接TTE交换机,端口2连接Wireshark,用来抓取端系统所发送的数据帧。拓扑图如下:

调试现象(单个端系统能够正常同步):

端系统和交换机正常同步,用Wireshark软件进行抓包,发现端系统与交换机正常收发PCF同步帧、TT业务数据帧、ET业务数据帧(分为RC数据帧和BE数据帧);换另一块A7连接交换机,也正常同步。

  • 调试场景3

使用两块A7作为端系统,用一块ZYNQ706作为TTE交换机;第一块A7的端口1连接TTE交换机,端口2连接Wireshark,用来抓取端系统所发送的数据帧;第二块A7的端口1连接TTE交换机,端口2连接TTE网络监测软件,用来监测TTE网络的网络运行状况。拓扑图如下:

调试现象(同步正常):

端系统和交换机正常同步,用Wireshark软件进行抓包,发现端系统与交换机正常收发PCF同步帧、TT业务数据帧、ET业务数据帧(分为RC数据帧和BE数据帧);TTE网络监测软件监测到TTE网络正常运行。

问题分析:

场景2和场景3的现象基本可以验证TTE交换机代码能正常运行。初步怀疑NetFPGA-1G-CML上的RTL8211E-VL以太网接口控制芯片可能存在问题,所以我们用TestCenter分别测试了NetFPGA-1G-CML、ZYNQ706的接口时延,测试场景和测试结果如下。

  • 接口时延测试场景1

用内部逻辑连接NetFPGA-1G-CML的端口1和端口2,用TestCenter的端口1和端口2分别连接NetFPGA-1G-CML的端口1和端口2,打流,然后查看时延以及抖动。拓扑图如下:

测试现象如下:

现象分析:最小时延和最大时延均比较小,时延抖动较小。

  • 接口时延测试场景2

用内部逻辑连接ZYNQ706的端口1和端口2,再用TestCenter的端口1和端口2分别连接ZYNQ706的端口1和端口2,打流,然后查看时延以及抖动。拓扑图如下:

测试现象:

现象分析:最小时延和最大时延均比较小,时延抖动较小。

  • 接口时延测试场景3

用内部逻辑分别连接NetFPGA-1G-CML的端口1和端口2,端口3和端口4,用网线连接NetFPGA-1G-CML的端口2和端口3,再用TestCenter的端口1和端口2分别连接NetFPGA-1G-CML的端口1和端口4,打流,查看时延以及抖动。

测试现象:

现象分析:最小时延和最大时延均比较大,且两者差值比较大,时延抖动较大。

  • 接口时延测试场景4

用内部逻辑分别连接ZYNQ706的端口1和端口2,端口3和端口4,用网线连接ZYNQ706的端口2和端口3,再用TestCenter的端口1和端口2分别连接ZYNQ706的端口1和端口4,打流,查看时延以及抖动。

测试现象:

现象分析:最小时延比较小,最大时延比较大,但是平均时延接近最小时延,说明数据帧的传输时延基本和最小时延相近,时延抖动比较小,端口正常工作。

接下来我们查看RTL8211E-VL以太网接口控制芯片手册,通过MDIO程序对PHY的寄存器进行查看与配置。读取0号寄存器的值为0X1140,查询PHY手册显示其值的含义为自适应全双工状态,与其他PHY芯片的默认工作状态类似。

我们又通过MDIO程序配置PHY芯片,并采用如下拓扑图进行测试:

测试现象:

初步结论:

RTL8211E-VL以太网控制芯片在1000M全双工工作模式下,可能存在时延较大,时延抖动过大的现象,这可能会影响到TTE网络的正常工作。

2、分析问题

为何netFPGA四个网口单个能够实现6802同步,如果同时用两个或两个以上网口的时候时延和抖动都会发生很大变化而导致无法实现6802同步呢?怀着这样的疑问,我们查阅了一下netFPGA四个网口的原理图,发现四个PHY芯片的时钟都连到了同一个晶振上,会是这样的原因吗?

后来,我们使用了netFPGA上的FMC扩展槽,接到了自己设计的四端口扩展板上,利用扩展板上的四个千兆网口,再进行同步就可以正常工作了。

扩展板上的四个网口对应的四个PHY芯片都有独立的晶振时钟:

不过,还是那个问题,多个RJ45接口对应的PHY芯片是否有独立时钟,会影响传输时延和抖动吗?希望大家留言讨论。

启发

以前总听说netFPGA,但从未用过。这次用了一下,感觉不过如此。并且,这样的板子包括板子上的硬件软件等一切(也包括最新的10G接口的netFPGA),暂且不提国内诸多知名的研究网络的团队,目前笔者所在的课题组就完全具备非常成熟和完善的实力去实现和替换。但问题在于,为什么老美的斯坦福大学就能提出netFPGA这样的开源设计方法和理念?又或者SDN为何不是国内某个大学的实验室提出的?为何Nick McKeown教授就能兼顾学术和产业化推广,并且都很成功?这些都是值得思考和学习的。

看了一下Nick McKeown教授的个人主页,作为SDN的鼻祖,文章也不是很多。令人佩服的是,作为一个产业化和学术都很成功的教授,个人主页上竟然同时还有很多教学相关的内容,还开发出了让全世界都能使用的netFPGA平台。这才是一个真正厉害的教授。

或许国内还是停留在跟的阶段,TTE/TSN火了,大家都来做TTE/TSN,所有的文章都要跟这些概念挂上勾;AI火了,就把所有的文章里都添加上AI算法;似曾相识,上个世纪九十年代,ATM火爆的时候,甚至连很多做无线的文章里都能跟ATM扯上关系。

不过,随着国家各方面改革的不断推进,相信以后在国内强大的市场需求推动作用下,未来引领世界先进网络技术的重担必定会落在咱们中国人的肩上。加油!

0 人点赞