At 06:53 PM 2/6/02, s vermill wrote:
>I wonder if you, and others, would comment on ppp as a character-oriented
>protocol. I did a search on the internet and found some university teaching
>papers that characterize synchronous ppp as character-oriented while at the
>same time acknowleging the fact that it is based on the bit-synchronous HDLC
>frame format. I guess the LCP is the culprit?
PPP has many components, including framing (encapsulation), LCP, and NCP.
It's best to consider the components separately. The short answer to your
question, though, is that all the components are character-oriented
(byte-oriented). In other words, they identify their operations with entire
bytes, rather than using bits within bytes. And here's the long answer:
PPP encapsulation is based on HDLC framing, except that PPP adds two bytes
for a Protocol field. The Protocol field is not a bit-oriented field. The
two bytes are taken together to mean IP, AppleTalk, DECnet, etc.
Also, the other fields in the PPP header, even though based on HDLC, are
also not really bit-oriented because PPP doesn't do much compared to other
HDLC derivatives. (sort of like Cisco's HDLC which also doesn't do much)
Take the Control field, for example. In PPP, it's always a single byte that
contains the binary sequence 00000011, which calls for transmission of user
data in an unsequenced frame.
Other HDLC-based protocols allow for a few different binary values for this
field and, in fact, the field can be two bytes. These protocols can send
Supervisory, Information (with sequence numbers), and Unnumbered Frames.
They offer reliability and are bit-oriented. LLC2 is an example. Other
examples are LAPB and LAPD.
PPP acts like LLC1 and doesn't really do much and doesn't really need to be
bit-oriented, (with the exception that PPP devices have to know the one
valid binary value of the Control field.)
Now, as far as LCP is concerned.... It's in the control plane. It's pretty
complex, but you could learn more about it by turning on debug ppp or
reading RFC 1548.
Per RFC 1548, "The LCP is used to automatically agree upon the
encapsulation format options, handle varying limits on sizes of packets,
authenticate the identity of its peer on the link, determine when a link is
functioning properly and when it is defunct, detect a looped-back link and
other common misconfiguration errors, and terminate the link."
Despite the complexity, the frame format for LCP appears to be simple and
character-oriented. Here's probably way more than you ever wanted to know:
The Code field is one octet and identifies the kind of LCP packet. This
specification concerns the following values:
1 Configure-Request
2 Configure-Ack
3 Configure-Nak
4 Configure-Reject
5 Terminate-Request
6 Terminate-Ack
7 Code-Reject
8 Protocol-Reject
9 Echo-Request
10 Echo-Reply
11 Discard-Request
Identifier
The Identifier field is one octet and aids in matching requests and
replies. When a packet is received with an invalid Identifier field, the
packet is silently discarded.
Length
The Length field is two octets and indicates the length of the LCP packet
including the Code, Identifier, Length and Data fields. Octets outside the
range of the Length field are treated as padding and are ignored on
reception. When a packet is received with an invalid Length field, the
packet is silently discarded.
Data
The Data field is zero or more octets as indicated by the Length field. The
format of the Data field is determined by the Code field.
And we haven't even gotten to the other major component of PPP, the NCP
part. ;-)
Priscilla
________________________
Priscilla Oppenheimer
http://www.priscilla.com
Message Posted at:
http://www.groupstudy.com/form/read.php?f=7&i=34716&t=34629
--------------------------------------------------
FAQ, list archives, and subscription info: http://www.groupstudy.com/list/cisco.html
Report misconduct and Nondisclosure violations to [EMAIL PROTECTED]