arpanet的五大特点「必看:arpanet属于的交换网络」

小伙伴们大家好,今天赵家妤讲的文章是arpanet的五大特点,arpanet属于的交换网络,以及协议,主机,消息等等相关的各种干货,这些其实都是一些必备知识,只是有些时候我们没有遇到就没有去了解而已!

ARPANET 通过证明可以使用标准化协议连接完全不同的制造商的计算机,永远改变了计算。在我的 关于 ARPANET 的历史意义的文章中,我提到了其中的一些协议,但没有详细描述它们。所以我想仔细看看它们。也想看看那些早期协议的设计有多少保留到了我们今天使用的协议中。

ARPANET 协议像我们现代的互联网协议,是通过分层形式来组织的。[1]较高层协议运行在较低层协议之上。如今的 TCP/IP 套件有 5 层(物理层、链路层、网络层、传输层以及应用层),但是这个 ARPANET 仅有 3 层,也可能是 4 层,这取决于你怎样计算它们。

我将会解释每一层是如何工作的,但首先,你需要知道是谁在 ARPANET 中构建了些什么,你需要知道这一点才能理解为什么这些层是这样划分的。

一些简短的历史背景

ARPANET 由美国联邦政府资助,确切的说是位于美国国防部的高级研究计划局Advanced Research Projects Agency(因此被命名为 “ARPANET” )。美国政府并没有直接建设这个网络;而是,把这项工作外包给了位于波士顿的一家名为 “Bolt, Beranek, and Newman” 的咨询公司,通常更多时候被称为 BBN。

而 BBN 则承担了实现这个网络的大部分任务,但不是全部。BBN 所做的是设计和维护一种称为接口消息处理机Interface Message Processor(简称为 IMP) 的机器。这个 IMP 是一种定制的霍尼韦尔Honeywell小型机minicomputer,它们被分配给那些想要接入这个 ARPANET 的遍及全国各地的各个站点。它们充当通往 ARPANET 的网关,为每个站点提供多达四台主机的连接支持。它基本上是一台路由器。BBN 控制在 IMP 上运行的软件,把数据包从一个 IMP 转发到另一个 IMP ,但是该公司无法直接控制那些将要连接到 IMP 上并且成为 ARPANET 网络中实际主机的机器。

那些主机由网络中作为终端用户的计算机科学家们所控制。这些计算机科学家在全国各地的主机站负责编写软件,使主机之间能够相互通讯。而 IMP 赋予主机之间互相发送消息的能力,但是那并没有多大用处,除非主机之间能商定一种用于消息的格式。为了解决这个问题,一群杂七杂八的人员组成了网络工作组,其中有大部分是来自各个站点的研究生们,该组力求规定主机计算机使用的协议。

因此,如果你设想通过 ARPANET 进行一次成功的网络互动,(例如发送一封电子邮件),使这些互动成功的一些工程由一组人负责(BBN),然而其他的一些工程则由另一组人负责(网络工作组和在每个站点的工程师们)。这种组织和后勤方面的偶然性或许对推动采用分层的方法来管理 ARPANET 网络中的协议起到很大的作用,这反过来又影响了 TCP/IP 的分层方式。

好的,回到协议上来

arpanet的五大特点,arpanet属于的交换网络,协议,主机,消息

Host-IMP 消息头部格式,截至 1969。 图表来自 BBN Report 1763

链路号的取值范围为 0 到 255 ,它有两个作用。一是更高级别的协议可以利用它在网络上的任何两台主机之间建立多个通信信道,因为可以想象得到,在任何时刻都有可能存在多个本地用户与同一个目标主机进行通信的场景(换句话说,链路号允许在主机之间进行多路通信)。二是它也被用在 “Level 1” 层去控制主机之间发送的大量流量,以防止高性能计算机压制低性能计算机的情况出现。按照最初的设计,这个 IMP-Host 协议限制每台主机在某一时刻通过某条链路仅发送一条消息。一旦某台主机沿着某条链路发送了一条消息给远端主机后,在它沿着该链路发送下一条消息之前,必须等待接收一条来自远端的 IMP 的特别类型的消息,叫做 RFNM(请求下一条消息Request for Next Message)。后来为了提高性能,对该系统进行了修订,允许一台主机在给定的时刻传送多达 8 条消息给另一台主机。[4]

“Level 2” 层才是事情真正开始变得有趣的地方,因为这一层和在它上面的那一层由 BBN 和国防部全部留给学者们和网络工作组自己去研发。“Level 2” 层包括了 Host-Host 协议,这个协议最初在 RFC9 中草拟,并且在 RFC54 中首次正式规定。在 ARPANET 协议手册中有更易读的 Host-Host 协议的解释。

“Host-Host 协议” 管理主机之间如何创建和管理连接。“连接”是某个主机上的写套接字和另一个主机上的读套接字之间的一个单向的数据管道。“套接字socket” 的概念是在 “Level-1” 层的有限的链路设施(记住,链路号只能是那 256 个值中的一个)之上被引入的,是为了给程序提供寻址运行在远端主机上的特定进程的一种方式。“读套接字” 是用偶数表示的,而“写套接字”是用奇数表示的;套接字是 “读” 还是 “写” 被称为套接字的 “性别”。并没有类似于 TCP 协议那样的 “端口号” 机制,连接的打开、维持以及关闭操作是通过主机之间使用 “链路 0” 发送指定格式的 Host-Host 控制消息来实现的,这也是 “链路 0” 被保留的目的。一旦在 “链路 0” 上交换控制消息来建立起一个连接后,就可以使用接收端挑选的另一个链路号来发送进一步的数据消息。

Host-Host 控制消息一般通过 3 个字母的助记符来表示。当两个主机交换一条 STR(发送端到接收端sender-to-receiver)消息和一条配对的 RTS(接收端到发送端receiver-to-sender)消息后,就建立起了一条连接 —— 这些控制消息都被称为请求链接消息。链接能够被 CLS控制消息关闭。还有更多的控制信息能够改变从发送端到接收端发送消息的速率。从而再次需要确保较快的主机不会压制较慢的主机。在 “Level 1” 层上的协议提供了流量控制的功能,但对 “Level 2” 层来说显然是不够的;我怀疑这是因为从远端 IMP 接收到的 RFNM 只能保证远端 IMP 已经传送该消息到目标主机,而不能保证目标主机已经全部处理了该消息。还有 INR(接收端中断interrupt-by-receiver)、INS(发送端中断interrupt-by-sender)控制消息,主要供更高级别的协议使用。

更高级别的协议都位于 “Level 3”,这层是 ARPANET 的应用层。Telnet 协议,它提供到另一台主机的一个虚拟电传链接,其可能是这些协议中最重要的。但在这层中也有许多其他协议,例如用于传输文件的 FTP 协议和各种用于发送 Email 的协议实验。

在这一层中有一个不同于其他的协议:初始链接协议Initial Connection Protocol(ICP)。ICP 被认为是一个 “Level-3” 层协议,但实际上它是一种 “Level-2.5” 层协议,因为其他 “Level-3” 层协议都依赖它。之所以需要 ICP,是因为 “Level 2” 层的 Host-Host 协议提供的链接只是单向的,但大多数的应用需要一个双向(例如:全双工)的连接来做任何有趣的事情。要使得运行在某个主机上的客户端能够连接到另一个主机上的长期运行的服务进程,ICP 定义了两个步骤。第一步是建立一个从服务端到客户端的单向连接,通过使用服务端进程的众所周知的套接字号来实现。第二步服务端通过建立的这个连接发送一个新的套接字套接字号给客户端。到那时,那个存在的连接就会被丢弃,然后会打开另外两个新的连接,它们是基于传输的套接字号建立的“读”连接和基于传输的套接字号加 1 的“写”连接。这个小插曲是大多数事务的一个前提——比如它是建立 Telnet 链接的第一步。

以上是我们逐层攀登了 ARPANET 协议层次结构。你们可能一直期待我在某个时候提一下 “网络控制协议Network Control Protocol”(NCP) 。在我坐下来为这篇文章和上一篇文章做研究之前,我肯定认为 ARPANET 运行在一个叫 “NCP” 的协议之上。这个缩写有时用来指代整个 ARPANET 协议,这可能就是我为什么有这个想法的原因。举个例子,RFC801讨论了将 ARPANET 从 “NCP” 过渡到 “TCP” 的方式,这使 NCP 听起来像是一个相当于 TCP 的 ARPANET 协议。但是对于 ARPANET 来说,从来都没有一个叫 “网络控制协议” 的东西(即使大英百科全书是这样认为的),我怀疑人们错误地将 “NCP” 解释为 “网络控制协议Network Control Protocol” ,而实际上它代表的是 “网络控制程序Network Control Program” 。网络控制程序是一个运行在各个主机上的内核级别的程序,主要负责处理网络通信,等同于现如今操作系统中的 TCP/IP 协议栈。用在 RFC 801 的 “NCP” 是一种转喻,而不是协议。

与 TCP/IP 的比较

ARPANET 协议以后都会被 TCP/IP 协议替换(但 Telnet 和 FTP 协议除外,因为它们很容易就能在 TCP 上适配运行)。然而 ARPANET 协议都基于这么一个假设:就是网络是由一个单一实体(BBN)来构建和管理的。而 TCP/IP 协议套件是为网间网设计的,这是一个网络的网络,在那里一切都是不稳定的和不可靠的。这就导致了我们的现代协议套件和 ARPANET 协议有明显的不同,比如我们现在怎样区分网络层和传输层。在 ARPANET 中部分由 IMP 实现的类似传输层的功能现在完全由在网络边界的主机负责。

我发现 ARPANET 协议最有趣的事情是,现在在 TCP 中的许多传输层的功能是如何在 ARPANET 上经历了一个糟糕的青春期。我不是网络专家,因此我拿出大学时的网络课本(让我们跟着 Kurose 和 Ross 学习一下),他们对传输层通常负责什么给出了一个非常好的概述。总结一下他们的解释,一个传输层协议必须至少做到以下几点。这里的 “段segment” 基本等同于 ARPANET 上的术语 “消息message”:

  • 提供进程之间的传送服务,而不仅仅是主机之间的(传输层多路复用和多路分解)
  • 在每个段的基础上提供完整性检查(即确保传输过程中没有数据损坏)

像 TCP 那样,传输层也能够提供可靠的数据传输,这意味着:

  • “段” 是按顺序被传送的
  • 不会丢失任何 “段”
  • “段” 的传送速度不会太快以至于被接收端丢弃(流量控制)

似乎在 ARPANET 上关于如何进行多路复用和多路分解以便进程可以通信存在一些混淆 —— BBN 在 IMP-Host 层引入了链路号来做到这一点,但结果证明在 Host-Host 层上无论如何套接字号都是必要的。然后链路号只是用于 IMP-Host 级别的流量控制,但 BBN 似乎后来放弃了它,转而支持在唯一的主机对之间进行流量控制,这意味着链路号一开始是一个超载的东西,后来基本上变成了虚设。TCP 现在使用端口号代替,分别对每一个 TCP 连接单独进行流量控制。进程间的多路复用和多路分解完全在 TCP 内部进行,不会像 ARPANET 一样泄露到较低层去。

同样有趣的是,鉴于 Kurose 和 Ross 如何开发 TCP 背后的想法,ARPANET 一开始就采用了 Kurose 和 Ross 所说的一个严谨的 “停止并等待stop-and-wait” 方法,来实现 IMP-Host 层上的可靠的数据传输。这个 “停止并等待” 方法发送一个 “段” 然后就拒绝再去发送更多 “段” ,直到收到一个最近发送的 “段” 的确认为止。这是一种简单的方法,但这意味着只有一个 “段” 在整个网络中运行,从而导致协议非常缓慢 —— 这就是为什么 Kurose 和 Ross 将 “停止并等待” 仅仅作为在通往功能齐全的传输层协议的路上的垫脚石的原因。曾有一段时间 “停止并等待” 是 ARPANET 上的工作方式,因为在 IMPHost 层,必须接收到请求下一条消息Request for Next Message(RFNM)以响应每条发出的消息,然后才能发送任何进一步的消息。客观的说 ,BBN 起初认为这对于提供主机之间的流量控制是必要的,因此减速是故意的。正如我已经提到的,为了更好的性能,RFNM 的要求后来放宽松了,而且 IMP 也开始向消息中添加序列号和保持对传输中的消息的 “窗口” 的跟踪,这或多或少与如今 TCP 的实现如出一辙。[5]

因此,ARPANET 表明,如果你能让每个人都遵守一些基本规则,异构计算系统之间的通信是可能的。正如我先前所说的,这是 ARPANET 的最重要的遗产。但是,我希望对这些基线规则的仔细研究揭示了 ARPANET 协议对我们今天使用的协议有多大影响。在主机和 IMP 之间分担传输层职责的方式上肯定有很多笨拙之处,有时候是冗余的。现在回想起来真的很可笑,主机之间一开始只能通过给出的任意链路在某刻只发送一条消息。但是 ARPANET 实验是一个独特的机会,可以通过实际构建和操作网络来学习这些经验,当到了是时候升级到我们今天所知的互联网时,似乎这些经验变得很有用。

如果你喜欢这篇贴子,更喜欢每四周发布一次的方式!那么在 Twitter 上关注 @TwoBitHistory或者订阅RSS 提要,以确保你知道新帖子的发布时间。

  1. 协议分层是网络工作组发明的。这个论点是在 RFC 871中提出的。分层也是 BBN 如何在主机和 IMP 之间划分职责的自然延伸,因此 BBN 也值得称赞。↩︎
  2. “level” 是被网络工作组使用的术语。 详见 RFC 100↩︎
  3. 在 IMP-Host 协议的后续版本中,扩展了头部字段,并且将链路号升级为消息 ID。但是 Host-Host 协议仅仅继续使用消息 ID 字段的高位 8 位,并将其视为链路号。请参阅 ARPANET 协议手册的 “Host-Host” 协议部分。↩︎
  4. John M. McQuillan 和 David C. Walden。 “ARPA 网络设计决策”,第 284页,https://www.walden-family.com/public/whole-paper.pdf。 2021 年 3 月 8 日查看。↩︎
  5. 同上。 ↩︎

这篇文章的所有内容就到这里了,希望能帮到各位朋友,仔细阅读完arpanet的五大特点「必看:arpanet属于的交换网络」这篇文章,如果感觉还不错的话!点个赞吧!赠人玫瑰有留余香!

本文发布者:万事通,不代表寂寞网立场,转载请注明出处:https://www.jimowang.com/p/16889.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 jimowangmail@126.com 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年11月20日 09:52
下一篇 2022年11月20日 09:54

相关推荐

  • 2023年315会曝光什么_2023年315晚会主题发布

    小伙伴们你们好,今天王蕴涵来给大家讲讲2023年315会曝光什么,2023年315晚会主题发布,以及主题,消费者,晚会,企业,消协相关的最新实用干货和分享技巧,初学者往往会遇到很多困难,但只要你坚持下去,你一定能够克服这些困难。 每一年的315都是维护消费者权益的日子,在315当天有许多产品都会被打假,那么2023年315会曝光什么呢?2023年315晚会主…

    2023年4月29日
  • iPhone15若限充电速度或违反欧盟法律

    各位小伙伴们,大家好啊,今天钱均泽想和你们聊聊iPhone15若限充电速度或违反欧盟法律这个话题,还有速度,法律,苹果,接口,数据传输的一系列实用干货和技巧分享,如果你刚刚开始学习这个领域,那么这篇文章将会给你带来很大的帮助。 iPhone15在未发行之前就已经受到了果粉们的关注,在去年发布的14里,新增了灵动岛,而iPhone15据悉若限充电速度或违反欧盟…

    2023年4月1日
  • toread冲锋衣价格「附:探路者旗舰店官网专卖店」

    大家好,今天陈佩晞精心为你准备了干货toread冲锋衣价格,探路者旗舰店官网专卖店,以及关于做工,里面,衣服的一系列相关内容,既然来了就别走了,好好的静下心把这篇文章阅读完相信你会有一定的收获哦! 探路者冲锋衣是口碑好的服饰,那么探路者冲锋衣多少钱呢?下面陈佩晞给大家讲讲探路者冲锋衣正品价格是多少。 探路者冲锋衣多少钱 探路者的冲锋衣价格一般都是在600到1…

    2022年11月28日
  • 东坡肉的来历20字「详细介绍:东坡肉的来历」

    美好的1天将要从这里开始啦!今天笔者杨钧来说说东坡肉的来历20字,东坡肉的来历,以及关于猪肉,来历,羊肉,餐桌,皇家这些的相关干货,认认真真阅读完,若能把我想表达的全部理解,相信你已经离大牛不远了哈! 作者:我们的特邀作者朱颖·岳江 博大精深的中华文明,产生一种独特的语言。 比如含义直观清晰的象形文字\”家\”,它是由一个宝藏盖和一个…

    2023年2月16日 自媒体
  • 2023年厄尔尼诺现象发生概率 必看:2023年厄尔尼诺还是拉尼娜

    大家好,今天杨栋为大家准备了一些关于2023年厄尔尼诺现象发生概率,2023年厄尔尼诺还是拉尼娜的知识点,还有关于现象,发生,概率,全球,可能会等一系列实用干货和最新资讯分享,每个人都有学习的机会,只要你努力,认真学习,你就一定能够掌握这些技巧。 2023年到来之后,大家都很担心今年又会发生厄尔尼诺现象,那么2023年厄尔尼诺现象发生的概率大不大呢?下面大家…

    2023年5月16日
  • 加了晚霞滤镜的喀英德库什台有多美 – 视频

    大家好,我是观察员冯锦丽,近期关注到了一些重要的事件,最近有关加了晚霞滤镜的喀英德库什台有多美的报道和讨论不断,吸引了众多网民的目光。现在,让我们一同来了解一下这个事件的实情,看看发生了什么事情! 原标题:加了晚霞滤镜的喀英德库什台有多美 1月9日,新疆伊犁。白天的喀英德库什台气势磅礴,莽莽雪原如同一幅大气恢弘的画卷徐徐展开。到了傍晚,橙红、金橘的晚霞铺满整…

    自媒体 2024年1月11日