Summary

  • RFC 1663 made reliable transmission an optional property negotiated for one PPP link. Numbered Mode replaced ordinary unnumbered framing with a bounded sequence window, acknowledgements, retransmission timers and a defined return to the default mode when the procedure failed.
  • The two peers could choose different receive windows, but they had to use the same sequence modulus. Magic-Number selected who initiated establishment; it did not authenticate either peer. Address-and-Control-Field Compression was forbidden because Numbered Mode needed those fields.
  • The acknowledgement boundary was exact. SABM or SABME followed by UA established the link procedure, while authentication, link-quality determination, NCP configuration, routing and application completion still required their own evidence.

A missing datagram could poison more than itself

Ordinary PPP over an HDLC-like link treated packets as independent datagrams. Its familiar Address field named the All-Stations address, and its Control field carried the Unnumbered Information value. A damaged frame could be discarded; the link protocol did not ordinarily promise to restore its position in a stream.

That economy had a cost when adjacent packets shared state. RFC 1663 pointed to compression as the important case. If sender and receiver maintained the same compression dictionary, losing one compressed datagram might make later datagrams undecodable even when they arrived intact. Some compression methods could reset cheaply. Others benefited from a reliable, ordered link stream.

The PPP Working Group did not convert every link into such a stream. Its July 1994 specification made reliable transmission optional through LCP Configuration Option 11, Numbered-Mode. A peer had to request it during Link Establishment; the other had to accept. The default remained connectionless Unnumbered Information.

This choice confined consensus to the pair that needed it. Implementations that valued minimal framing could remain unchanged. Peers whose shared state made loss expensive could add a recovery loop. The standard provided one interoperable mechanism without declaring that every link or every compression method should pay for it.

One option changed two small fields

Numbered Mode did not invent a second PPP packet. Protocol, Information, Padding, Frame Check Sequence and flags kept their established roles. The change occurred in the Address and Control fields, using the numbered procedure associated with ISO 7776 LAPB. Once the mode was active, every frame on that link had to use it; a receiver could not casually alternate numbered and ordinary UI frames.

That is why another attractive optimization became incompatible. Address-and-Control-Field Compression normally allowed the common ff 03 pair to disappear from the wire. In Numbered Mode those octets were no longer invariant decoration: they carried the link address and numbered control information. RFC 1663 therefore required peers not to negotiate ACFC. RFC 1662 supplied the wider rule—other Address or Control values require prior agreement and cannot be compressed away as if they were the default pair.

The Frame Check Sequence covered the changed fields. A correct FCS could show that the received bits matched the frame under the negotiated framing rules. It could not show that the frame belonged to a currently agreed numbered epoch. State still mattered.

The window selected a sequence language

The Numbered-Mode option carried a Window value from 1 through 127. It served two related limits: how many frames the receiver was willing to buffer and how many the sender could have outstanding without an acknowledgement. The option thus advertised capacity while bounding uncertainty.

The window also selected the sequence-number format. Values below 8 used modulo 8; values of 8 or more used modulo 128. The peers were allowed to announce different windows because their buffers could differ. They were not allowed to operate with different moduli. One side counting in a three-bit circle while the other interpreted a seven-bit sequence would not be a smaller performance mismatch; it would be a different wire language.

Configure-Nak could propose a smaller window, not a larger one. That rule let a constrained receiver draw the boundary inward without volunteering memory for its peer. It also prevented a negotiation response from silently moving the other side into a wider sequence format it had not offered.

The same option announced an HDLC address. Zero was not a usable final address and had to be rejected with a suitable alternative. Tie-breaking rules handled conflicting proposals, using random selection only in the narrow case left after window and address comparisons could not distinguish the peers. Even here, the shared rule solved only the coordination needed to form a link. It did not establish organizational identity.

A Magic-Number chose the first speaker

Numbered Mode required successful Magic-Number negotiation. After LCP accepted the configuration, the peer with the numerically lower Magic-Number initiated the numbered procedure by sending SABM for modulo 8 or SABME for modulo 128. The other peer answered with UA.

The sequence removed an avoidable race: both sides could derive who should speak first from values already present in the link negotiation. If SABM, SABME or UA disappeared, the ordinary LCP Restart Timer and counter parameters governed another attempt.

UA is easy to overread. In this exchange it means that the adjacent peer accepted the numbered link establishment. PPP's architecture still placed authentication, Link Quality Determination and Network Control Protocol configuration after the data-link connection had been established. A UA therefore cannot prove that credentials were accepted, that the link met a quality threshold, that IP was configured, that a route existed or that any distant service received a request.

Magic-Number deserves the same discipline. It helped distinguish the sides and detect looped links in PPP. It was not a credential, a signature or an authorization claim. RFC 1663 did not discuss security issues. Link reliability and peer trust remained different questions even when one value participated in both coordination and loop detection.

Failure had a named way back

A reliable mechanism is only interoperable if peers can also recognize that they no longer share it. RFC 1663 specified several boundaries rather than allowing a half-numbered link to drift indefinitely.

Renegotiation occurred while Numbered Mode was still in use. If the option was not successfully negotiated again, the link returned to Unnumbered Information before proceeding to authentication, quality determination and NCP configuration. A capable implementation that was currently unnumbered and received a correct-FCS non-UI frame replied with Disconnected Mode, or DM, and immediately restarted LCP negotiation. A numbered implementation receiving DM fell back to UI and also sent a new LCP Configure-Request.

These responses made disagreement observable. A frame with valid bits but the wrong current control procedure was not promoted into valid link state. Nor was the numbered procedure allowed to survive merely because one side remembered it.

The recovery loop itself was bounded. Timer T1 measured the maximum wait for a response to an information frame before retransmission. The specification recommended adapting it to observed LAPB round-trip delay, with a fallback calculation based on frame size, bit rate and processing time. T3 marked link idleness and had to exceed T1. N2 limited attempts for one frame; exceeding it should terminate the link, with three given as the recommended default.

Three attempts were not a universal truth about networks. They were the default boundary of this particular adjacent-link procedure. An operator could not use N2 exhaustion alone to prove why the peer stopped responding, and an application could not treat a link retransmission count as its own transaction retry budget.

Parallel links did not merge by implication

The limit becomes clearer when more than one physical link connects the same systems. PPP links were, by default, established, configured and terminated independently. A compression stream dependent on sequence had to remain link-specific unless another procedure explicitly joined the links.

RFC 1663 mentioned an ISO Multi-Link addressing procedure but deprecated its implementation and pointed toward the PPP Multilink work that later became RFC 1990. Numbered Mode and multilink sequencing answered related but distinct questions. The first recovered ordered delivery across one member link. The second created a bundle-wide sequence space so fragments could be reassembled across several links. One must not be inferred from the presence of the other.

This distinction is operationally useful. A Numbered-Mode acknowledgement belongs to one negotiated link, one address arrangement, one modulus and one current state. It cannot be transferred to a parallel link, much less extended across routers, as if physical adjacency were irrelevant.

The acknowledgement was valuable because it stopped

IANA's registry gives Numbered-Mode the stable LCP option number 11. That assignment lets implementations name the same request. An LCP Configure-Ack records acceptance of its exact values for a negotiation epoch. SABM or SABME and UA establish the numbered procedure. Sequence and acknowledgement records then support a claim about which link frames advanced and which were retransmitted. DM, an LCP restart or N2 exhaustion shows that this state was lost or abandoned.

Every step is evidence, and none is the whole system. Authentication protocols must supply identity evidence. Link-quality monitoring must supply its own measurements and local verdict. NCP exchanges establish network-layer configuration. Routing observations show reachability. Application identifiers and responses establish application outcomes.

The historical achievement of RFC 1663 was not an assurance that data had safely reached its ultimate purpose. It was a smaller, testable contract: when two PPP peers voluntarily selected reliable transmission, they shared the sequence language, bounded the outstanding work, acknowledged progress and agreed how to restart when their state diverged.

By refusing to make that acknowledgement speak for higher layers, PPP preserved room for each layer to decide with its own evidence. Reliability became stronger at the link precisely because its claim was kept local.

Sources