HDLC 1
HDLC 1
High-level Data Link Control (HDLC) is a bit-oriented protocol for communication over
point-to-point and multipoint links. It implements the ARQ mechanisms.
Configurations and Transfer Modes: - HDLC provides two common transfer modes that
can be used in different configurations: normal response mode (NRM) and asynchronous
balanced mode (ABM).
• Flag: - The flag is an 8-bit sequence that indicates the start and end of a frame.
The flag's bit pattern is 01111110.
• Address: - The second field of an HDLC frame contains the address of the secondary
station. If a primary station created the frame, it contains a to address. If a
secondary creates the frame, it contains a from address. An address field can be 1
byte or several bytes long, depending on the needs of the network. One byte can
identify up to 128 stations (l bit is used for another purpose). Larger networks
require multiple-byte address fields. If the address field is only 1 byte, the last bit is
always a 1. If the address is more than 1 byte, all bytes but the last one will end
with 0; only the last will end with 1. Ending each intermediate byte with 0 indicates
to the receiver that there are more address bytes to come.
• Control: - It consists of one or two bytes that carry flow and error control
information.
• Payload: - The data from the network layer is carried by the payload. Its length
varies depending on the network.
• FCS (Frame check sequence): - For error detection and error control, it's a 2-byte
or 4-byte frame check sequence. CRC is the standard code (cyclic redundancy code)
and is used for error detection and error control.
Control Field for I-Frames: - I-frames are designed to carry user data from the network
layer. In addition, they can include flow and error control information (piggybacking). The
subfields in the control field are used to define these functions.
• The first bit defines the type. If the first bit of the control field is 0, this means the
frame is an I-frame.
• The next 3 bits, called N(S), define the sequence number of the frame. Note that with
3 bits, we can define a sequence number between 0 and 7; but in the extension
format, in which the control field is 2 bytes, this field is larger.
• The last 3 bits, called N(R), correspond to the acknowledgment number when
piggybacking is used.
• The single bit between N(S) and N(R) is called the P/F bit. The P/F field is a single
bit with a dual purpose. It has meaning only when it is set (bit = 1) and can mean
poll or final. It means poll when the frame is sent by a primary station to a secondary
(when the address field contains the address of the receiver). It means final when
the frame is sent by a secondary to a primary (when the address field contains the
address of the sender).
Control Field for S-Frames: - Supervisory frames are used for flow and error control
whenever piggybacking is either impossible or inappropriate (e.g., when the station either
has no data of its own to send or needs to send a command or response other than an
acknowledgment). S-frames do not have information fields.
• If the first 2 bits of the control field is 10, this means the frame is an S-frame.
• The last 3 bits, called N(R), corresponds to the acknowledgment number (ACK) or
negative acknowledgment number (NAK) depending on the type of S-frame.
• The 2 bits called code is used to define the type of S-frame itself. With 2 bits, we can
have four types of S-frames, as described below:
(i) Receive ready (RR): - If the value of the code subfield is 00, it is an RR
S-frame. This kind of frame acknowledges the receipt of a safe and
sound frame or group of frames. In this case, the value N(R) field defines
the acknowledgment number.
(ii) Receive not ready (RNR): - If the value of the code subfield is 10, it is
an RNR S-frame. This kind of frame is an RR frame with additional
functions. It acknowledges the receipt of a frame or group of frames,
and it announces that the receiver is busy and cannot receive more
frames. It acts as a kind of congestion control mechanism by asking the
sender to slow down. The value of N(R)is the acknowledgment number.
(iii) Reject (REJ): -If the value of the code subfield is 01, it is a REJ
S-frame. This is a NAK frame, but not like the one used for Selective
Repeat ARQ. It is a NAK that can be used in Go-Back-N ARQ to improve
the efficiency of the process by informing the sender, before the sender
time expires, that the last frame is lost or damaged. The value of N(R)
is the negative acknowledgment number.
(iv) Selective reject (SREJ): - If the value of the code subfield is 11,
it is an SREJ S-frame. This is a NAK frame used in Selective Repeat
ARQ. Note that the HDLC Protocol uses the term selective reject instead
of selective repeat. The value of N(R) is the negative acknowledgment
number.
Control Field for U-Frames: - Unnumbered frames are used to exchange session
management and control information between connected devices. Unlike S-frames, U-
frames contain an information field, but one used for system management information,
not user data. As with S-frames, however, much of the information carried by U-frames is
contained in codes included in the control field.
U-frame codes are divided into two sections:
• a 2-bit prefix before the P/F bit and a 3-bit suffix after the P/F bit. Together, these
two segments (5 bits) can be used to create up to 32 different types of U-frames.
Some of the more common types are shown in the following table.