MORE INFORMATION
PPTP specifies a series of control messages sent between a client and a server, or between a server and a server. This article discusses the packets sent and received between two Routing and Remote Access Services (RRAS) servers to create, maintain, and disconnect a virtual private network (VPN) across a public network.
The PPTP Control Message packet format is generally summarized as having the following form:
Media Header |
IP Header |
TCP Header |
PPTP Control Message |
The primary PPTP control message may take on a number of different tasks, including connection management, call management, error reporting, and Point-to-Point Protocol (PPP) session control. The message code for each type of PPTP control message is listed below.
Control Message Message Code
(Control Connection Management)
Start-Control-Connection-Request 1
Start-Control-Connection-Reply 2
Stop-Control-Connection-Request 3
Stop-Control-Connection-Reply 4
Echo-Request 5
Echo-Reply 6
(Call Management)
Outgoing-Call-Request 7
Outgoing-Call-Reply 8
Incoming-Call-Request 9
Incoming-Call-Reply 10
Incoming-Call-Connected 11
Call-Clear-Request 12
Call-Disconnect-Notify 13
(Error Reporting)
WAN-Error-Notify 14
(PPP Session Control)
Set-Link-Info 15
Each of these PPTP control messages has a packet format that varies slightly. If you need to view the parameters of a particular control message, you can find the detailed description for each in Request for Comments (RF)C 2637. This RFC includes detailed descriptions of each control message and packet format, as well as state diagrams of a PPTP session.
When you are troubleshooting PPTP issues, it may be helpful to know which packet types are usually present and in what order they generally appear.
The following text is a capture of the summary statements for a PPTP session created between two RRAS servers using LAN-to-LAN routing. The summaries show the creation of a VPN tunnel, maintenance of a VPN tunnel, and deletion of a VPN tunnel. When you are reviewing a Network Monitor trace, you may not see this exact sequence, but you should be able to identify the key sequences involved (creation, maintenance, and deletion).
PPTP Control Packet (1): Start Session Request (1) 10.10.10.1 10.10.10.10
PPTP Control Packet (1): Start Session Reply (2) 10.10.10.10 10.10.10.1
PPTP Control Packet (1): Outgoing Call Request (7) 10.10.10.1 10.10.10.10
PPTP Control Packet (1): Outgoing Call Reply (8) 10.10.10.10 10.10.10.1
PPTP Control Packet (1): Set Link Info (15) 10.10.10.1 10.10.10.10
PPTP Control Packet (1): Set Link Info (15) 10.10.10.1 10.10.10.10
PPTP Control Packet (1): Set Link Info (15) 10.10.10.10 10.10.10.1
PPTP Control Packet (1): Set Link Info (15) 10.10.10.1 10.10.10.10
PPTP Control Packet (1): Set Link Info (15) 10.10.10.10 10.10.10.1
The above text represents the creation of the PPTP tunnel.
PPTP Control Packet (1): Echo Request (5) 10.10.10.10 10.10.10.1
PPTP Control Packet (1): Echo Reply (6) 10.10.10.1 10.10.10.10
PPTP Control Packet (1): Echo Request (5) 10.10.10.10 10.10.10.1
PPTP Control Packet (1): Echo Reply (6) 10.10.10.1 10.10.10.10
PPTP Control Packet (1): Echo Request (5) 10.10.10.10 10.10.10.1
PPTP Control Packet (1): Echo Reply (6) 10.10.10.1 10.10.10.10
The above text represents the maintenance of the PPTP tunnel.
PPTP Control Packet (1): Set Link Info (15) 10.10.10.1 10.10.10.10
PPTP Control Packet (1): Set Link Info (15) 10.10.10.10 10.10.10.1
PPTP Control Packet (1): Clear Call Request (12) 10.10.10.1 10.10.10.10
PPTP Control Packet (1): Call Disconnected Notify (13)10.10.10.10 10.10.10.1
PPTP Control Packet (1): Stop Session Request (3) 10.10.10.1 10.10.10.10
PPTP Control Packet (1): Stop Session Reply (4) 10.10.10.10 10.10.10.1
The above text represents the deletion of the PPTP tunnel.