主机所看到的网络
在继续讨论操作系统通信协议之前, 需要先给出一些定义。
主机 (HOST) 是网络中的一台计算机系统,
IMP (Interface Message Processor, 接口消息处理器) 是一台 Honeywell DDP-516 计算机, 它在某一站点最多连接四台主机 (HOST), 并让主机接入网络。最初四台主机网络的配置见图 1。IMP 构成一个存储转发通信网络。本文集中的一篇配套论文较详细地论述了 IMP。[3]
消息是一条长度小于 8096 位的比特流, 由主机交给 IMP, 以便传输给另一台主机。消息的前 32 位是首部。首部包含以下信息:
- (a) 主机
- (b) 消息类型
- (c) 标志
- (d) 链路号
当一条消息从主机传输到其 IMP 时, 首部的主机字段指明接收主机。当消息到达接收主机时, 主机字段指明发送主机。
本文只涉及两种消息类型。常规消息由主机生成, 发送给其 IMP 以传输到外部主机。另一种值得关注的消息类型是 RFNM (Request-for-Next-Message, 下一消息请求)。RFNM 将结合链路一起解释。
首部的标志字段控制此处不涉及的特殊情况。
链路号指明消息将经由发送主机与接收主机之间 256 条逻辑路径 (链路) 中的哪一条发送。每条链路都是单向的, 并由网络加以控制, 使得同一时刻至多只能在其上发送一条消息。这种控制借助 RFNM 消息实现。发送主机在某条特定链路上向接收主机发送一条消息之后, 在收到 RFNM 之前, 禁止在该同一链路上再发送另一条消息。RFNM 由与接收主机相连的 IMP 生成, 并在消息进入接收主机之后发回给发送主机。重要的是要记住, 每个方向上有 356 条链路, 而且网络不对这些链路施加任何相互关系的约束。
链路与 RFNM 机制的目的是防止单个用户使 IMP 或主机过载。这一目的隐含着一个假设: 用户不会利用多条链路来获得宽带, 而 HOST-HOST 协议在很大程度上与这一假设相配合。当然, 一个更基本的假设是: 网络的负载来自某些用户连续发送消息, 而不是许多用户同时发送单条消息。
为了界定消息的长度, 并便于字长不同的主机相互通信, 采用如下格式化过程。当主机准备输出一条消息时, 它先构造一个 32 位的首部。首部之后是一个二进制串, 称为标记, 它由任意数量的零后跟一个 1 组成。标记使发送主机能够将文本消息的开头与其字边界对齐。当一条消息的最后一位进入 IMP 后, IMP 与主机之间的硬件接口会追加一个 1, 再跟足够的零, 使消息长度成为 16 位的整数倍。这些追加的位称为填充。除标记和填充之外, 消息的正文不受任何限制。图 2 显示了一条由 24 位机器发送的典型消息。