The PPTP protocol specifies a series of control messages sent between the PPTP-enabled client and the PPTP server. The control messages establish, maintain and end the PPTP tunnel. The following list presents the primary control messages used to establish and maintain the PPTP tunnel.
Message Type |
Purpose |
PPTP_START_SESSION_REQUEST | Starts session |
PPTP_START_SESSION_REPLY | Replies to start session request |
PPTP_ECHO_REQUEST | Maintains session |
PPTP_ECHO_REPLY | Replies to maintain session request |
PPTP_WAN_ERROR_NOTIFY | Reports an error on the PPP connection |
PPTP_SET_LINK_INFO | Configures the connection between client and PPTP server |
PPTP_STOP_SESSION_REQUEST | Ends session |
PPTP_STOP_SESSION_REPLY | Replies to end session request |
Control messages are transmitted in control packets in a TCP datagram. One TCP connection is created between the PPTP client and the PPTP server. This connection is used to exchange control messages. A datagram contains an IP header, a TCP header, a PPTP control message, and appropriate trailers, similar to the following:
The exchange of messages between the PPTP client and the PPTP server over the TCP connection are used to create and maintain a PPTP tunnel. This entire process is illustrated below:
Note that in this illustration, the control connection is for the scenario in which the remote access client is the PPTP client. In the scenario in which the remote access client is not PPTP-enabled and uses a PPTP-enabled ISP network access server, the PPTP control connection begins at the ISP server.