HDLC - A Technical Overview
High-Level Data Link Control, also know as HDLC,
is a bit oriented, switched and non-switched protocol. It is a data link
control protocol, and falls within layer 2, the Data Link Layer, of the
Open Systems Interface(OSI) model as shown in figure 1.
Figure 1
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, and switched or non-switched channels. The procedures outlined
in HDLC are designed to permit synchronous, code-transparent data transmission.
Other benefits of HDLC are that the control information is always in the
same position, and specific bit patterns used for control differ dramatically
from those in representing data, which reduces the chance of errors.
It has also led to many subsets. Two subsets widely
in use are Synchronous Data Link Control(SDLC) and Link Access Procedure-Balanced(LAP-B).
This technical overview will be concerned with the
following aspects of HDLC:
HDLC STATIONS AND CONFIGURATIONS
HDLC specifies the following three types of stations for data link control:
PRIMARY STATION
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).
SECONDARY STATION
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.
COMBINED 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 three types of configurations for
the three types of stations:
UNBALANCED 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:
An example of an unbalanced configuration can be
found below in figure 2.a
BALANCED 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:
An example of a balanced configuration can be found
below in figure 2.b
Figure 2.a An unbalanced configuration
Figure 2.b A balanced configuration
SYMMETRICAL CONFIGURATION
This third type of configuration is not widely in
use today. It consists of two independent point to point, unbalanced station
configurations. In this configurations, each station has a primary and
secondary status. Each station is logically considered as two stations.
HDLC Operational Modes
HDLC offers three different modes of operation. These three modes of operations are:
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 configuration.
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. This mode can reduce overhead on the link, as
no frames need to be transferred in order to give the secondary station
permission to initiate a transfer. However some limitations do exist. Due
to the fact that this mode is Asynchronous, the secondary station must
wait until it detects and idle channel before it can transfer any frames.
This is when the ARM link is operating at half-duplex. If the ARM link
is operating at full-duplex, the secondary station can transmit at any
time. 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 Non-Operational Modes
HDLC also defines three non-operational modes. These three non-operational modes are:
The two disconnected modes(NDM and ADM) differ from
the operational modes in that the secondary station is logically disconnected
from the link(note the secondary station is not physically disconnected
from the link). The IM mode is different from the operations modes in that
the secondary station's data link control program is in need of regeneration
or it is in need of an exchange of parameters to be used in an operational
mode.
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 frames |
Frame Check Sequence( FCS ) |
16 or 32 bits |
Closing Flag Field( F ) |
8 bits |
THE FLAG FIELD
Every frame on the link must begin and end with a flag sequence field(F). Stations attached to the data link must continually listen for a flag sequence. The flag sequence is an octet looking like 01111110. Flags are continuously transmitted on the link between frames to keep the link active. Two other bit sequences are used in HDLC as signals for the stations on the link. These two bit sequences are:
The time between the transmission of actual frames
is called the interframe time fill. The interframe time fill is accomplished
by transmitting continuous flags between frames. The flags may be in 8
bit multiples.
HDLC is a code-transparent protocol. It does not
rely on a specific code for interpretation of line control. This means
that if a bit at position N in an octet has a specific meaning, regardless
of the other bits in the same octet. If an octet has a bit sequence of
01111110, but is not a flag field, HLDC uses a technique called bit-stuffing
to differentiate this bit sequence from a flag field. Once the transmitter
detects that it is sending 5 consecutive 1's, in inserts a 0 bit to prevent
a "phony" flag.
At the receiving end, the receiving station inspects
the incoming frame. If it detects 5 consecutive 1's it looks at the next
bit. If it is a 0, it pulls it out. If it is a 1, it looks at the 8th
bit. If the 8th bit is a 0, it know an abort or idle signal
has been sent. It then proceeds to inspect the following bits to determine
appropriate action. This is the manner in which HDLC achieves code-transparency.
HDLC is not concerned with any specific bit code inside the data stream.
It is only concerned with keeping flags unique.
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:
The frame is used to transmit end-user data between two
devices.
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 receiver.
THE FRAME CHECK SEQUENCE FIELD
This field contains a 16 bit, or 32 bit cyclic redundancy
check. It is used for error detection.
HDLC COMMANDS AND RESPONSES
The set of commands and responses in HDLC is summarized
in table 1.
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 follows:
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.
TABLE 1 HDLC Commands and Responses
Information Transfer |
Information Transfer |
Format Commands |
Format Responses |
I - Information | I - Information |
Supervisory Format |
Supervisory Format |
Commands |
Responses |
RR - Receive ready | RR - Receive ready |
RNR - Receive not ready | RNR - Receive not ready |
REJ - Reject | REJ - Reject |
SREJ - Selective reject | SREJ - Selective reject |
Unnumbered Format |
Unnumbered Format |
Commands |
Commands |
SNRM - Set Normal Response Mode | UA - Unnumbered Acknowledgment |
SARM - Set Asynchronous Response Mode | DM - Disconnected Mode |
SABM - Set Asynchronous Balanced Mode | RIM - Request Initialization Mode |
DISC - Disconnect | RD - Request Disconnect |
SNRME - Set Normal Response Mode Extended | UI - Unnumbered Information |
SARME - Set Asynchronous Response Mode Extended | XID - Exchange Identification |
SABME - Set Asynchronous Balanced Mode Extended | FRMR - Frame Reject |
SIM - Set Initialization Mode | TEST - Test |
UP - Unnumbered Poll | |
UI - Unnumbered Information | |
XID - Exchange identification | |
RSET - Reset | |
TEST - Test |
HDLC SUBSETS
Many other data link protocols have been derived from HDLC. However, some of them reach beyond the scope of HDLC. Two other popular offsets of HDLC are Synchronous Data Link Control(SDLC), and Link Access Protocol, Balanced(LAP-B). SDLC is used and developed by IBM. It is used in a variety of terminal to computer applications. It is also part of IBM's SNA communication architecture. LAP-B was developed by the ITU-T. It is derived mainly from the asynchronous response mode(ARM) of HDLC. It is commonly used for attaching devices to packet-switched networks.
Bibliography
Texts
Internet Web Sites
http://www.cs.indiana.edu/l/www/classes/a247-whit/misc.html