本节书摘来异步社区《OSPF和IS-IS详解》一书中的第1章,第1.4节,作者: 【美】Jeff Doyle 译者: 孙余强 责编: 傅道坤,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.4 互联网的诞生

OSPF和IS-IS详解
当别人都在研发IMP时,Bob Kahn却无时无刻不在考虑网络中经常会发生的拥塞现象。他提出了流控算法,根据这套算法(的预测),流量会充斥IMP中的队列,这势必将导致上游IMP中的队列“爆满”。这种“级联”式的拥塞最终会使得网络越来越“卡”。但Kahn在BBN的同僚都把精力集中在了工程学方面,不管Kahn如何唠叨,都不肯在他提出的这一“抽象”问题上浪费时间。那些人只是想让网络上线并运行,根本无心对网络性能进行优化。

为此,Kahn于1970年1月进驻NMC,对自己提出的理论展开实验验证。在NMC,他结识了非常肯帮忙的Vint Cerf、Crocker、Postel,以及其他人等。Cerf是这么说的:“Kahn莅临UCLA,对持久有效网络环境(long-haul environment)中的系统运行做出了尝试,我们建立起了富有成效的合作关系。他提出软件所要具备的某些功能性需求,而我则通宵达旦地编程,以满足他的需求,然后我们会一起来验证1。”

Kahn可以很轻松地让“新鲜出炉”的ARPANET遭遇各种各样的网络拥塞场景,而那些“场面”与他所预测的结果丝毫不差。此后,他带着那些已获论证的理论回到了剑桥,问题很快得到了解决。尤为重要的是,Kahn与Vint Cerf自此建立起了深厚的友谊和良好的合作关系;不出几年,那些友谊与合作就对计算机网络的发展产生了深远的影响。

Larry Roberts在某段时间内对分组无线网络(packet radio network)很感兴趣,很明显,这与该网络在军事方面的应用密不可分。1972年,Kahn离开BBN公司,到DRAPA任职,Roberts给他分配的工作任务正是“钻研”分组无线网络。于是,Kahn开始研究一种叫做“ALOHANET”的网络。

1969年,ARPA资助了夏威夷大学的一个试验性质的分组无线网络项目,该项目由Norman Abramson教授负责。ALOHANET把夏威夷群岛周围的几个站点,与夏威夷大学校区的中央分时计算机连接在了一起。Abramson天马行空般地将他研发出的IMP机型命名为Menehune(一种淘气的夏威夷精灵)。ALOHANET内的用户可籍TIP与ARPANET相连,而TIP则接入Menehune。站在ARPANET的角度来看,这一通过TIP的连接模式只不过是一种终端连接。Kahn则醉心于去研究如何使得ARPANET、ALOHANET或任何一种形式的网络建起起完全对等的关系,让不同网络的主机之间能以“透明”的方式互访。从那时起,DARPA的Internet项目才算正式启动,探究开放式网络架构的序幕也随之拉开2。

在上述研究开展的同时,Kahn于1972年10月组织了ICCC会议,第一次公开展示了ARPANET。在那次会议上,成立了一个新的工作组——国际网络工作组(International Network Working Group,INWG)。当时,在欧洲,已经启动了好几个分组交换网络项目,INWG的任务就是找到一种方法,把ARPANET与那几种不同类型的网络“连成一气”,从而形成一个国际性的网络。INWG的主席由Vint Cerf担任。

Cerf 和Kahn进行了翻来覆去的沟通,以缓解两人在联网方案上的争执。两位前辈提出的方案是,把ARPANET与分组广播网络及卫星网络(SATNET)互连,因上面提到的每一个网络使用的协议和接口都各不相同,故需根据特定的网络需求进行优化。

1973年初,Cerf提议,应在以上三个网络之间部署路由机(routing computer),来实施互连,他同时把路由机命名为“网关”(gateway)。网关能“理解”其所连接的每个网络的运作机制,以及每个网络内所运行的协议;只要在网关上针对每个直连网络配备了正确的接口,开启了相关运作机制,且能行使数据包的封装和解封装操作,那么数据包就能够在不同的网络间自由流动了。

可是,在联网方案上仍然存在争议。ARPANET是按高可靠性级别来设计的,NCP的运作便依赖于此。就可靠性而言,分组广播链路及卫星链路根本就达不到ARPANET的级别。协议的寻址(addressing)能力,则是另外一个问题。运行NCP的主机只能向下一跳节点寻址,其编址方式类似于现代的MAC地址,不具备大范围内的寻址功能,更别提在全球范围内寻址了。此外,每种网络所能传输的数据包的长度都有上限值,若要在不同类型的网络间传输数据包,就有必要调整数据包的长度。因此,Kahn着手开发了一种新的主机到主机协议,该协议除能具备全球范围内的寻址能力之外,还兼具丢包恢复、数据包的分片和重组、端到端的校验和计算,以及主机间的流量控制等功能。他请Cerf(此时,Cerf已晋升为斯坦福大学的教授了)来帮他完成协议的设计,理由再简单不过——Cerf拥有NCP的设计经验。于是,Cerf在斯坦福大学组织了一系列的研讨会(与会者包括学生和访问学者),来参与讨论他本人以及Kahn的构思,或对他们的构思“挑刺”。

1973年9月,在英国苏赛克斯大学INWG的一次会议上,Cerf和Kahn向人们展示了新协议的第一个版本3。二位前辈将该协议称为传输控制协议(TCP)。

在接下来的5年里,该协议又经过了4次修改,修改内容包括:新增了三次握手特性;将地址长度从最初提出的24位扩充到了32位。术语“数据报”(datagram)就是在协议修改期间流传开来的。

经过修改的新协议于1977年7月首次公开展示。一辆行使在旧金山Bayshore高速公路上的面包车接入了一个分组无线系统,该系统则通过一台网关连接到了ARPANET。ARPANET又借助于另一台网关,并分别通过人造卫星链路和陆上线路,连接到了大洋彼岸的挪威和伦敦大学学院(the University College London)。就这样,数据包又从另一条SATNET链路,穿越大西洋,折回了接入ARPANET的南加州大学信息研究院。Cerf是这样描述的:“由于我们所做的一切都是由国防部来买单,因此大家都希望在这次展示中体现出其军事用途来。于是,我们让数据包的往返距离达到了94000英里,这远不止ARPANET所能企及的那区区800英里。这次展示大获成功!”

1977年8月,Jon Postel在一篇文章中写道:“我们在internet协议的设计上违背了网络分层原理,以至于铸成大错。说具体点,就是我们试图让TCP来行使两项功能:既要让其作为端到端的主机层协议,也要使之成为Internet封包及路由协议(Internet packaging and routing protocol)。然而,以上两项功能应该是以层次化、模块化的方式来实现4。”Postel建议把TCP的逐跳(hop-by-hop)功能“转移”进另外一种名叫IP(Internet Protocol)的协议。在同一篇文章中,他提出了如今为人们所熟知的IP包头的概念。随后,Cerf 和Postel撰写了一份“拆分”TCP功能的规范,这预示着TCP/IP的诞生5。紧接着,为满足启用尽力服务(best-effort service)时,对IP层直接访问的需求,Postel又定义了用户数据报协议(UDP)协议的规范。

1980年,美国军方将TCP/IP采纳为(军用计算机网络)联网的标准协议,并计划于1983年1月1日在ARPANET内启动从NCP到TCP/IP的“割接”。本次割接完成的非常顺利,这标志着互联网(Internet)的诞生和ARPANET的终结。

互联网是Gore(戈尔)发明的

最近,流传着一个与互联网有关的笑话:有人认为,互联网是美国副总统Gore发明的。故事起源于CNN晚间节目主持人Wolf Blitzer的一次采访。当时,Gore正在角逐民主党的总统候选人提名。Blitzer问Gore,选民为什么应该把票投给他,而不是Bill Bradley。以下文字摘录自Gore的回应:“互连网是我在美国国会任职期间牵头创建的。业已证明,由我牵头制定的一整套措施,不但对我国的经济增长和环境保护起到了重要作用,而且还大大改善了我国的教育体制6。”

Gore虽然措辞不当、口齿不清(他在说上面那段话时,使用的句式是“taking the initiative on initiatives”),但其想表达的意思却不难解读,那就是他作为国会议员和参议员,在处理一系列重要事务时,起到了带头人的作用。

记者们很快就抓住了Gore话中的把柄。他们纷纷指出,互联网在1969年就已经发明了(当然,这些人的话也不属实)。那时,Gore根本未在国会任职。Gore的一时失言,到了新闻媒体的嘴里,竟然演变成了:互联网是他发明的。一时间,各种丑角、各路政敌便开始不停地造谣生事,直到人们真的相信是Gore“发明”了互联网。到最后,连Gore都不得不拿这事儿来自我解嘲。

实话实说,Gore自20世纪70年代在相关立法方面的所付出努力,确实对创建人们所喜爱(或憎恨)的互联网的诞生帮助很大。共和党领袖Newt Gingrich是这样说的:“Gore在国会中所付出的卓有成效的努力,确保了人们能够享用到互联网7。”

Vint Cerf 和Bob Kahn也针对此事专门撰文:“在我们看来,Gore并不像某些人传言的那样,有意声称是他本人亲自‘发明’了互联网。此外,在我们的印象中,Gore担任参议员时,所提出的某些提案无疑对仍在不断发展中的互联网起到了极其重要的推动作用。实际上,在绝大多数人听说有互联网这回事儿之前,Gore就已经在探讨及推动互联网的发展了8。”例举了Gore对互联网的贡献之后,二位前辈总结道:“还没有什么公众人物在宏观上对互联网的发展壮大起到很明显的推动作用……单凭副总统先生早期对高速计算和高速通信技术的价值观,加之他一直以来在互联网对美国人民、对业界以及对其他国家人民具有潜在价值方面的言辞,他就值得人们的尊敬。”

《OSPF和IS-IS详解》一1.4 互联网的诞生相关推荐

  1. OSPF——DR及BDR详解

    目录 一.DR简介: 二.BDR简介: 三.OSPF邻居关系规律及缺点: (1). 邻居关系数量变化规律: (2).邻居关系过多缺点: 四.为什么选举DR和BDR: 五.解决方法:引入DR.BDR 解 ...

  2. OSPF邻居建立过程详解

    目录 OSPF的五种包: 1.Hello包 2.DBD包(database description) 3.LSR包(Link State Request) 4.LSU包(Link State Upda ...

  3. OSPF的LSA类型详解与特殊区域

    LSA---链路状态通告----ospf在不同网络环境下携带不同信息的载体 LSDB---链路状态数据库 SPF--最短路径优先算法 Type--LSA的类型,在ospfv2的版本,需要掌握6种LSA ...

  4. ospf接口认证配置详解

    实验目的:1.掌握ospf接口认证配置方法 实验拓扑: 步骤1:基本配置(接口配置+ospf配置)见http://t.csdn.cn/mugochttp://t.csdn.cn/mugoc步骤2:启用 ...

  5. 如何站在双11的肩膀上 详解阿里云企业级互联网架构

    摘要:2015天猫双11全球狂欢节以912.17亿元的答卷完美收官.双11当天14万笔/秒的交易创建峰值和8.6万笔/秒的支付峰值双双刷新了世界纪录,相比首届双11,订单创建峰值增长了350倍,支付峰 ...

  6. 线下 Meetup 预告|从原理到实战,详解 Database Plus 的互联网最佳实践

    ‍ ‍| 作者:Apache ShardingSphere | 责编:沈于蓝 | 编辑:胡欣元 9 月 3 日 Apache ShardingSphere 社区线下 Dev Meetup 正式启动,首 ...

  7. 西瓜书习题详解 机器学习能在互联网搜索的哪些环节起什么作用?

    看完了西瓜书的第一章,课后习题有这个问题.我先将这个问题定义为:机器学习在搜索引擎上的应用. 维基百科:搜索引擎(英语:Search Engine)是一种信息检索系统,旨在协助搜索存储在计算机系统中的 ...

  8. 【学习笔记】【计算机网络【总】】物理层;链路层;网络层;传输层;应用层;详解

    目录 框架 一.计算机网络 1. 层次结构设计 2. 现代互联网拓扑 3. 网络性能指标 二.物理层 三.数据链路层 2.最大传输单元MTU 3.以太网协议详解 四.网络层 - 链接 五.传输层 - ...

  9. IPv6技术详解:基本概念、应用现状、技术实践(上篇)

    本文来自微信技术架构部的原创技术分享. 1.前言 普及IPV6喊了多少年了,连苹果的APP上架App Store也早已强制IPV6的支持,然并卵,因为历史遗留问题,即使在IPV4地址如果饥荒的情况下, ...

  10. 搬砖:新一代基于UDP的低延时网络传输层协议——QUIC详解

    技术扫盲:新一代基于UDP的低延时网络传输层协议--QUIC详解 本文来自腾讯资深研发工程师罗成的技术分享,主要介绍 QUIC 协议产生的背景和核心特性等. 1.写在前面 如果你的 App,在不需要任 ...

最新文章

  1. Rational rose中实心菱形的画法
  2. CPython对象模型:整型
  3. [js高手之路] vue系列教程 - vue的事件绑定与方法(2)
  4. php输出json到表格,PHP中把数据库查询结果输出为json格式
  5. The Event System
  6. 原生的html组件,如何创建HTML5与原生UI组件混合的移动应用程序
  7. C# 调用 *.sql 文件
  8. Ext JS 4 升级指南
  9. 谈学习:合格的编程自学者必须知道的几点
  10. Python中如何获得数组或者列表按大小排序后元素的索引列表
  11. Kubernetes (federation)联邦机制介绍
  12. excel 直接查询企查查数据_EXCEL在多表中查询数据(函数中引用工作表的办法)...
  13. 运算放大器的偏置电流
  14. 【2022 年第十二届 MathorCup杯数学建模】D 题 移动通信网络站址规划和区域聚类问题 赛后总结、论文及代码
  15. ardupilot避障代码分析
  16. Excel如何给单元格加斜线
  17. 初识mac 之设置篇
  18. 2021-05-02 收心继续
  19. PyQt+moviepy音视频剪辑实战2:一个剪裁视频文件精华内容留存工具的实现
  20. html表格不随字数变化,设置table中的宽度不随文字改变让其固定

热门文章

  1. oracle判断时间是否同一天(过滤时分秒)
  2. XDOC合同填报解决方案
  3. 车载触摸显示屏的工作原理
  4. STM32F767 (基础)CubeMX参数设置之RCC
  5. PTA-c语言 水仙花数
  6. “佐藤可士和”的超整理术 整理真的可以让人愉悦
  7. 大神教你如何搭建自己的web speedtest站点
  8. 关于木马Autoit
  9. 关于CH340驱动安装的种种问题的最终稳妥解决办法
  10. win10 磁盘100%