High-level Data Link Control

From Hill2dot0
(Redirected from HDLC)
Jump to: navigation, search

High-level Data Link Control (HDLC) is a bit-oriented Data Link Layer protocol, so called because the basic unit of transmission is the bit. Other Data Link Layer protocols (e.g., IBM’s BISYNC protocol) are character-oriented and use multi-bit characters as their basic transmission unit.

IBM created the first bit-oriented protocol, Synchronous Data Link Control (SDLC), as the Data Link Layer to be used in its Systems Network Architecture (SNA). IBM submitted the protocol to the American National Standards Institute (ANSI), which extended the protocol to cover a wider variety of configurations. The result was named the American National Standard (ANS) for Advanced Data Communication Control Procedures (ADCCP).

ANSI, representing the United States, submitted ADCCP to the International Organization for Standardization (ISO), which adopted essentially the same specifications submitted and named their version the ISO recommendation for High-level Data Link Control (HDLC). Thus, HDLC and ADCCP are nearly identical and are both super-sets of IBM’s SDLC.

HDLC has since been the basis for a multitude of Data Link Layer protocols. The International Telecommunication Union-Telecommunication Standardization Sector (ITU-T) subsequently used the concepts embodied in HDLC in designing the Link Access Procedure (LAP) for use as the Data Link Layer protocol for Recommendation X.25. LAP is a subset of HDLC, covering only the particular configuration relevant to X.25. Since 1980, versions of X.25 have used Link Access Procedure Balanced (LAPB), which is another HDLC subset. ITU-T specifications for Integrated Services Digital Network (ISDN) include the use of Link Access Procedure for the D-Channel (LAPD)—also an HDLC subset. Even the frame relay protocol, Link Access Procedure for Frame-Mode Bearer Services (LAPF), and the IEEE Logical Link Control (LLC) protocols find their roots in HDLC. Finally, ITU-T Standard V.42 favors the use of a Link Access Procedure for Modems (LAPM) when modems are themselves producing error detection/correction. V.42 use is mandatory when V.42bis compression functions (commonly used for Internet access) are invoked. Many of these variants are consider legacy protocols and some are essentially obsolete.

Data Link Configurations

HDLC is designed to operate in the following configurations:

  • Either point-to-point or multipoint: Point-to-point is between two devices, and multipoint is between more than two devices (actually a point-to-multipoint configuration). In multipoint operation (and sometimes in point-to-point), one station is designated the “primary” station and controls the link. On a multipoint link, all communication is between the primary and one secondary station at a time; secondary stations do not communicate directly with each other.
  • Full duplex or half duplex link: In multipoint operation, full duplex means there is one channel for communication from the primary to the secondaries, and one channel for communication from the secondaries to the primary. Thus, even in full duplex mode on a multipoint link, only one secondary can transmit at a time. The primary station is responsible for giving the secondaries permission to transmit, to avoid collisions.
  • Switched or direct lines: The former means any dial-up facility (e.g., ISDN, POTS). The latter refers to dedicated facilities (e.g., leased lines).
  • Serial transmission facilities: parallel transmission is not permitted.
  • Synchronous or asynchronous facilities: Synchronous are facilities with continuous bit transmission. Asynchronous transmit is short bursts of a few bits (commonly 8 to 12 bits).

Error Correction Process

HDLC uses the detect-and-retransmit form of error correction. Both Go-Back-N and selective retransmission are supported, although most implementations use Go-Back-N.

HDLC Frame Format

G0677 HDLC-Frame-Format.jpg

The accompanying visual shows the format of an HDLC frame. There are five basic parts of this frame:

  • Flag pattern: Used to delimit the data and signify the beginning and end of the frame. A flag is an 8-bit combination: 01111110 (0, six 1s, 0).
  • Address: Used to separate commands from responses in both point-to-point and multipoint. Also used to identify the secondary station in multipoint. The primary sends the secondary address so each secondary can identify information for itself. Secondaries also send their own address to the primary so the primary can determine from where the data came.
  • Control: Identifies the type of frame sent and contains some error checking information (sequence numbers).
  • Information: Contains upper layer data. This field may or may not be present, depending on frame type (e.g., some acknowledgment frames do not contain user data).
  • Frame Check Sequence (FCS): Contains a cyclic redundancy check (CRC) bits for error detection.


<mp3>http://podcast.hill-vt.com/podsnacks/2008q2/hdlc.mp3%7Cdownload</mp3> | High-level Data Link Control (HDLC)