Skip to main content

2. 控制连接协议规范 (Control Connection Protocol Specification)

控制连接消息用于建立和清除用户会话。第一组控制连接消息用于维护控制连接本身。控制连接由PNS或PAC在建立底层TCP连接后发起。确定建立哪些TCP连接所需的过程和配置信息不在本协议的覆盖范围内。

以下所有控制连接消息都作为用户数据在给定PNS-PAC对之间建立的TCP连接上发送。请注意, 已注意确保所有字 (2个八位字节) 和长字 (4个八位字节) 值都从适当的边界开始。所有数据都以网络顺序 (高位八位字节在前) 发送。任何"保留"字段必须 (MUST) 作为0值发送以允许协议可扩展性。

2.1. Start-Control-Connection-Request

Start-Control-Connection-Request是用于在PNS和PAC之间建立控制连接的PPTP控制消息。每个PNS-PAC对都需要建立专用的控制连接。在发出任何其他PPTP消息之前, 必须建立控制连接。控制连接的建立可以由PNS或PAC发起。第3.1.3节描述了处理PNS和PAC的Start-Control-Connection-Requests冲突发生的过程。

    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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | PPTP Message Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Magic Cookie |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Control Message Type | Reserved0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Protocol Version | Reserved1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Framing Capabilities |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Bearer Capabilities |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Maximum Channels | Firmware Revision |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Host Name (64 octets) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Vendor String (64 octets) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Length (长度): 此PPTP消息的总长度 (以八位字节为单位), 包括整个PPTP头部。

PPTP Message Type (PPTP消息类型): 1表示控制消息。

Magic Cookie (魔法Cookie): 0x1A2B3C4D。此常量值用作对接收到的消息的完整性检查 (见第1.4节)。

Control Message Type (控制消息类型): 1表示Start-Control-Connection-Request。

Reserved0 (保留0): 此字段必须 (MUST) 为0。

Protocol Version (协议版本): 发送方希望使用的PPTP协议版本。

Reserved1 (保留1): 此字段必须 (MUST) 为0。

Framing Capabilities (成帧能力): 指示此消息发送方可以提供的成帧类型的位集合。当前定义的位设置为:

  • 1 - 支持异步成帧 (Asynchronous Framing supported)
  • 2 - 支持同步成帧 (Synchronous Framing supported)

Bearer Capabilities (承载能力): 指示此消息发送方可以提供的承载能力的位集合。当前定义的位设置为:

  • 1 - 支持模拟接入 (Analog access supported)
  • 2 - 支持数字接入 (Digital access supported)

Maximum Channels (最大信道数): 此PAC可以支持的单个PPP会话的总数。在PNS发出的Start-Control-Connection-Requests中, 此值应当 (SHOULD) 设置为0。PAC必须 (MUST) 忽略它。

Firmware Revision (固件修订版): 当由PAC发出时, 此字段包含发出PAC的固件修订号, 或者当由PNS发出时包含PNS PPTP驱动程序的版本。

Host Name (主机名): 包含发出PAC或PNS的DNS名称的64个八位字节字段。如果长度小于64个八位字节, 此字段的其余部分应当 (SHOULD) 填充值为0的八位字节。

Vendor Name (供应商名称): 包含供应商特定字符串的64个八位字节字段, 描述正在使用的PAC类型, 或者如果此请求由PNS发出, 则描述正在使用的PNS软件类型。如果长度小于64个八位字节, 此字段的其余部分应当 (SHOULD) 填充值为0的八位字节。

2.2. Start-Control-Connection-Reply

Start-Control-Connection-Reply是响应接收到的Start-Control-Connection-Request消息而发送的PPTP控制消息。此消息包含指示控制连接建立尝试结果的结果代码。

    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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | PPTP Message Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Magic Cookie |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Control Message Type | Reserved0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Protocol Version | Result Code | Error Code |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Framing Capability |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Bearer Capability |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Maximum Channels | Firmware Revision |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Host Name (64 octets) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Vendor String (64 octets) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Length (长度): 此PPTP消息的总长度 (以八位字节为单位), 包括整个PPTP头部。

PPTP Message Type (PPTP消息类型): 1表示控制消息。

Magic Cookie (魔法Cookie): 0x1A2B3C4D。

Control Message Type (控制消息类型): 2表示Start-Control-Connection-Reply。

Reserved0 (保留0): 此字段必须 (MUST) 为0。

Protocol Version (协议版本): 发送方希望使用的PPTP协议版本。

Result Code (结果代码): 指示命令信道建立尝试的结果。当前有效的结果代码值为:

  • 1 - 成功建立信道 (Successful channel establishment)
  • 2 - 一般错误 (General error) - 错误代码指示问题
  • 3 - 命令信道已存在 (Command channel already exists)
  • 4 - 请求方未被授权建立命令信道 (Requester is not authorized to establish a command channel)
  • 5 - 不支持请求方的协议版本 (The protocol version of the requester is not supported)

Error Code (错误代码): 除非存在"一般错误", 否则此字段设置为0, 在这种情况下, 结果代码设置为2, 并且此字段设置为与第2.2节中指定的一般错误条件相对应的值。

Framing Capabilities (成帧能力): 指示此消息发送方可以提供的成帧类型的位集合。当前定义的位设置为:

  • 1 - 支持异步成帧 (Asynchronous Framing supported)
  • 2 - 支持同步成帧 (Synchronous Framing supported)

Bearer Capabilities (承载能力): 指示此消息发送方可以提供的承载能力的位集合。当前定义的位设置为:

  • 1 - 支持模拟接入 (Analog access supported)
  • 2 - 支持数字接入 (Digital access supported)

Maximum Channels (最大信道数): 此PAC可以支持的单个PPP会话的总数。在PNS发出的Start-Control-Connection-Reply中, 此值应当 (SHOULD) 设置为0, 并且PAC必须 (MUST) 忽略它。PNS不得 (MUST NOT) 使用此值来尝试跟踪PAC将允许的剩余PPP会话数。

Firmware Revision (固件修订版): 此字段包含发出PAC的固件修订号, 或者如果由PNS发出, 则包含PNS PPTP驱动程序的版本。

Host Name (主机名): 包含发出PAC或PNS的DNS名称的64个八位字节字段。如果长度小于64个八位字节, 此字段的其余部分应当 (SHOULD) 填充值为0的八位字节。

Vendor Name (供应商名称): 包含供应商特定字符串的64个八位字节字段, 描述正在使用的PAC类型, 或者如果此请求由PNS发出, 则描述正在使用的PNS软件。如果长度小于64个八位字节, 此字段的其余部分应当 (SHOULD) 填充值为0的八位字节。

2.3. Stop-Control-Connection-Request

Stop-Control-Connection-Request是PAC-PNS控制连接的一个对等方发送给另一个对等方的PPTP控制消息, 通知另一个对等方应关闭控制连接。除了关闭控制连接之外, 所有活动的用户呼叫都隐式清除。发出此请求的原因在Reason字段中指示。

    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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | PPTP Message Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Magic Cookie |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Control Message Type | Reserved0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reason | Reserved1 | Reserved2 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Length (长度): 此PPTP消息的总长度 (以八位字节为单位), 包括整个PPTP头部。

PPTP Message Type (PPTP消息类型): 1表示控制消息。

Magic Cookie (魔法Cookie): 0x1A2B3C4D。

Control Message Type (控制消息类型): 3表示Stop-Control-Connection-Request。

Reserved0 (保留0): 此字段必须 (MUST) 为0。

Reason (原因): 指示控制连接关闭的原因。当前有效的原因值为:

  • 1 (None) - 清除控制连接的一般请求 (General request to clear control connection)
  • 2 (Stop-Protocol) - 不能支持对等方的协议版本 (Can't support peer's version of the protocol)
  • 3 (Stop-Local-Shutdown) - 请求方正在关闭 (Requester is being shut down)

Reserved1, Reserved2 (保留1, 保留2): 这些字段必须 (MUST) 为0。

2.4. Stop-Control-Connection-Reply

Stop-Control-Connection-Reply是PAC-PNS控制连接的一个对等方在收到另一个对等方的Stop-Control-Connection-Request后发送的PPTP控制消息。

    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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | PPTP Message Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Magic Cookie |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Control Message Type | Reserved0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Result Code | Error Code | Reserved1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Length (长度): 此PPTP消息的总长度 (以八位字节为单位), 包括整个PPTP头部。

PPTP Message Type (PPTP消息类型): 1表示控制消息。

Magic Cookie (魔法Cookie): 0x1A2B3C4D。

Control Message Type (控制消息类型): 4表示Stop-Control-Connection-Reply。

Reserved0 (保留0): 此字段必须 (MUST) 为0。

Result Code (结果代码): 指示关闭控制连接尝试的结果。当前有效的结果代码值为:

  • 1 (OK) - 控制连接已关闭 (Control connection closed)
  • 2 (General Error) - 由于错误代码中指示的原因, 控制连接未关闭 (Control connection not closed for reason indicated in Error Code)

Error Code (错误代码): 除非存在"一般错误", 否则此字段设置为0, 在这种情况下, 结果代码设置为2, 并且此字段设置为与第2.2节中指定的一般错误条件相对应的值。

Reserved1 (保留1): 此字段必须 (MUST) 为0。

2.5. Echo-Request

Echo-Request是PAC-PNS控制连接的任一对等方发送的PPTP控制消息。此控制消息用作控制连接的"保活"。接收对等方对收到的每个Echo-Request发出Echo-Reply。如第3.1.4节所述, 如果发送方未收到对Echo-Request的Echo-Reply, 它最终将清除控制连接。

    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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | PPTP Message Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Magic Cookie |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Control Message Type | Reserved0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Length (长度): 此PPTP消息的总长度 (以八位字节为单位), 包括整个PPTP头部。

PPTP Message Type (PPTP消息类型): 1表示控制消息。

Magic Cookie (魔法Cookie): 0x1A2B3C4D。

Control Message Type (控制消息类型): 5表示Echo-Request。

Reserved0 (保留0): 此字段必须 (MUST) 为0。

Identifier (标识符): Echo-Request发送方设置的值, 用于将回复与相应的请求匹配。

2.6. Echo-Reply

Echo-Reply是PAC-PNS控制连接的任一对等方响应收到的Echo-Request而发送的PPTP控制消息。

    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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Length | PPTP Message Type |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Magic Cookie |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Control Message Type | Reserved0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Result Code | Error Code | Reserved1 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Length (长度): 此PPTP消息的总长度 (以八位字节为单位), 包括整个PPTP头部。

PPTP Message Type (PPTP消息类型): 1表示控制消息。

Magic Cookie (魔法Cookie): 0x1A2B3C4D。

Control Message Type (控制消息类型): 6表示Echo-Reply。

Reserved0 (保留0): 此字段必须 (MUST) 为0。

Identifier (标识符): 接收到的Echo-Request的标识字段的内容被复制到此字段。

Result Code (结果代码): 指示接收Echo-Request的结果。当前有效的结果代码值为:

  • 1 (OK) - Echo-Reply有效 (The Echo-Reply is valid)
  • 2 (General Error) - 由于错误代码中指示的原因, Echo-Request未被接受 (Echo-Request not accepted for the reason indicated in Error Code)

Error Code (错误代码): 除非存在"一般错误"条件, 否则此字段设置为0, 在这种情况下, 结果代码设置为2, 并且此字段设置为与第2.2节中指定的一般错误条件相对应的值。

Reserved1 (保留1): 此字段必须 (MUST) 为0。

2.7. Outgoing-Call-Request

Outgoing-Call-Request是PNS发送到PAC的PPTP控制消息, 指示要建立来自PAC的出站呼叫。此请求向PAC提供拨打呼叫所需的信息。它还向PAC提供信息, 一旦建立会话, 该信息用于调节向PNS传输此会话数据的速率。

(由于字数限制,此部分及后续部分省略详细格式图,但保留完整字段说明)

Call ID (呼叫ID): PNS分配给此会话的唯一标识符, 对于特定PAC-PNS对是唯一的。它用于对通过PNS和PAC之间的隧道发送的数据进行复用和解复用。

Call Serial Number (呼叫序列号): PNS为此会话分配的标识符, 用于在记录的会话信息中标识此特定会话。与呼叫ID不同, PNS和PAC都将相同的呼叫序列号与给定会话关联。IP地址和呼叫序列号的组合应当 (SHOULD) 是唯一的。

Minimum BPS (最小BPS): 此会话可接受的最低线速度 (以位/秒为单位)。

Maximum BPS (最大BPS): 此会话可接受的最高线速度 (以位/秒为单位)。

Bearer Type (承载类型): 指示此出站呼叫所需的承载能力的值。当前定义的值为:

  • 1 - 在模拟信道上拨打呼叫 (Call to be placed on an analog channel)
  • 2 - 在数字信道上拨打呼叫 (Call to be placed on a digital channel)
  • 3 - 可以在任何类型的信道上拨打呼叫 (Call can be placed on any type of channel)

Framing Type (成帧类型): 指示此出站呼叫要使用的PPP成帧类型的值。

  • 1 - 使用异步成帧的呼叫 (Call to use Asynchronous framing)
  • 2 - 使用同步成帧的呼叫 (Call to use Synchronous framing)
  • 3 - 可以使用任一类型的成帧的呼叫 (Call can use either type of framing)

Packet Recv. Window Size (数据包接收窗口大小): PNS将为此会话缓冲的接收数据包数。

Packet Processing Delay (数据包处理延迟): 从PNS发送到PAC的数据可能施加的数据包处理延迟的度量。此值以1/10秒为单位指定。

Phone Number Length (电话号码长度): 下一个字段中拨号方电话号码的实际长度 (以八位字节为单位)。

Reserved1 (保留1): 此字段必须 (MUST) 为0。

Phone Number (电话号码): 此字段是包含要拨打的电话号码的64个八位字节字段的变长。电话号码可以是二进制编码的 (与ISDN控制信令一起使用) 或ASCII编码的 (与PSTN调制解调器一起使用) 当与PAC关联的物理介质需要时。此字段的ASCII编码值由可打印的数字字符、空格字符和连字符符号 ('-') 组成。如果长度小于64个八位字节, 此字段的其余部分应当 (SHOULD) 填充值为0的八位字节。

Subaddress (子地址): 包含要拨打的子地址的64个八位字节字段。如果长度小于64个八位字节, 此字段的其余部分应当 (SHOULD) 填充值为0的八位字节。

2.8. Outgoing-Call-Reply

Outgoing-Call-Reply是PAC发送到PNS的PPTP控制消息, 响应接收到的Outgoing-Call-Request消息。Outgoing-Call-Reply消息指示发起呼叫的尝试的结果。它还向PNS提供信息, 该信息用于调节此会话的数据从PNS到PAC的传输速率。

关键字段包括:

  • Call ID: PAC分配给此会话的呼叫ID
  • Peer's Call ID: 从Outgoing-Call-Request接收到的呼叫ID的值
  • Result Code: 指示呼叫尝试的结果
  • Connect Speed: 使用的实际连接速度 (以位/秒为单位)
  • Packet Recv. Window Size: PAC将为此会话缓冲的接收数据包数
  • Packet Processing Delay: 从PAC发送到PNS的数据可能施加的数据包处理延迟
  • Framing Type: 此呼叫使用的PPP成帧类型

2.9. Incoming-Call-Request

Incoming-Call-Request是PAC发送到PNS的PPTP控制消息, 指示检测到入站呼叫。它向PNS提供有关呼叫的参数信息, 允许PNS确定是否接受呼叫。

2.10. Incoming-Call-Reply

Incoming-Call-Reply是PNS发送到PAC的PPTP控制消息, 响应接收到的Incoming-Call-Request消息。它指示PNS是否接受入站呼叫以及呼叫应如何连接。

2.11. Incoming-Call-Connected

Incoming-Call-Connected是PAC发送到PNS的PPTP控制消息, 作为入站呼叫连接过程的最后阶段。它向PNS提供有关呼叫连接方式的信息, 特别是传输速度、成帧和窗口大小。

2.12. Call-Clear-Request

Call-Clear-Request是PNS发送到PAC的PPTP控制消息, 指示应断开特定呼叫。被清除的呼叫可以是处于任何状态的呼入或呼出呼叫。PAC使用Call-Disconnect-Notify消息响应此消息。

2.13. Call-Disconnect-Notify

Call-Disconnect-Notify消息是PAC发送到PNS的PPTP控制消息。每当呼叫断开时, 无论是由于PAC收到Call-Clear-Request还是由于任何其他原因, 都会发出此消息。其目的是通知PNS断开连接以及断开的原因。

2.14. WAN-Error-Notify

WAN-Error-Notify消息是PAC发送到PNS的PPTP控制消息, 用于指示WAN错误条件 (在支持PPP的接口上发生的条件)。此消息中的计数器是累积的。此消息仅应在发生错误时发送, 并且不应超过每60秒一次。当建立新呼叫时计数器被重置。

错误类型包括:

  • CRC Errors (CRC错误)
  • Framing Errors (成帧错误)
  • Hardware Overruns (硬件溢出)
  • Buffer Overruns (缓冲区溢出)
  • Time-out Errors (超时错误)
  • Alignment Errors (对齐错误)

Set-Link-Info消息是PNS发送到PAC的PPTP控制消息, 用于设置PPP协商的选项。由于这些选项可以在呼叫生命周期的任何时间更改, 因此PAC必须能够动态更新其内部呼叫信息并在活动PPP会话上执行PPP协商。

关键字段包括:

  • Peer's Call ID: PAC分配给此呼叫的呼叫ID值
  • Send ACCM: 客户端应用于处理出站PPP数据包的发送ACCM值。在收到此消息之前, 客户端使用的默认值为0XFFFFFFFF
  • Receive ACCM: 客户端应用于处理入站PPP数据包的接收ACCM值。在收到此消息之前, 客户端使用的默认值为0XFFFFFFFF

2.16. 通用错误代码 (General Error Codes)

通用错误代码适用于不特定于任何特定PPTP请求的错误类型, 而是适用于协议或消息格式错误。如果PPTP回复在其结果代码中指示发生一般错误, 则应检查通用错误值以确定错误是什么。当前定义的通用错误代码及其含义为:

  • 0 (None) - 无一般错误 (No general error)
  • 1 (Not-Connected) - 此PAC-PNS对尚不存在控制连接 (No control connection exists yet for this PAC-PNS pair)
  • 2 (Bad-Format) - 长度错误或Magic Cookie值不正确 (Length is wrong or Magic Cookie value is incorrect)
  • 3 (Bad-Value) - 字段值之一超出范围或保留字段非零 (One of the field values was out of range or reserved field was non-zero)
  • 4 (No-Resource) - 现在资源不足无法处理此命令 (Insufficient resources to handle this command now)
  • 5 (Bad-Call ID) - 在此上下文中呼叫ID无效 (The Call ID is invalid in this context)
  • 6 (PAC-Error) - PAC中发生通用供应商特定错误 (A generic vendor-specific error occurred in the PAC)