Article View: comp.protocols.ppp
Article #118asyncmap rationale (was Re: PPP via intermediate links)
From: Bob Sutterfield
Date: Fri, 13 Nov 1992 15:51
Date: Fri, 13 Nov 1992 15:51
40 lines
2934 bytes
2934 bytes
In article <5c5436cd.1bc5b@pisa.citi.umich.edu> rees@pisa.citi.umich.edu (Jim Rees) writes:
In article <BOB.92Nov3145722@volitans.MorningStar.Com>, bob@MorningStar.Com (Bob Sutterfield) writes:
Since 0xff is outside the range that can be negotiated using the
LCP Async-Control-Character-Map mechanism, some special means
must be exercised to keep it from being a part of the user data
stream.
Surely you're not serious. The ppp folks provided an escape
mechanism for characters that can't be sent transparently, then
limited the scope of that mechanism? That seems seriously stupid
to me. What could they possibly have been thinking?
The escaping mechanism isn't limited, only the negotiation mechanism.
Since the initial asyncmap is 32 "1" bits for guaranteed transparency,
LCP negotiations (including negotiations regarding the eventual
operational asyncmaps) progress with all the async control characters
escaped into two-byte pairs, each consisting of a 0x7D flag followed
by a byte that's the original byte XOR'd with 0x20. Each byte of any
resulting escaped pair is thus outside the range of the asyncmap.
If the initial asyncmap were 256 "1" bits, what byte range would you
use for negotiations? Everything would need to be escaped, but even
those escaped results would need to be escaped before transmission.
What would they transform into? If you wanted to leave some
"printable" characters out of the 256-bit wide all-ones initial
asyncmap so that they'd be available for negotiation, how would you
know which ones to leave out, without first negotiating them somehow?
Only the negotiation mechanism is so limited, but the escaping
mechanism can be used on (almost) any character without in-band
negotiation. This breaks the general philosophy of "no a-priori
configuration", but no good general solution has been proposed, and
this workaround is at least pragmatic, though ugly.
(Actually, the escaping mechanism is also limited, but not as badly as
the negotiation mechanism. You can't escape 0x5E, 0x7D or 0x7E
because their XOR-with-0x20 results would collide with PPP's HDLC
framing character, the escape leadin, and with each other, resulting
in unresolvable ambiguities.)
Technical Details
Message-ID:
<BOB.92Nov13105133@volitans.MorningStar.Com>Path:
arc1-ca.pugleaf.net!sparky!uunet!ukma!darwin.sura.net!zaphod.mps.ohio-state.edu!mstar!mstar!bobReferences:
<1ck9arINNjro@gap.caltech.edu> <BOB.92Nov3145722@volitans.MorningStar.Com> <5c5436cd.1bc5b@pisa.citi.umich.edu>Show Full Headers
Complete Article Headers
Newsgroups: comp.protocols.ppp Path: arc1-ca.pugleaf.net!sparky!uunet!ukma!darwin.sura.net!zaphod.mps.ohio-state.edu!mstar!mstar!bob From: bob@MorningStar.Com (Bob Sutterfield) Subject: asyncmap rationale (was Re: PPP via intermediate links) In-Reply-To: rees@pisa.citi.umich.edu's message of 12 Nov 1992 20: 26:44 GMT Message-ID: <BOB.92Nov13105133@volitans.MorningStar.Com> Sender: news@MorningStar.Com Nntp-Posting-Host: volitans.morningstar.com Organization: Morning Star Technologies References: <1ck9arINNjro@gap.caltech.edu> <BOB.92Nov3145722@volitans.MorningStar.Com> <5c5436cd.1bc5b@pisa.citi.umich.edu> Date: Fri, 13 Nov 1992 15:51:44 GMT Lines: 40