对话RTP作者Ron Frederick: 我非常期待QUIC的发展

123 阅读18分钟

内容编辑:Alex

技术审校:刘连响

Ron Frederick 人物对话 #002#

RTP和RTCP是处理所有多媒体传输的重要协议,于1996年1 月在RFC 1889中定义。

最近,LiveVideoStack邮件采访了RTP的作者之一Ron Frederick。在访谈中,他向我们讲述了RTP是如何创造出来的,并分享了他对当下流行的WebRTC和QUIC的看法。Ron还回忆了1992~2000年他在施乐PARC工作时的美好时光。

图片

(照片由Ron Frederick本人提供)

对于正在和想要从事计算机工程工作的人,Ron给出了他的建议:不要害怕亲自动手。 他认为人们应该不断去发现现实世界中的问题,并通过编写代码来解决它们。

这篇访谈还向我们展示了几十年前计算机科学家们所做的开创性工作,以及当时互联网的情况。

下面是LiveVideoStack对Ron Frederick的采访内容。

计算机情缘

LiveVideoStack:您能简单介绍一下您自己吗?

Ron Frederick:好的,我是Ron Frederick,现在住在加利福尼亚硅谷中心的山景城。我在伦斯勒理工学院(RPI,Rensselaer Polytechnic Institute)完成了计算机和系统工程本科学业,并在斯坦福大学获得了计算机科学的硕士学位。我目前在Broadcom Software从事计算机安全的相关工作,这家公司主要生产保障个人和公司网络安全的产品。

LiveVideoStack:您是怎么对计算机产生兴趣的?又是什么时候决定从事相关工作的?

Ron Frederick:我在很小的时候,就非常喜爱数学。1977年,当Radio Shack推出TRS-80微型计算机时(当时我9岁),我很快迷上了这款产品。我常常在我家附近商场里的Radio Shack商店里一待就是几个小时,为他们展示的demo编程。几年以后,我的父母给我买了第一台Radio Shack的计算机。不久之后,在我12岁的时候,我开始为当地的一家企业设置和运行计算机系统,这也是我第一份获得薪酬的工作。我在整个高中时期,都在利用业余时间为其他当地企业提供计算机咨询服务。从那个时候起,我就知道从事计算机相关工作将是我一生的追求。

施乐时光

LiveVideoStack:从斯坦福大学毕业以后,您为什么会选择施乐作为您的第一家工作的公司?

Ron Frederick:实际上,在我去斯坦福念研究生的第一个夏天,我就开始了在施乐PARC(Palo Alto Research Center,帕洛阿尔托研究中心)的实习工作,这份工作是当时我在斯坦福的导师推荐我申请的。这次实习经历真的太棒了!即使在秋天回到学校的时候,我也利用业余时间在施乐工作了一年左右,我那时认定这份工作就是我的梦想工作。我本来打算在斯坦福继续攻读博士学位,但我当时从斯坦福大学获得了硕士学位并能够有机会以全职身份入职施乐PARC,所以我当即决定加入施乐,因为这家公司一直是我的梦寐所求。

LiveVideoStack:施乐PARC是一家伟大的公司,有无数革命性的发明,这些发明改变了现代人类的生活。1992至2000年期间,您任职于这家公司。那个时候在PARC工作是什么感觉?

Ron Frederick:那是一个了不起的地方!施乐PARC的基本理念之一就是让其研究人员“生活在未来”。这意味着我们需要基于当前的技术创造出在当时无法以合理成本生产和销售的产品(也无法将这些产品包装上令人舒适的设计)。但是我们可以通过这些产品原型清楚地了解到在产品使用方式和新的交互方面,哪些创造是可行的,哪些行不通。

图片

图片

照片来源

Scientific American September 1991

通过这种方式,在科技方面,我们能做到超前10~15年。举个例子,早在 1992 年,我们就有了带有图形触摸屏的便携式联网手持设备PARCTab和平板电脑PARCPad,要比苹果2007年推出的iPhone和iPod Touch早了15年,更比2010年推出的iPad早了18年。当然,我们那时的计算机处理能力和网速完全无法同iPod Touch面世时相提并论,但拥有各种图标(图标主要用于启动各种应用程序和许多其他交互应用,如音视频会议和共享绘图工具)的主屏幕这一基本概念,在苹果这些消费产品出现的十几年以前,就已经存在了。

LiveVideoStack:回望在施乐PARC的那些日子,谁给您印象最深并启发您最多?

Ron Frederick:我在PARC的那个时期见到了很多了不起的人物,但令我印象最深刻的是Mark Weiser,他当时是PARC计算机科学实验室的经理(在我刚入职时),在1996年成为了PARC的CTO。遗憾的是,Mark在1999年过世,他没能看到自己一手帮助创造的技术在消费领域的充分实现。但在我心里,没有Mark在该领域的早期工作和领导,现在的很多产品都不会被创造出来。1988年,他提出了“普适计算”一词,用来描述这样一个世界:个人计算机将被周围无处不在的计算所取代,计算将与环境融为一体。这正是我们现在所生活的世界。

下面这篇文章很好地介绍了Mark的部分工作:

www.lri.fr/~mbl/Stanfo…

下面是一个关于普适计算的视频(视频结尾处,Ron有出镜):

www.timeheart.net/ubiquitous\…

LiveVideoStack:最近我国政府规定996这种工作文化是违法的,您在施乐时每天要长时间工作吗?施乐公司的工作文化是怎样的?

Ron Frederick:施乐真的不会强制规定员工在特定时间工作。事实上,很多人为了躲避“早高峰”会晚到公司。他们经常会在公司待到很晚,但大家是因为热爱自己所做的事才晚下班。人们常常会因为原创想法和技术创新获得奖励,而不是他们为了实现这一目标具体工作了多少小时。

LiveVideoStack:您所做的所有工作中,您最满意的是哪一部分?

Ron Frederick:如果要选一个我最骄傲的项目,那很可能是我的nv(Network Video)工具,这个工具是世界上最早一批可以让人们通过互联网传送和接收视频的软件。施乐PARC允许我开源nv的代码,从而来自世界各地成千上万的人都可以下载和使用它。NASA曾使用nv直播航天飞船执行任务,并使用了很多年;组织开发RTP的IETF也曾使用nv传输会议视频,方便无法亲临会议的人可以掌握工作最新动态。

去年,我在GitHub上重新发布了原始nv代码,任何人都可以查看:

github.com/ronf/nv

在下面的音频访谈中,你可以了解到更多关于nv的信息:

town.hall.org/radio/Geek/…

LiveVideoStack:对于年轻一代的计算机工程师,您有什么鼓励的话想对他们说吗?

Ron Frederick:我想给从事这一领域工作的人们一个重要建议:不要害怕自己动手,意思是他们应该去解决现实世界中的问题,并写出解决问题的代码。学术研究教会你构建事物的基本原则,虽然这很有价值,但从我的经验来看,你学到的知识大部分来自实际编写代码,尤其是那些对现实世界产生影响的代码,而不仅仅是课堂项目和家庭作业。

创造RTP

LiveVideoStack:RTP一共有四位作者,Van Jacobson、Steve Casnerand、Henning Schulzrinne和您,你们四位是如何达成合作的?在开发RTP的过程中,有什么事给您留下深刻的印象吗?

Ron Frederick:我们能成为这一协议的作者,是因为我们四位都曾创建过在互联网上传输实时数据的工具,这些工具能够传输包括音频、视频和实时“共享白板”应用程序(这种应用可以让不同地点的人通过在虚拟白板上绘图保持同步协作)。创建RTP协议的基本思想是,找到不同数据流之间的共同元素,并标准化这些元素(在使用不同工具的情况下),以便更轻松地执行如同步流或报告流质量(收集数据包丢失和延误的统计数据)之类的操作。

我们每个人都会写作和编辑文档的不同部分,并定期将它们汇总在一起并作为Internet Draft(互联网草案)发布新版本,供更多感兴趣的工作组成员提供反馈。

对我来说,这是我第一次与一个标准组织合作。在整个过程中,我从其他三位作者身上学到了很多东西,他们在这类工作方面已经拥有了丰富的经验。因为我已经开发出了能传输实时数据的工具,所以他们非常欢迎我的意见,也让我有机会为最终的RFC做出了重要的贡献。

LiveVideoStack:在创作RTP的过程中,哪部分工作是最具挑战的?

Ron Frederick:我认为最困难的事情可能是弄清楚如何构建足够通用的协议,使它适用于我们希望 RTP 支持的不同类型的实时通信。支持音频和视频已经是一个挑战,因为视频数据往往更“突发”,通常会产生多个具有相同时间戳的数据包,而在这方面音频通常更流畅。当添加其他类型的数据共享(例如共享白板工具)时,变得更加困难,因为你通常需要某种形式的重传,以使每个人看到的内容最终保持一致。如果是音频或视频,你可能只需使用有限重传或其他技术,如前向纠错。但在某些时候,如果所有数据没有及时到达,你就会放弃并丢弃部分音频或视频。

LiveVideoStack:RTP/RTCP 作为WebRTC的基础协议,进入到绝大多数个人计算机上,这个您当初有预想到吗?

Ron Frederick:我很高兴看到WebRTC采取了一种利用现有标准的方法,而不是从头开始重新创造。在开发RTP时我们就十分确定,我们想要它支持各种用例,现在WebRTC所做的事情就在这个范围之内。

早在1996年(WebRTC作为标准要很久之后才出现),我在PARC就做过这方面的工作,当时我利用NPAPI 的插件机制使Web浏览器可以支持音频和视频。这些音频和视频流都是基于RTP/RTCP,其中使用了我当时为nv写的代码以及我早些时候写的网络音频代码。施乐最终将这个项目独立出来,成立了一家叫Placeware的公司,这家公司后来被微软收购。

LiveVideoStack:在WebRTC中实现了越来越多的RTP的拓展,您怎么看这个情况?在您设计RTP的时候有考虑过会出现这种情况?您觉得这是一个好的设计吗?

Ron Frederick:我必须承认我没有关注 WebRTC的所有细节,所以我并不熟悉 WebRTC 提出的具体 RTP 扩展。RTP 标准的设计考虑到了对扩展的一些支持,但我们当时希望在支持扩展与高效的数据包处理之间取得平衡。因此,扩展支持主要集中在为 RTCP 控制包添加扩展,而不是为 RTP 数据包提供大量扩展支持。RTP 确实允许通过定义应用规范来扩展RTP头, 但是一个RTP包应该只允许有一个RTP扩展,而且这个RTP扩展的定义必须在当前应用规范内。这样就提供了一个给RTP携带额外信息的方法,避免了通过遍历多个扩展才能找到实时负载数据的代码。

LiveVideoStack:QUIC/HTTP3越来越流行, 甚至有人提出让WebRTC通过QUIC来传输,您如何看待RTP 基于QUIC传输?RTP OVER QUIC 是一个好主意吗?

Ron Frederick:QUIC是一个非常有趣的协议,同 TCP相比,它有很多优势,尤其是传输实时数据的时候(QUIC可以使数据包按照任何顺序得到处理)。虽然 HTTP/2 增加了在单个 TCP 连接上多路复用多个流的能力,但TCP迫使数据始终要按顺序处理,这意味着一个多路复用流上的数据包丢失将阻止其他所有流中的数据处理。QUIC有解决这个问题的潜力,甚至可能会演变为支持不同流的不同重传策略,这对于音视频内容来说是非常有利的(因为在出现一定延迟后,到达的数据包将不再有用)。我非常期待看到这项工作的发展!

过去、现在和未来

LiveVideoStack:现在的互联网和您那时的互联网最大的不同是什么?您认为接下来在互联网上的大创新会是什么?

Ron Frederick:现在和那时最明显的区别是:现在的终端用户获得了更多可用带宽,以及他们手中用来联网的设备也拥有了更多算力。当我开始在互联网上传输音频和视频时,我家里的ISDN连接可以使网速达到“惊人的”112kbps,但当时大多数人只能在28.8 kbps或者更低的网速下使用拨号上网。今天,家用互联网的速度比当时快了1000 倍以上,并且可用的计算机处理能力更加强大。

另一个很大的不同便是无处不在的WiFi和蜂窝连接,它们可以保持移动设备永久联网。我们在PARC时就探索过WiFi,当时使用的是我们自己开发的红外和近场无线电混合技术(这些探索都发生在WiFi发明之前),但那时仅限于在我们自己的大楼中使用。不像现在,人们理所当然地认为,从哪里都可以直接联网。

不过遗憾的是,当时开发出来的IP组播没能进入现代互联网(至少没有得到大规模应用)。IP组播可以将数据非常有效地一次性发送给多个目标,而无需将数据的多个副本放在指定的网络链接上。其核心思想是,将你与其他目标机器之间的路由器构建成树状连接,使数据在所有目标机器之间有效传输,但只需在给定链接上放置任何数据的单一副本,无论最终有多少目标机器,都会接收到它。复制数据的情况发生在各方路径偏离的时候,但即便如此,实际上也只有至少拥有一个数据接收器的路径才能最终获得那些副本。随着越来越多的多方视频会议出现,我认为没有IP组播的现代互联网将受到影响,但是现在网络带宽也在不断增长,那么未来我们付出的代价可能只是需要发送多个数据副本。

我真的不确定下一个大创新会是什么,但随着设备的算力越来越强大,我想我们将很可能看到更多的“本地”处理,如像Siri这样的语音助手,不用先将数据上传到云端也能工作,这对于终端用户隐私来说肯定是件好事。我还认为,在增强现实方面,我们将很可能看到更多突破,尤其是当眼镜(或者隐形眼镜!)中的平视显示器(HUD)变得足够轻便的时候。

LiveVideoStack:2020年新冠疫情来袭,人们的生活方式发生了很大变化,但是由于人们不得不待在家里使用视频沟通,使得视频技术发展迅速。您认为这次的发展对视频技术创新和增长会是一个机遇吗?

Ron Frederick:在我看来,疫情毫无疑问大大加速了视频会议和展示工具的使用,如WebEx和Zoom。随着人们待在家里的时间比以前多得多,也增加了对互联网流媒体娱乐的使用。在某些情况下,我认为对很多雇主来说,即使在疫情得到控制之后,远程办公也很可能成为一种选择(因为他们看到员工在远程办公的状态下也很高效)。但这样一来,一些公司就不会为员工提供办公场所,所以商业房地产行业可能会受到很大影响。

LiveVideoStack:疫情给您的生活和工作带来怎样的改变?您最近在忙些什么?

Ron Frederick:我非常幸运,能够在疫情期间确保自己的安全,工作也没有受到疫情带来的冲击。当早期封锁开始时,和许多其他公司一样,我们公司的员工也一直连续几个月在家办公;后来变成一半时间在家,一半时间在公司;现在所有人都在公司办公了(当然实施了很多安全措施)。

我很幸运,我所做的工作(上文提到的网络安全工作)一直都很重要,并且我能够利用我们现在在这里讨论的技术来让我的工作保持高效。

在业余时间,我也在研究一些开源项目。第一个就是创建在Python异步框架之上的SSH client/server——AsyncSSH。

你可以在asyncssh.readthedocs.io/en/latest/ 或者GitHub 上github.com/ronf/asyncs… 查看更多相关信息。

同时,为了学习更多现代网络标准方面的知识,以及重温1992年我在施乐PARC时所写的一个游戏,我在去年创建了一个基于浏览器的经典“太空大战”版本,其中主要使用了WebSockets 和 WebRTC。

你可以在 github.com/ronf/webrtc…

这个游戏的最初版本是为了说明如何在没有中心服务器的情况下,通过多个客户端使用IP组播来共享它们的游戏信息。新版本沿袭了这一基本概念,所有的游戏逻辑都在客户端和一个服务器中,服务器只负责下载游戏,并允许各个客户端发现彼此。如果可以,客户端将尝试使用 WebRTC 直接连接到彼此,如果连接WebRTC失败,则回退到使用简单的 WebSocket 中继进行该通信。

LiveVideoStack:最后一个重要问题,如果您有机会和一位计算机科学家对话,您最想和谁对话?您想跟这位计算机科学家谈些什么?

Ron Frederick:我想我会选Alan Kay, 他也曾在施乐PARC工作过,但在我入职前就离开了。我有一件上面印有他语录的T恤,是我后来在Symantec时获得的,我非常喜欢上面那句话:“预测未来最好的方法就是创造它(The best way to predict the future is to invent it)。” 他在1968年就构思了Dynabook(平板电脑的前身),那个时候连个人计算机还不存在!他还被认为是现代计算机图形用户界面的架构师和面向对象编程的发明者。

我很想听听他对现代移动设备的看法,以及现代设备与他最初设想相比有哪些优劣之处。在技术发展的过程中,我们做对了什么,以及现在还缺少什么。


感谢刘连响老师提供RTP相关问题线索。

延伸阅读:

《RTP诞生记》


扫描图中二维码了解大会更多信息

图片