High-level data link control (HDLC) is a bit-oriented synchronous data link layer protocol used
to ensure the error-free transmission of data to respective destinations and control the speed
at which data is transmitted.
HDLCs provide both connection-oriented and connectionless services.
High-level data link control is a set of protocols that defines rules for transmitting data
between network points. Data in HDLC is organized into units called frames and is sent across
networks to specified destinations. HDLC is commonly used in layer 2 of the open systems
interconnection (OSI) model.
HDLC is a protocol developed by the International Organization for Standardization(ISO). It
falls under the ISO standards ISO 3309 and ISO 4335. It has found itself being used throughout
the world. It has been so widely implemented because it supports both half duplex and full
duplex communication lines, point to point(peer to peer) and multi-point networks.
following are aspects of HDLC:
•Stations and Configurations
•Commands and Responses
•HDLC Subsets(SDLC and LAPB)
HDLC STATIONS AND CONFIGURATIONS
HDLC specifies the following three types of stations for data link control:
Within a network using HDLC as it's data link protocol, if a configuration is used in which there is a
primary station, it is used as the controlling station on the link. It has the responsibility of controlling all
other stations on the link(usually secondary stations). Despite this important aspect of being on the
link, the primary station is also responsible for the organization of data flow on the link. It also takes
care of error recovery at the data link level(layer 2 of the OSI model). Frame issued by primary are called
If the data link protocol being used is HDLC, and a primary station is present, a secondary station must
also be present on the data link. The secondary station is under the control of the primary station. It
has no ability, or direct responsibility for controlling the link. It is only activated when requested by
the primary station. It only responds to the primary station. The secondary station's frames are called
responses. It can only send response frames when requested by the primary station.
A combined station is a combination of a primary and secondary station. On the link, all combined
stations are able to send and receive commands and responses without any permission from any
other stations on the link. Each combined station is in full control of itself, and does not rely on any
other stations on the link. No other stations can control any combined station.
HDLC also defines types of configurations for the three types of stations:
1. Unbalanced Configuration
2. Balanced Configuration
The unbalanced configuration in an HDLC link consists of a primary station and one or more
secondary stations. The unbalanced occurs because one stations controls the other stations.
In a unbalanced configurations, any of the following can be used:
Full - Duplex or Half - Duplex operation
Point to Point or Multi-point networks
Figure 2.a An unbalanced configuration
The balanced configuration in an HDLC link consists of two or more combined stations.
Each of the stations have equal and complimentary responsibility compared to each other.
Balanced configurations can used only the following:
Full - Duplex or Half - Duplex operation
Point to Point networks
Figure 2.b A balanced configuration
HDLC Operational Modes
HDLC offers three different modes of
operation. These three modes of operations
Normal Response Mode(NRM)
Asynchronous Response Mode(ARM)
Asynchronous Balanced Mode(ABM)
Normal Response Mode
This is the mode in which the primary station initiates transfers to the secondary station. The secondary station can only
transmit a response when, and only when, it is instructed to do so by the primary station. In other words, the secondary
station must receive explicit permission from the primary station to transfer a response. After receiving permission from
the primary station, the secondary station initiates it's transmission. This transmission from the secondary station to the
primary station may be much more than just an acknowledgment of a frame. It may in fact be more than one
information frame. Once the last frame is transmitted by the secondary station, it must wait once again from explicit
permission to transfer anything, from the primary station. Normal Response Mode is only used within an unbalanced
Asynchronous Response Mode
In this mode, the primary station doesn't initiate transfers to the secondary station. In fact, the secondary station does
not have to wait to receive explicit permission from the primary station to transfer any frames. The frames may be more
than just acknowledgment frames. They may contain data, or control information regarding the status of the secondary
station. The ARM can be used with balanced or combined configuration as it does not need any authorization from the
primary station to start transferring the frames from the secondary station. It reduced the time overheads while
transferring the frames and since the permissions are not required.. In this mode, the primary station still retains
responsibility for error recovery, link setup, and link disconnection.
Asynchronous Balanced Mode
This mode uses combined stations. There is no need for permission on the part of any station in this mode. This is
because combined stations do not require any sort of instructions to perform any task on the link.
Normal Response Mode is used most frequently in multi-point lines, where the primary station controls the link.
Asynchronous Response Mode is better for point to point links, as it reduces overhead. Asynchronous Balanced Mode is
not used widely today.
The "asynchronous" in both ARM and ABM does not refer to the format of the data on the link. It refers to the fact that
any given station can transfer frames without explicit permission or instruction from any other station.
HDLC Frame Structure
HDLC uses the term "frame" to indicate an entity of data(or a protocol data unit) transmitted from one station to
another. Figure 3 below is a graphical representation of a HDLC frame with an information field.
Figure 3 An HDLC frame with an information field.
Field Name Size(in bits)
Flag Field( F ) 8 bits
Address Field( A ) 8 bits
Control Field( C ) 8 or 16 bits
Information Field( I )
Variable; Not used in some
Frame Check Sequence( FCS ) 16 or 32 bits
Closing Flag Field( F ) 8 bits
It has a unique pattern at both the ends of the frame structure. It identifies the start and
end of the frame. The length of flag field is 8-bit. The flag sequence is an octet looking like
THE ADDRESS FIELD
The address field(A) identifies the primary or secondary stations involvement in the frame
transmission or reception. Each station on the link has a unique address. In an unbalanced
configuration, the A field in both commands and responses refers to the secondary
station. In a balanced configuration, the command frame contains the destination station
address and the response frame has the sending station's address.
THE CONTROL FIELD
HDLC uses the control field(C) to determine how to control the communications
process. This field contains the commands, responses and sequences numbers used to
maintain the data flow accountability of the link, defines the functions of the frame
and initiates the logic to control the movement of traffic between sending and
receiving stations. There three control field formats:
Information Transfer Format
The frame is used to transmit end-user data between two
The control field performs control functions such as acknowledgment of frames, requests for re-
transmission, and requests for temporary suspension of frames being transmitted. Its use depends on the
operational mode being used.
This control field format is also used for control purposes. It is used to perform link initialization, link
disconnection and other link control functions.
THE POLL/FINAL BIT(P/F)
The 5th bit position in the control field is called the poll/final bit, or p/f bit. It can only be recognized when it
is set to 1. If it is set to 0, it is ignored. The poll/final bit is used to provide dialogue between the primary
station and secondary station. The primary station uses P=1 to acquire a status response from the secondary
station. The P bit signifies a poll. The secondary station responds to the P bit by transmitting a data or status
frame to the primary station with the P/F bit set to F=1. The F bit can also be used to signal the end of a
transmission from the secondary station under Normal Response Mode.
THE INFORMATION FIELD
This field is not always in a HDLC frame. It is only present when the Information Transfer Format is being
used in the control field. The information field contains the actually data the sender is transmitting to the
THE FRAME CHECK SEQUENCE FIELD
This field contains a 16 bit, or 32 bit cyclic redundancy check. It is used for error detection.
INFORMATION TRANSFER FORMAT COMMAND AND RESPONSE
The functions of the information command and response is to transfer sequentially numbered
frames, each containing an information field, across the data link.
SUPERVISORY FORMAT COMMANDS AND RESPONSES
Supervisory(S) commands and responses are used to perform numbered supervisory functions
such as acknowledgment, polling, temporary suspension of information transfer, or error
recovery. Frames with the S format control field cannot contain an information field. A primary
station may use the S format command frame with the P bit set to 1 to request a response from
a secondary station regarding its status. Supervisory Format commands and responses are as
Receive Ready(RR) is used by the primary or secondary station to indicate that it is ready to
receive an information frame and/or acknowledge previously received frames.
Receive Not Ready(RNR) is used to indicate that the primary or secondary station is not ready to
receive any information frames or acknowledgments.
Reject(REJ) is used to request the retransmission of frames.
Selective Reject(SREJ) is used by a station to request retransmission of specific frames. An SREJ
must be transmitted for each erroneous frame; each frame is treated as a separate error. Only
one SREJ can remain outstanding on the link at any one time.
UNNUMBERED FORMAT COMMANDS RESPONSES
The unnumbered format commands and responses are used to extend the number of data link control functions. The
unnumbered format frames have 5 modifier bits which allow for up to 32 additional commands and 32 additional response
functions. Below, 13 command functions, and 8 response functions are described.
Set Normal Response Mode(SNRM) places the secondary station into NRM. NRM does not allow the secondary station to
send any unsolicited frames. Hence the primary station has control of the link.
Set Asynchronous Response Mode(SARM) allows a secondary station to transmit frames without a poll from the primary
Set Asynchronous Balanced Mode(SABM) sets the operational mode of the link to ABM.
Disconnect(DISC) places the secondary station in to a disconnected mode.
Set Normal Response Mode Extended(SNRME) increases the size of the control field to 2 octets instead of one in NRM. This
is used for extended sequencing. The same applies forSARME and SABME.
Set Initialization Mode(SIM) is used to cause the secondary station to initiate a station-specific procedure(s) to initialize its
data link level control functions.
Unnumbered Poll(UP) polls a stations without regard to sequencing or acknowledgment.
Unnumbered Information(UI) is used to send information to a secondary station.
Exchange Identification(XID) is used to cause the secondary station to identify itself and provide the primary station
identifications characteristics of itself.
Reset(RSET) is used to reset the receive state variable in the addressed station.
Test(TEST) is used to cause the addressed secondary station to respond with a TEST response at the first response
opportunity. It performs a basic test of the data link control.
Unnumbered Acknowledgment(UA) is used by the secondary station to acknowledge the receipt and acceptance of
an SNRM, SARM, SABM, SNRME, SARME, SABME, RSET, SIM,or DISC commands.
Disconnected Mode(DM) is transmitted from a secondary station to indicate it is in disconnected mode(non-operational
Request Initialization Mode(RIM) is a request from a secondary station for initialization to a primary station. Once the
secondary station sends RIM, it can only respond to SIM, DSIC, TEST or XID commands.
Request Disconnect(RD) is sent by the secondary station to inform the primary station that it wishes to disconnect from the
link and go into a non-operational mode(NDM or ADM).
Frame Reject(FRMR) is used by the secondary station in an operation mode to report that a condition has occurred in
transmission of a frame and retransmission of the frame will not correct the condition.