arpanet属于的交换网络 arpanet的五大特点( 二 )


BBN 在一份名为 BBN Report 1822的冗长文件中规定了 IMP-Host 协议 。随着 ARPANET 的发展,该文件多次被修订;我将在这里大致描述 IMP-Host 协议最初设计时的工作方式 。根据 BBN 的规则,主机可以将长度不超过 8095 位的消息传递给它们的 IMP,并且每条消息都有一个包含目标主机号和链路识别号的头部字段 。[3]IMP 将检查指定的主机号,然后尽职尽责地将消息转发到网络中 。当从远端主机接收到消息时,接收的 IMP 在将消息传递给本地主机之前会把目标主机号替换为源主机号 。实际上在 IMP 之间传递的内容并不是消息 —— IMP 将消息分解成更小的数据包以便通过网络传输 —— 但该细节对主机来说是不可见的 。
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)控制消息,主要供更高级别的协议使用 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: