对话FTP协议作者Abhay Bhushan(翻译)

文摘   科技   2024-07-06 19:02   辽宁  

Abhay Bhushan 是互联网早期的开拓者之一,他是FTP(文件传输协议,File Transfer Protocol)的发明者。FTP 是一种互联网协议套件中的应用层协议,用于在互联网主机之间传输计算机文件。Abhay Bhushan对互联网 TCP/IP 协议架构的发展以及早期电子邮件协议的创建做出了重要贡献。目前,他是 Asquare Inc. 的董事长和印度理工学院坎普尔基金会的主席。















Abhay Bhushan

Pramod:大家好,欢迎来到 Mapping the Journey。提到互联网和互联网协议,我们常常会想到 HTTP、TCP、FTP、SMTP 等。多年来,我们都在学习这些协议。其中,FTP 协议使计算机之间传输文件成为可能。我一直很好奇,那些早期的工程师是如何构思和创建这些协议的。今天,我有机会与 FTP 的作者Abhay Bhushan 先生对话。他是互联网技术领域的先驱,对 TCP/IP 架构和早期互联网协议的发展做出了重大贡献。他目前在指导初创企业,并担任 Asquare Inc. 的董事长。Abhay Bhushan 先生,欢迎您来到我的节目,我非常高兴并且非常荣幸能够采访您。

Abhay:谢谢你,Pramod。

Pramod:请您先介绍一下自己。

Abhay:我是Abhay Bhushan,我在印度长大,是印度理工学院坎普尔分校¹的首届学生,于 1960 年入学。我们这届学生非常幸运,获得了一个由八所美国顶尖大学组成的联盟的资助,这些大学包括麻省理工学院(MIT)、普林斯顿大学、加州理工学院、加州大学伯克利分校、卡内基梅隆大学、密歇根大学、俄亥俄州立大学和普渡大学。除了资助以外,这些大学的教授还会访问我们的学院。印度理工学院坎普尔分校也是印度第一所拥有计算机中心的教育机构。

有传言说,这些计算机是由牛车拉来的,但我亲眼见到它们是用平板车拉来的,最后一程是卡车。我没有见过牛车,所以传言有些夸张。在我看来,这种说法还挺有趣的。1962年,Harry Huskey ²(被认为是计算机科学的真正先驱,最近刚刚过世)来到了我们学校,带来了不同的计算机。学院里有许多当时世界上最优秀的人才,比如,我的导师 William Schreiber³,他来自 MIT,于 1964 年至 1966 年在坎普尔分校任访问教授。1965 年,他带来了学院的第一台电视机,这意味着人们可以自己制作电视节目并播出。但我们播出节目时, 印度政府却说这是非法的。于是 Schreiber 教授在不同的宿舍楼下铺设了电缆,这样一来,印度理工学院坎普尔分校在 1965 年就有了有线电视。

Pramod:1965 年,太厉害了。

Abhay:是的。1965 年,我们的毕业典礼在电视上播出,不仅学校礼堂里的人们可以看到这次典礼,其他不同地方的人也可以在电视上观看。你可以想象当时的情况,坎普尔分校那时不仅拥有风洞(wind tunnel)⁴,而且是印度所有院校中唯一拥有飞机场的学校。

Pramod: 请向我们介绍一下您离开坎普尔分校后的生活。

Abhay:1965 年毕业后,我来到了麻省理工学院,那时候还没有专门的计算机科学系。全世界包括麻省理工在内的计算机科学系都是在上世纪 80 年代开始设立的。因为计算机科学起源于电气工程,所以当时计算机相关的学习都归属于电气工程系。因此,最初我们在电气工程系学习的内容也包括计算机科学和其他相关领域。

为了完成我的硕士论文,我去了贝尔实验室,在那里研究彩色图片和可视电话(picture phone)的传输。你看,现在人们可以通过各种手持设备与其他人进行视频通话。其实,这种技术早在 1965 年就出现了,当时的纽约世界博览会上就已经展示了可视电话。贝尔实验室的人告诉我,可视电话只能传输黑白图像,传输速度只有 6.3 Mbps,当时的带宽不足,所以实用性并不高。于是,我开始研究如何通过高效编码,将图像压缩到最小的数字,在有限的带宽下传输彩色信号。这成为了我的研究重点之一。

Pramod: 请您跟我们聊聊从MIT毕业以后的生活。

Abhay:毕业后,我加入了 MIT 的电子系统实验室,它是Project MAC⁵(Project MAC 开发了 Multics 和 MIT 第一个分时系统 CTSS)的一部分。在那里,我想我们有这么多迷你计算机,为什么不开发一些传输协议把它们连接起来呢?于是,我在 1968 年的春季联合计算机会议上发表了一篇名为《计算机间通信》( “Inter Computer Communication”)的论文。当时有一位教授也在那个会议上,他就是被人们称为 ARPANET 之父的 J. C. R. Licklider,他在其著作《未来的图书馆》(Libraries of the Future)中预言所有信息都将在线,并且人们可以随时访问。当然,在上世纪 60 年代,存储设备还非常昂贵。之后他联系到了我,并对我说:“我正在考虑通过 ARPA 资助这个项目。”他还说:“要不要和我一起去五角大楼?”当时是 1968 年末或 1969 年初。

于是,我和他一起去了五角大楼。当时他们正忙着为即将发布的招标项目撰写规范说明,这个项目旨在开发一个包交换网络,用于连接所有由 ARPA(现在被称为DARPA)资助的研究项目中的不同计算机。

我和 Licklider 到了以后,发现那里的人非常注重安全性。所以我冒昧地问了一句:“是不是因为你们不想让苏联人知道我们在做什么?” 有个来自空军的人告诉我:“不, 我们不想让陆军知道空军在做什么,也不想让空军知道陆军在做什么。”我当时觉得他这个回答很有意思。

我们制定了规范,虽然我并没有直接参与撰写,但我和 Licklider 都参与了审核。最终,BBN公司⁶得了合同,并开发了 IMP 设备(接口信息处理器,Interface Message Processor)。IMP 通过包交换网络连接各处的计算机,所以在每个连接计算机的地方都有一个 IMP。它是将包交换网络与计算机连接的接口设备。

Pramod:就像今天的互联网?

Abhay:是的,它就是今天互联网的前身,当时被称为 ARPANET,互联网稍后出现。1969年,合同启动,BBN 开发了这些 IMP 设备,并第一次连接了三个节点。当时这些 IMP 设备之间的通信速度,最高只有每秒 256 Kb。现在我们谈论的都是 Mb 和 Gb,而 256 Kpbs 在当时已经是非常高速的线路了,一般都在 56 Kpbs,这就是当时的数据传输速度。

当时Bob Metcalfe(他是以太网的发明者和 3Com 公司的创始人)和我的办公室挨着,他说他要连接 PDP-10 计算机,而我选择连接 Multics 系统(大型的 GE 645 Multics系统),于是我开始开发接口。我们之间有点竞赛的意味(当然是友好的),想比比看谁能先完成这项工作。我先完成了硬件部分,但软件的开发花了更长时间,而他的 PDP-10 系统软件相对来说没有那么复杂,所以他最终先让整个系统运行起来。他说这算是打成平手。Bob是我在 MIT 和 Xerox 时期的好友。

同一时期,我还申请了博士。我在 1968 年开始进入博士项目,并且撰写了关于“资源共享网络”(Resource Sharing Networks)的论文。然而,论文委员会认为它更像是一个工程项目,不太适合作为研究性的博士论文。他们认为这篇论文缺乏足够的研究元素。但我决定继续探索这个领域,于是我放弃了博士学位,而后在麻省理工斯隆管理学院获得了 MBA。我当时一心想着实际创建一些东西(这符合我的个人偏好),而非从事学术研究和教学。

Pramod:请您跟我们讲讲您是如何发明FTP的。

Abhay:1969 年末,我们成立了一个网络工作组。我开始思考:我们现在该怎么做?如何让不同的计算机之间进行通信?虽然我们能发送数据包,但如何解读这些数据包的内容,比如从计算机 A 发送到计算机 B 的数据包?UCLA (加州大学洛杉矶分校)是其中一个重要节点,也是第一个接入网络的节点,Vint Cerf 和 Steve Crocker 当时是 UCLA 的研究生。BBN 则是第三个加入的节点,我记得 MIT 是第四或第五个接入网络的。我们最初大约只有五个节点,随后更多的计算机逐渐接入网络。因此,我们组建了第一个网络工作组,Vint Cerf 担任了该工作组的主席,因为他当时是我们这些人中年纪最大的。

然后,我们开始开发 TCP/IP 协议、数据包以及其他今天广泛应用的技术。当时我们需要思考的问题是:如何确认一个数据包的来源,以及如何把来自不同地方的数据包组合在一起,还要知道每个数据包属于哪里。这就是 TCP/IP 协议的起源。最初它被称为传输控制协议,互联网协议要后面才出现(大约是五、六年后,或者四年后)。那时我们首先要确保计算机之间可以互相通信,可以将消息从一台计算机发送到另一台,并确保消息的完整性和正确组合。这是第一步。接下来的问题是,我们该如何处理这些数据?那时候我们使用的设备包括声学耦合器(acoustic coupler),你听说过声学耦合器吗?(没有。)你可以把电话放在这些设备上,然后使用类似电传打字机的设备发送消息,然后连接到你的计算机。我家里有一台小型便携式电传打字机,我只需把电话插入声学耦合器,再连接到电传打字机,就可以登录我的计算机了。

Pramod:就像今天的 Shell 访问?

Abhay:是的。这就是当时的技术环境。那时,我登录自己的计算机,你就可以与我的终端通信。这些终端通过声学耦合器连接到电话网络上。如果我不登陆自己的计算机,而是想使用 UCLA 的计算机,他们就要给我一个密码。因此, Telnet 作为第一个协议被开发出来。

这意味着现在你可以通过一个终端连接到 Multics 系统,并直接使用 PDP-10,而不必连接到 PDP-10 上 —— 这就是 Telnet 协议。我们开发了这个协议,我是 Telnet 团队的一员。

我当时提出了另一个想法:我们需要更多的应用程序。那么是什么应用程序呢?我们需要电子邮件和在系统内传输文件。为什么不同时开发这两种应用呢?大家认为这是一个好主意,于是我成为了开发文件传输协议(FTP)的负责人。

接着我们就开始着手协议的开发,这一切都是团队合作的成果。当我说我编写了这个协议时,实际上是整个团队的努力。我们相互不断借鉴他人的想法,分工合作,有人负责文档编写,有人领导和推动进展,其他人则负责实现和编写软件。在发现 bug 时,我们一起改进,共同寻找新的解决方案。

就这样,FTP 被开发出来,1971 年 4 月,我写出了第一个 FTP 协议,大约花了 6~8 个月的时间。在开发过程中,会有这样或者那样的进展,所以第一版出来后,我们又陆续推出了不同的版本,并不断改进。第 356 版或第 561 版应该是我最后写的版本,之后我便离开工作组加入了施乐公司。

有趣的是,当时我们想要开发电子邮件。如果回想那些日子,1 MB 或 2 MB 的内存是大型计算机的标准配置,当时很多计算机只有 256 KB 的内存。而现在的计算机有着数 GB 的内存,所以很难想象过去的工作有多么低效。我们当时不想使用两个处理器,因为那么做会对一些只有 1 MB 或 500 KB 内存的机器造成太大负担。于是我们决定在 FTP 中加入两个命令:mailmail filemail就是普通的文本消息,而mail file则用于发送附件,这正是人们今天所使用的电子邮件功能。

现在,我们有了电子邮件,就可以连接彼此。那么,我们该如何识别用户名和主机名呢?我们原来使用的是“用户名” “空格 ” “AT” “空格” “主机名”这种格式,我们需要统一网络邮件头。当时, Ray Tomlinson⁷ 正在 BBN 的三台本地主机上使用“@” 符号来区分用户名和主机名。我对 Ray 说,这个想法很好,与其用“空格”和“AT”并让人们编写程序去解析这些“空格”和“AT”,为什么不直接用一个符号呢?他觉得这是个好主意。于是我们这个小组(其中包括 Ray Tomlinson 和我)编写了 RFC “标准化网络邮件头”⁸,你可以查到。我们决定统一使用@符号。当时没有人在用户名和主机名中使用@符号,有时候人们会使用“.” 或者“-” ,但没有人用@,空格也不允许。就是现在,空格也不允许使用。大家都认为@ 是一个很好的区分符号。

唯一的问题是,在电传打字机上,“@”符号是一个无效字符,起不到任何控制作用。但 Ray 说,电传打字机并没有那么重要,如果将一台计算机连接到电传打字机,总可以找到办法替换这个字符。于是,这个方案就这样被采用了(太棒了!),这就是网络标准最初的开发方向。之后,SMTP 协议也被开发出来,随后 IMAP 等协议也陆续推出。

随着技术的发展,FTP 等网络传输协议得到了显著改进。现在我们拥有了 Hadoop 等高性能工具,处理大数据变得更加高效。我们能够以极高的速度传输数据,像 Google 这样的平台可以处理和传输全球的信息,使得高速视频传输成为可能,视频编码也变得更加优秀。这些技术进步使得我们能够将高质量的视频和电影快速传输到手机和电视上。所有这些进步都得益于许多人的共同努力,我们站在了前辈们的肩膀上,比如像 Harold Huskey 这样的先驱人物,以及 MIT 的 Vannevar Bush⁹等开拓者,他们为计算机技术和基础设施的发展奠定了基础。在这些基础上,数百名杰出的科技人员不断推动着技术的进步。

Pramod: 你们也为后来的技术发展奠定了重要基础。我之前不知道电子邮件和 FTP 是在一起的。我真的没想到。

Abhay:是的,它们在一起大概有四年左右。

Pramod:所以你们能通过邮件发送和接收……

Abhay:是的,对于 FTP 来说,只需要一个服务器。我还做了另一件事,我开发了一个调查小程序,它可以看作是一些收集信息机器人的前身。我们当时想知道每台计算机的运行情况和数据传输量,所以我写了一个小程序,用来 ping 不同的计算机,看它们是否在线,并且记录统计数据。这是一件有趣的小事。

Pramod: 我稍稍打断一下,您向我们讲解了所有主要协议的精彩历史,并且您还参与了其中很多协议的开发工作,我今天很高兴能和您交谈。非常感谢您的工作,请继续。

Abhay:然后我加入了施乐,当时他们正在研发各种新技术。我首先去了罗切斯特,因为那里有更多的研究工作需要做。他们在这里和罗切斯特分别对我进行了面试,并问我能否带领那里的人跟上现代科技的步伐,因为施乐正在努力推动信息技术的发展,他们需要一个信息技术方面的人来引领这项工作,而当时很多人不太理解这些新技术。这对我来说将是一项艰巨的任务。几年后,我休了一年假回到印度,在乡村为贫穷的人们提供服务,这是我的个人选择,也是我的热情所在,因为我的祖父母曾是自由斗士,为这些事业奋斗过。他们要求我回到印度后必须花一年时间为穷人工作。

大概是 1978 或 1979 年,我回到美国并开始工作,当时公司的战略是推出与现代计算世界相关的技术,包括个人电脑和工作站等设备。我加入了系统开发部门,任务是整合各种系统。1980 年,我们推出了个人电脑;1981 年,我们推出了一款强大的 Xerox Star 工作站 ¹⁰,并实现了与当今互联网类似的网络。后来,正如你所知道的,史蒂夫·乔布斯在拜访施乐后,推出了麦金塔¹¹,引发了新的技术变革。但在此之前,我们已经建立了一个 Star 工作站网络,其中所有设备都互相连接,包括文件服务器、邮件服务器、打印服务器等,许多人都在使用,包括白宫和微软。然而,施乐后来却错失了这一发展机会。

Fumbling the Future¹²这本书中写得很清楚,施乐的管理层对新技术一窍不通。我曾参加过他们的会议,他们不懂什么是“位”和“字节”,他们问:“为什么销售人员要花六个月或一年的时间才能卖出一个系统?我们的复印机只需要两周就能卖出一大批。”他们无法理解技术的价值,这让销售人员感到沮丧,很多人离开施乐加入了苹果、WANG¹³、IBM 等公司。管理层不懂技术,他们对工作站收取高达 5000 美元的管理费用,导致产品价格高昂,从而失去了市场机会。

1988 年,施乐最终将工作站部门卖给了 Sun 公司。当时我还在想,我们该怎么办?那时我们仍然拥有激光打印机等其他业务。1990 年,为了参加地球日活动,我每天骑自行车上班。我向施乐 CEO 提交了一份提案,希望可以使公司变得更加环保。他看完之后对我说:“太棒了,你帮公司省了不少钱,你想要什么?” 我说:“好吧,请给我增加一些工资和预算。” 仅仅通过减少浪费,我就为公司节省了数十亿美元。这就是追随热爱的力量。所以如果有人问我,我们该怎么做才能有所作为,我会说,追随你对科技的热爱,去改善社会、发展社会或者保护环境。追随你对科技的热爱,享受它带给你的快乐…… 这不是为了赚钱(完全不是!), 而是为了做出改变。

Pramod:这是我一直很想问的一个问题。当您在开发那些协议时,您对互联网有一个怎样的愿景?您认为现在的互联网状况如何?这些年来它发生了怎样的变化?

Abhay:我们当初对信息共享有很高的期待,但当时在学术界,没有人预见到互联网会变成商业化的巨大平台。所以在上世纪 90 年代,当我看到互联网被广泛用于销售各种商品,甚至包括日常食品,亚马逊也开始涉足其中时,我感到非常惊讶。在 60 年代和 70 年代,我们从未想象过或者讨论过互联网会成为商业市场的主要组成部分。现在它已经成为互联网应用中最赚钱的领域之一。当初我们只是关注信息传递、人与人之间的联系以及就业等方面,想着如何让这些变得更便捷。我们当时只考虑到信息的传递,而非商品和服务。但事实上,商品和服务本质上也是信息,每次买卖都是在传递信息。当然,现在我们有 UPS 和其他快递公司,未来可能会有无人机快递来运送这些实实在的商品。

Pramod: 您说得对。现在让我们回到印度,您现在与印度有着什么样的联系?

Abhay:我和印度一直保持着密切的联系。我在前面讲过,在祖父母的要求下,我曾经从美国返回到印度工作了一段时间,正是这段经历,让我意识到帮助基层人民的重要性。我们支持了数百个基层的项目,这些项目涉及教育、医疗、创新、卫生、环境保护等不同领域,几乎遍及印度所有邦。我认为,保持这种联系非常重要。

2002 年到 2003 年期间,我们一群人聚到一起,创立了印度理工学院校友组织 (Pan IIT) ,既是为了推广印度理工学院的品牌,同时也为了帮助身在各个领域的印度理工学院毕业生。Pan IIT 成立后,我担任了首任创始主席。这让我感到非常高兴,可以帮助自己的母校,比如通过坎普尔印度理工学院基金会 (IIT Kanpur Foundation) 帮助坎普尔印度理工学院,还有孟买印度理工学院遗产基金 (IIT Bombay Heritage Fund) 等。所有这些项目都同时启动,校友们互相帮助。现在,博拉理工学院和其他学院也都建立了自己的校友网络,努力提供支持。无论你走到哪里,你都会感受到这种互帮互助的精神,回馈社会非常重要。

Pramod: 太棒了!谢谢您,Bhushan先生。与您交谈非常愉快,非常高兴您能参加我的节目。

Abhay:谢谢!Pramod。

Pramod:和 Abhay Bhushan 先生交谈非常愉快,他是一位了不起的人物,听他讲述互联网协议的故事就像听一场超级有趣的讲座。这些卓越的工程师们为计算机科学领域奠定了重要基础,让今天的人们能够站在巨人的肩膀上。再次感谢您, Abhay Bhushan 先生。





The Nexus

注释:

  1. 印度理工学院坎普尔分校(IIT Kanpur)是印度最负盛名的理工学院之一,由印度政府建立于 1959 年,位于印度北方邦坎普尔市。该校以其卓越的学术水平和研究实力享誉全球,在工程、科学、技术等领域拥有众多顶尖的学科和专业。

  2. Harry Huskey 是一位美国计算机设计先驱,被誉为“早期计算机设计之父”。他参与了早期计算机的设计和建造,包括 ENIAC、EDVAC 和 SWAC,为现代计算机的发展奠定了基础。他还为计算机教育和研究做出了重要贡献,帮助建立了多个计算机科学系和研究机构。他曾参与建立了印度理工学院坎普尔分校计算机中心,并召集了许多计算机技术先驱在那里举办会议。

  3. William Schreiber 是一位美国电气工程师和麻省理工学院(MIT)的荣誉退休教授,曾在联邦通信委员会任职。1964 年至 1966 年在印度理工学院坎普尔分校(IIT Kanpur)任访问教授。Schreiber 在电视和打印等领域推动了图像处理系统的发展。他在图形艺术方面的工作包括彩色打印、色彩校正和激光扫描,在电视领域的研究涉及数字电视和高清电视。

  4. 风洞是一种用于测试空气动力学性能的设施,通常用于模拟飞行器、汽车、建筑物等物体在风中的运动和表现。风洞内可以通过控制风速和方向来模拟不同风速和条件下的气流,从而帮助工程师和设计师评估和改进设计,确保其在真实环境中的性能和安全性。

  5. Project MAC 是 20 世纪 60 年代末至 70 年代初由麻省理工学院(MIT)主导的一个重要计算机研究项目。它旨在推动多用户和时间共享计算机系统的发展,同时也是早期分布式计算和操作系统研究的重要基础之一。该项目在计算机科学和工程领域的发展中扮演了重要角色,为今天的计算机技术奠定了基础。

  6. BBN公司(Bolt Beranek and Newman)成立于 1948 年,是一家美国科技公司,总部位于马萨诸塞州剑桥市。BBN 在计算机科学、电信技术和网络研究领域有着悠久的历史和深厚的影响力。它在 ARPANET 的早期开发中发挥了重要作用,并参与了许多重要的计算机网络和通信技术的研究和实施。

  7. Ray Tomlinson,美国计算机科学家,被誉为“电子邮件之父”。他于 1971 年在 ARPANET 系统上实现了第一个电子邮件系统,并使用了“@”符号来分隔用户名和电子邮件地址,这一方案沿用至今。他的发明彻底改变了人们的交流方式,对现代社会产生了深远的影响。

  8. https://datatracker.ietf.org/doc/html/rfc561

  9. Vannevar Bush 是 20 世纪美国的一位工程师、发明家和科学家,他在计算机科学和信息科技领域有着深远的影响。他提出了著名的Memex概念。Memex是 Vannevar Bush 设想的一种用于增强信息存储和检索的设备,尽管它从未被实际制造,但它对信息技术的发展产生了重要影响,尤其是在超文本和互联网领域。

  10. Xerox Star 工作站(官方名为 Xerox 8010 信息系统)是施乐公司 1981 年推出的先驱性产品,被认为是第一个商业图形用户界面工作站。它引入了图形化界面、鼠标、窗口和菜单等概念,对后来的计算机界面设计产生了深远影响。

  11. Macintosh,后来更名为 Macintosh 128K,是由苹果公司于 1984 年推出的个人电脑,它引领了现代计算机界面的革新。麦金塔以其直观的图形用户界面、点击操作的鼠标和轻量级的外观设计,成为个人计算机历史上的重要里程碑。

  12. Fumbling the Future: How Xerox Invented, Then Ignored, the First Personal Computer是一本探讨施乐公司在计算机技术和创新上错失良机的经典著作,由 Douglas Smith 和 Robert Alexander 合著。该书详细揭示了施乐在 20 世纪 70 年代初期拥有先进技术的情况下,未能充分利用和推广图形用户界面和鼠标等创新,从而错失了成为计算机行业领导者的机会。

  13. Wang Laboratories, Inc.(通称为Wang)是一家美国技术公司,由华裔美国工程师王安(An Wang)和 G. Y. Chu 于1951年创立,总部最初位于马萨诸塞州剑桥市。该公司在 20 世纪 70 年代和 80 年代以其文字处理机和计算机产品而闻名。

致谢

本篇采访由Mapping the Journey播客主持人 Pramod HS 于 2017 年制作播出,The Nexus 在获得 Pramod HS 的授权后,将采访文字版翻译为中文发布。感谢 Pramod HS 授权 The Nexus 翻译及发布本篇采访。

作者简介:

Pramod HS 是一位软件工程师,目前居住在湾区。他来自印度的迈索尔。他热爱编程,闲暇时,喜欢调酒、打网球、看板球比赛。当然,播客也是他的爱好之一。2017 年,他开始制作一个名为“Mapping The Journey”的播客。

原文链接:

https://mappingthejourney.com/single-post/2017/09/15/episode-9-interview-with-abhay-bhushan-author-of-file-transfer-protocol/

播客收听地址:

https://tunein.com/podcasts/Technology-Podcasts/Mapping-The-Journey-p3470477/?topicId=247013174


The Nexus
Connect it.