III 控制命令
命令汇总
0 <NOP>
1 <RFC> <me> <you> or <RFC> <me> <you> <link>
2 <CLS> <me> <you>
3 <RSM> <link>
4 <SPD> <link>
5 <FND> <me> <you> <asker>
6 <END> <link> <end>
7 <RDY> <link>
8 <ASG> <me> <you> <link>
命令
无操作
形式:
-
NOP
-
NOP 是 X'00'
用途:
包含这条命令是为了完整性和便利。
连接请求
形式:
-
<RFC> <my socket> <your socket>或<RFC> <my socket> <your socket> <link> -
<RFC>是 X'01' -
<my socket>是发送方本地的 32 位套接字号 -
<your socket>是接收方本地的 32 位套接字号 -
<link>是一个 8 位链路号。 -
<my socket>与<your socket>必须构成一个发送/接收对。 -
当且仅当
<my socket>是接收套接字时才包含<link>。
用途:
这条命令用于发起一条连接。当两台主机交换了参数相同(顺序相反)的 RFC 命令后, 连接即告建立。链路由接收方分配。
关闭
形式:
-
<CLS> <my socket> <your socket> -
<CLS>是 X'02' -
<my socket>和<your socket>与<RFC>中的相同
用途:
这条命令用于阻塞一条连接。它也可用于中止连接的建立或拒绝一个请求。可能发生的情况是, 所指名的套接字之间并未建立连接, 或正处于建立过程中。在这种情况下, 应当丢弃该 <CLS>。
恢复
形式:
-
<RSM> <link> -
<RSM>是 X'03'
用途:
这条命令由接收主机发送, 以使发送主机在指定链路上恢复传输。发送主机如果收到针对某条消息的特殊 RFNM, 就会暂停发送。(特殊 RFNM 由接收方 IMP 应其主机请求而生成。)
已暂停
形式:
-
<SPD> <link> -
<SPD>是 X'04'
用途:
这条命令由发送主机发送, 以确认它已停止在指定链路上的发送。如果收到 <RSM> 命令, 传输将会恢复。
最终结束
形式:
-
<FND> <my socket> <your socket> <asker> -
<FND>是 X'05' -
<my socket>是发送方本地某个套接字的 32 位套接字号 -
<your socket>是接收方本地某个套接字的 32 位套接字号 -
<my socket>和<your socket>构成一个发送/接收对。它们之间应当建立一条连接。 -
<asker>是与<my socket>同类型的 40 位套接字号
用途:
如果一个进程决定把它的一个接收套接字连接到它的一个发送套接字, 从而将自身短路, 那么 NCP 会发出两条 <FND> 命令 —— 每个方向一条。每一条中的 <asker> 都初始化为 <my socket>。
收到 <FND> 命令后, NCP 检查其中的 <your socket>。如果 <your socket> 已参与一次重连接, 则该命令会以新的 <my socket> 和 <your socket> 继续传递。不过, 在继续传递之前, 会把 <asker> 与新的 <my socket> 相比较。如果二者相等, 则检测到环路, 两个套接字都会被关闭。
如果 <your socket> 未参与重连接, 则把它标记为一条重连接链的端点, 并回送一条 <END>。
如果所指名的连接不在进行中, 则回送一条 <CLS>, 并丢弃该 <FND>。
发现端点
形式:
-
<END> <link> <end socket> -
<END>是 X'06' -
<link>是一条 8 位链路 -
<end socket>是一个 40 位套接字
用途:
这条命令指明哪个套接字位于一条重连接链的末端。它在 <end socket> 处生成, 并经由所有中间套接字回传到另一端的终端套接字。如果 <end socket> 是发送套接字, 则 <link> 指的是这样一条连接:发送套接字位于发送主机, 接收套接字位于接收主机。如果 <end socket> 是接收套接字, 则 <link> 指的是这样一条连接:发送套接字位于接收主机, 接收套接字位于发送主机。(“发送”和“接收”指的是这条控制命令的传输。)
就绪
形式:
-
<RDY> <link> -
<RDY>是 X'07' -
<link>是一个 8 位链路号
用途:
这条命令从发送套接字发往接收套接字, 以表明所有消息都已转发完毕, 可以进行重连接。
分配新链路
形式:
-
<ASG> <my socket> <your socket> <link> -
<ASG>是 X'08'
用途:
这条命令完成一次重连接。它在接收套接字收到 <RDY> 之后, 由接收套接字发往发送套接字。随后分配一条新链路, 传输随之开始。
注: 本 RFC 由 Marc Blanchett 于 3/00 转为机器可读形式, 以便录入在线 RFC 档案库。