3.1.2 Control connection Receiver (may be PAC or PNS)

   Receive Start Control Connection Request

   Version Not OK/Send Start Control Connection

   Reply with Error

      +--------+

      |        |         Receive Control Connection Request Version OK

      |        |         /Send Start Control Connection Reply

      |        |   +----------------------------------------+

      ^        V   ^                                        V

    +-----------------+             Receive Start Ctl    +-----------------+

    |      Idle       |             Connection Request   |   Established   |

    +-----------------+             /Send Stop Reply     +-----------------+

            ^      ^                 Close TCP           V  V Local Terminate

            |      +-------------------------------------+  | /Send Stop

            |                                               |  Control Conn.

            |                                               V  Request

            |                                     +-----------------+

            +-------------------------------------| Wait-Stop-Reply |

                     Receive Stop Control         +-----------------+

                     Connection Reply

                     /Close TCP

idle

The control connection receiver waits for a TCP open attempt on port 1723. When notified of an open TCP connection, it should prepare to receive PPTP messages.  When a Start-Control-Connection-Request is received its version field should be examined. If the version is earlier than the receiver's version and the earlier version can be supported by the receiver, the receiver SHOULD send a Start-Control- Connection-Reply. If the version is earlier than the receiver's version and the version cannot be supported, the receiver SHOULD send a Start- Connection-Reply message, close the TCP connection and remain in the idle state.  If the receiver's version is the same as earlier than the peer's, the receiver SHOULD send a Start-Control- Connection-Reply with the receiver's version and enter the established state.

established

An established connection may be terminated by either a local condition or the reception of a Stop-Control-Connection-Request. In the event of a local termination, the originator MUST send a Stop-Control-Connection-Request and enter the wait_stop_reply state.

If the originator receives a Stop-Control-Connection-Request it SHOULD send a Stop-Control-Connection-Reply and close the TCP connection, making sure that the final TCP information has been "pushed" properly.

wait_stop_reply

If a Stop-Control-Connection-Reply is received, the TCP connection SHOULD be closed and the control connection becomes idle.