Introduction
HDLC (High Level Data Link Control) is one of the most common data link layer (layer 2)
protocols. Many other common layer 2 protocols are heavily based on HDLC, particularly its
framing structure. The HDLC protocol is defined by ISO for use on both point-to-point and
multipoint (multidrop) data links. It supports full duplex transparent-mode operation and is now
extensively used in both multipoint and computer networks.
The rule of HDLC is to ensure that the data has been received without any loss or errors and in
the correct order. HDLC has a flow control function which ensures that the data is transmitted as
fast as the receiver can receive it.
HDLC Operation Modes
HDLC has three operational modes:
1. Normal Response Mode (NRM)
Normal Response Mode is used in unbalanced configurations, a configuration is
which there is only one primary, controlling station. In this mode, slave stations (or
secondary) can only transmit when specially instructed by the master (primary
station). The link may be point-to-point or multipoint. In the latter case only one
primary station is allowed.
2. Asynchronous Response Mode (ARM)
Asynchronous Response Mode is used in unbalanced configurations. It allows a
secondary station to initiate a transmission without receiving permission from the
primary station. This mode is normally used with point-to-point configurations and
full duplex links and allows the secondary station to send frames asynchronously with
respect to the primary station.
3. Asynchronous Balanced Mode (ABM)
The Asynchronous Balanced Mode (ABM) is used mainly on full duplex point-to-
point links for computer to computer communications and for connections between a
computer and a packed switched data network, in this case each station has an equal
status and performs the role of both primary and secondary functions. This mode is
used in the protocol set known as X.25.
Frame Format
The standards frame of the HDLC protocol handles both data and control messages.
It has the following format:
Flag
Address
Control
Information
FCS
Flag
1 Byte
1-2 Bytes
1 Byte
variable
2 Bytes
1 Byte
Flag - The value of the flag is always (0x7E).