Cisco HDLC
From Wikipedia, the free encyclopedia
The introduction to this November 2006 provides insufficient context for those unfamiliar with the subject. Please help improve the article with a good introductory style. |
Cisco HDLC (also known as cHDLC) is an extension to the High-Level Data Link Control protocol created by Cisco Systems, Inc. HDLC is a bit-oriented synchronous data link layer protocol that was originally developed by the International Organization for Standardization (ISO). Often described as being a 'proprietary' extension, the workings of cHDLC have in fact been openly and widely distributed, and the protocol has been implemented by many different network equipment vendors.
Contents |
[edit] Framing
Cisco HDLC frames make use of an alternative framing structure to the standard ISO HDLC. One of the primary reasons for the creation of cHDLC was to address the HDLC protocol's inability to provide multiprotocol support. Thus, cHDLC frames contain a field for identifying the network protocol being encapsulated.
[edit] SLARP
The Cisco HDLC extensions also include the definition of SLARP or the Serial Line Address Resolution Protocol (ARP). SLARP is used to provide dynamic address assignment between two endpoints across a serial line, a keep-alive mechanism for ensuring the availability of a given link, and finally a method for determining link health.
The keep-alive mechanism works in a request/response fashion between the two serial line endpoints. Sequence numbers carried inside the SLARP frames are incremented for each keep-alive sent, and as such the health of the link can be determined by each endpoint by keeping track of the sequence. If a certain count of sequence numbers are missed, the keep-alive frames are deemed to be lost, and an alert is pushed up through higher layer protocols to say that the link has most likely been lost.
[edit] Structure
[edit] cHDLC Frame Structure
The following table describes the make up of a cHDLC frame on the wire.
Address | Control | Protocol Code | Information | Frame Check Sequence (FCS) | Flag |
---|---|---|---|---|---|
8 bits | 8 bits | 16 bits | Variable length, 0 or more bits, in multiples of 8 | 16 bits | 8 bits |
- The Address field is used to specify the type of packet contained in the cHDLC frame; 0x0F for Unicast and 0x8F for Broadcast packets.
- The Control field is always set to zero (0x00).
- The Protocol Code field is used to specify the protocol type encapsulated within the cHDLC frame (e.g. 0x0800 for Internet Protocol).
[edit] SLARP Address Request/Response Frame Structure
A SLARP frame is designated by a specific cHDLC Protocol Code field value of 0x8035.
Currently only 3 types of SLARP frame are defined; address requests (0x00), address replies (0x01), and keep-alive frames (0x02).
The following table shows the makeup of a SLARP cHDLC address request/response frame.
Address | Control | Protocol Code | SLARP Op-Code | Address | Mask | Reserved | Frame Check Sequence (FCS) | Flag |
---|---|---|---|---|---|---|---|---|
8 bits | 8 bits | 16 bits (0x8035) | 32 bits | 32 bits | 32 bits | 8 bits | 16 bits | 8 bits |
- The Op-Code will be 0x00 for address requests and 0x01 for address responses.
- The Address and Mask fields are used to contain a 4-octet IP address and mask.
- The 1-byte Reserved field is currently unused and is always set to 0xFF.
[edit] SLARP Keep-Alive Frame Structure
The following table shows the makeup of a SLARP cHDLC keep-alive frame.
Address | Control | Protocol Code | SLARP Op-Code | Sequence Number (Sender) | Sequence Number (Last Received) | Reserved | Frame Check Sequence (FCS) | Flag |
---|---|---|---|---|---|---|---|---|
8 bits | 8 bits | 16 bits (0x8035) | 32 bits | 32 bits | 32 bits | 8 bits | 16 bits | 8 bits |
[edit] See also
- Point-to-Point Protocol, a non-proprietary Internet Standard defined by RFC 1661 and RFC 1662 that solves the problems Cisco HDLC solves as well as many other problems.