3.4.2 Sliding window protocol

The sliding window protocol used on the PPTP data path is used to flow control each side of the data exchange. The proposed GRE v2 IP protocol allows packet acknowledgments to be piggybacked on data packets. Acknowledgments can still be sent separately from data packets. The main purpose of the sliding window protocol is for flow control; retransmissions are not supported.

3.4.2.1 Multi-packet acknowledgment

One feature of the PPTP sliding window protocol is to allow an acknowledgment of multiple packets with one acknowledgment. All outstanding packets with a lower or equal sequence number of the acknowledgment are cleared. Time-out calculations are performed using the highest number packet acknowledged, and all lower packet timers are cleared. This is shown in Figure 6 below.

Figure 6. Acknowledging multiple packets at once

In Figure 6, the FEP acknowledges the last packet it received. This effectively acknowledges all prior messages and allows NTS to send another window full. Adaptive time-out calculations are only performed when an Acknowledge is received. When multi-packet acknowledges are used, the overhead of the adaptive time-out algorithm is reduced. The FEP is not required to take advantage of the multi-packet acknowledge, and it can individually acknowledge each packet as it is sent to the PPP client.

3.4.2.2 Out-of-order packets

Occasionally packets lose their order across a complicated internetwork, as illustrated in Figure 7. Packet 3 arrives at the FEP after packet 4, although NTS sent them in order. The FEP acknowledges packet 4 and may assume packet 3 is lost. This acknowledgment grants credit beyond packet 4. When the FEP does receive packet 3, it should attempt to transmit it to the remote PPP client. When packet 5 comes in, it is acknowledged by the FEP because it has a higher sequence number than 4, which was the last highest packet acknowledged by the FEP.

Figure 7. Out-of-order packets

Back to table of contents.