跳到主要内容

2. 链路的操纵

2a. 控制链路​

2a1. 控制链路在系统加载时建立。​

2a2. 控制链路的状态可以是活动 (active) 或非活动 (inactive)​

2a2a. 控制链路的状态应反映 HOST 之间的关系。​

2b. 主链路​

2b1. 主链路由用户或执行程序对监控程序的调用建立​

2b1a. 调用中必须包含要链接到的 HOST 的网络标识号​

2b1b. 尝试与某一特定 HOST 建立多于一条主链路将被视为错误, 该请求将被默认处理​

2b1c. 标准传输字符集​

2b1c1. 将有一个标准字符集, 用于在主链路和控制链路上传输数据。​
2b1c1a. 这将是完整的 (8 位) ASCII。​

2b1d. (获取链路) 从 HOST A 建立到 HOST B 的链路的协议如下​

2b1d1. A 从其分配表中选择一条当前未使用的到 HOST B 的链路​
2b1d2. A 通过链路 0 向 B 发送一条链路连接报文。​
2b1d3. A 然后等待:​
2b1d3a. 来自 B 的关于该链路的通信​
2b1d3b. 经过一定量的时间​
2b1d4. 如果从 B 收到关于该链路的通信, 则对它进行检查, 看它是否为:​
2b1d4a. 来自 B 的对该链路的验证。​
2b1d4a1. 这导致监控程序向请求方成功返回。链路号被返回给请求方, 链路即建立。​
2b1d4b. 来自 B 的建立该链路的请求。这意味着: B 正独立于 A 尝试建立与 A 相同的链路。​
2b1d4b1. 如果 A 的网络 ID 号 (Na) 大于 B 的 (Nb), 则 A 忽略该请求, 并继续等待来自 B 的链路确认。​
2b1d4b2. 反之, 如果 Na<Nb, 则 A:​
2b1d4b2a. 遵从来自 B 的建立该链路的请求,​
2b1d4b2b. 按要求发送验证,​
2b1d4b2c. 中止自己的请求, 并重复分配过程。​
2b1d4c. 来自 B 的关于该链路的某种其他通信。​
2b1d4c1. 这是一种错误状况, 意味着以下之一:​
2b1d4c1a. A 出现故障, 选择了一条先前已分配的链路用于分配,​
2b1d4c1b. B 正在一条未分配的链路上传输信息,​
2b1d4c1c. 或者从 B 到 A 的关于分配的报文在传输中被损坏。​
2b1d4c2. 在这种情况下, A 的动作是:​
2b1d4c2a. 就所尝试的连接向 B 发送一条链路断开报文​
2b1d4c2b. 将 HOST B 的状态视为错误, 并启动进入紧急例程 (error)。​
2b1d5. 如果在规定时间内没有从 B 收到关于该链路的通信, 则 HOST B 被视为处于错误状态。​
2b1d5a. A 向 B 发送一条链路断开报文。​
2b1d5b. 调用紧急例程 (error)。​

2c. 辅助链路​

2c1. 辅助链路由用户程序对监控程序的调用建立。​

2c1a. 请求必须向监控程序指明关于所需链路的有关数据​

2c1a1. 到 B 的主链路的编号。​

2c1b. 对辅助链路的请求必须由每个 HOST (A 和 B) 中的用户程序发出。​

2c1d. 如果 Na<Nb, 则 A 等待:​

2c1d1. HOST B 建立该链路 (在查看 B 是否已建立相应链路之后)。​
2c1d2. 经过一段指定的时间。​
2c1d2a. 这意味着 HOST B 没有响应 HOST A 的请求。​
2c1d2b. HOST A 和 B 中的程序应能够指定等待超时的时间量。​