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 (对齐错误)
2.15. Set-Link-Info
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)