Appendix A. Acknowledgment Time-Outs

PPTP uses sliding windows and time-outs to provide both user session flow-control across the internetwork and to perform efficient data buffering to keep the PAC-PNS data channels full without causing receive buffer overflow.  PPTP requires that a time-out be used to recover from dropped data or acknowledgment packets.  The exact implementation of the time-out is vendor-specific.  It is suggested that an adaptive time-out be implemented with backoff for congestion control.  The time-out mechanism proposed here has the following properties:

Independent time-outs for each session. A device (PAC or PNS) will have to maintain and calculate time-outs for every active session.

An administrator-adjustable maximum time-out, MaxTimeOut, unique to each device.

An adaptive time-out mechanism that compensates for changing throughput.  To reduce packet processing overhead, vendors may choose not to recompute the adaptive time-out for every received acknowledgment.  The result of this overhead reduction is that the time-out will not respond as quickly to rapid network changes.

Timer backoff on time-out to reduce congestion. The backed-off timer value is limited by the configurable maximum time-out value. Timer backoff is done every time an acknowledgment time-out occurs.

In general, this mechanism has the desirable behavior of quickly backing off upon a time-out and of slowly decreasing the time-out value as packets are delivered without time-outs.