跳到主要内容

7. 中继代理/服务器消息格式

  1. 中继代理/服务器消息格式

    中继代理与服务器交换消息, 以便在未连接到同一链路的客户端与服务器之间中继消息.

    消息头部和选项中的所有取值均采用网络字节序.

    选项以串行方式存储在 options 字段中, 选项之间没有填充. 选项是字节对齐的, 但不以其他任何方式对齐, 例如不在 2 字节或 4 字节边界上对齐.

    有两种中继代理消息, 它们共享以下格式:

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | msg-type | hop-count | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | link-address | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | | peer-address | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-| | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | . . . options (variable number and length) .... . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

    以下各节描述中继代理消息头部的使用.

7.1. Relay-forward 消息

下表定义了 Relay-forward 消息中各消息字段的使用:

  msg-type       RELAY-FORW

hop-count 已中继此消息的中继代理的数量.

link-address 一个全局或站点本地地址, 服务器将用它来识别客户端所在的链路.

peer-address 接收自其、待中继的消息的客户端或中继代理的地址.

options 必须 (MUST) 包含一条 "Relay Message 选项" (见 22.10 节);
可以 (MAY) 包含由中继代理添加的其他选项.

7.2. Relay-reply 消息

下表定义了 Relay-reply 消息中各消息字段的使用:

  msg-type       RELAY-REPL

hop-count 从 Relay-forward 消息复制而来

link-address 从 Relay-forward 消息复制而来

peer-address 从 Relay-forward 消息复制而来

options 必须 (MUST) 包含一条 "Relay Message 选项"; 见 22.10 节;
可以 (MAY) 包含其他选项