Data and Computer
Communications
Tenth Edition
by William Stallings
Data and Computer Communications, Tenth
Edition by William Stallings, (c) Pearson
Education - Prentice Hall, 2013
CHAPTER 7
Data Link Control Protocols
“A conversation forms a two-way communication
link; there is a measure of symmetry between the two
parties, and messages pass to and fro. There is a
continual stimulus-response, cyclic action; remarks
call up other remarks, and the behavior of the two
individuals becomes concerted, co-operative, and
directed toward some goal. This is true
communication.”
—On Human Communication,
Colin Cherry
Data Link Control Protocols
Requirements and objectives for effective data
communication between two directly connected transmitting-
receiving stations:
Flow Control
Technique for assuring that a transmitting
entity does not over-whelm a receiving
entity with data
The receiving entity typically allocates a data
buffer of some maximum length for a transfer
When data are received, the receiver must do
a certain amount of processing before
passing the data to the higher-level software
Inthe absence of flow control, the
receiver’s buffer may fill up and overflow
while it is processing old data
Source Destination Source Destination
Frame 1 Frame 1
Frame 1 Frame 1
Frame 2 Frame 2
Frame 2
Frame 3 Frame 3
Time
Frame 3 Frame 3
Frame 4 Frame 4
Frame 4 Garbled
frame
Frame 5 Frame 5
Frame 5 Frame 5
(a) Error-free transmission (b) Transmission with
losses and errors
Figure 7.1 Model of Frame Transmission
Stop-and-Wait Flow Control
Simplest form of flow It is often the case that a source
will break up a large block of
control data into smaller blocks and
transmit the data in many
frames
The buffer size of the receiver
may be limited
The longer the transmission, the
more likely that there will be an
error, necessitating
retransmission of the entire frame
On a shared medium it is usually
desirable not to permit one station
to the medium for an extended
period, thus causing long delays
at the other sending station
t0 T R t0 T R
Frame
t0 + a T R t0 + 1 T R
t0 + 1 T R t0 + a T R
t0 + 1 + a T R t0 + 1 + a T R
ACK
t0 + 1 + 2a T R t0 + 1 + 2a T R
(a) a < 1 (b) a > 1
Figure 7.2 Stop-and-Wait Link Utilization (transmission time = 1; propagation time = a)
Sliding Windows Flow Control
Allows multiple numbered frames to be in transit
Receiver has buffer W long
Transmitter sends up to W frames without ACK
ACK includes number of next frame expected
Sequence number is bounded by size of field (k)
• Frames are numbered modulo 2k
• Giving max window size of up to 2k – 1
Receiver can ACK frames without permitting further
transmission (Receive Not Ready)
Must send a normal acknowledge to resume
If have full-duplex link, can piggyback ACKs
Frames buffered
until acknowledged
Window of frames
Frames already transmitted that may be transmitted
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Frame Window shrinks from Window expands
sequence Last frame Last frame trailing edge as from leading edge
number acknowledged transmitted frames are sent as ACKs are received
(a) Sender's perspective
Window of frames
Frames already received that may be accepted
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Window shrinks from Window expands
Last frame Last frame trailing edge as from leading edge
acknowledged received frames are received as ACKs are sent
(b) Receiver's perspective
Figure 7.3 Sliding-Window Depiction
Source System A Destination System B
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
Figure 7.4 Example of a Sliding-Window Protocol
Error Control Techniques
Lost frames
- a frame fails
to arrive at the
other side
Damaged frames
- frame arrives
but some of
the bits are in
error
Automatic Repeat Request
(ARQ)
Collective name
for error control
mechanisms
Effect of ARQ is to
turn an unreliable
data link into a
reliable one
Stop and Wait ARQ
A B
Frame trans-
mission time
Propagation time
ACK trans-
mission time
Time
Time-out interval
Frame 0 lost;
A retransmits
Time-out interval
ACK0 lost;
A retransmits
B discards
duplicate frame
Figure 7.5 Stop-and-Wait ARQ
Go-Back-N ARQ
Most commonly used error control
Based on sliding-window
Use window size to control number of outstanding
frames
While no errors occur, the destination will
acknowledge incoming frames as usual
RR=receive ready, or piggybacked acknowledgment
If
the destination station detects an error in a frame, it
may send a negative acknowledgment
REJ=reject
Destination will discard that frame and all future frames
until the frame in error is received correctly
Transmitter must go back and retransmit that frame and all
subsequent frames
Selective-Reject (ARQ)
Also called selective retransmission
Only rejected frames are retransmitted
Subsequent frames are accepted by the receiver
and buffered
Minimizes retransmission
Receiver must maintain large enough buffer
More complex logic in transmitter
Less widely used
Useful for satellite links with long propagation
delays
A B A B
discarded by buffered by
receiver receiver
4 retransmitted
4, 5, and 6
retransmitted
Timeout
Timeout
(a) Go-back-N ARQ (b) Selective-reject ARQ
Figure 7.6 Sliding-Window ARQ Protocols
High Level Data Link Control
(HDLC)
HDLC Data Transfer Modes
Flag Address Control Information FCS Flag
8 8 8 or 16 variable 16 or 32 8
bits extendable
(a) Frame format
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 8n
0 0 1
(b) Extended Address Field
1 2 3 4 5 6 7 8
I: Information 0 N(S) P/F N(R)
N(S) = Send sequence number
N(R) = Receive sequence number
S: Supervisory 1 0 S P/F N(R) S = Supervisory function bits
M = Unnumbered function bits
P/F = Poll/final bit
U: Unnumbered 1 1 M P/F M
(c) 8-bit control field format
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Information 0 N(S) P/F N(R)
Supervisory 1 0 S 0 0 0 0 P/F N(R)
(d) 16-bit control field format
Figure 7.7 HDLC Frame Structure
Original Pattern:
111111111111011111101111110
After bit-stuffing
1111101111101101111101011111010
Figure 7.8 Bit Stuffing
Address Field
Identifies secondary station that transmitted or
will receive frame
Usually 8 bits long
May be extended to multiples of 7 bits
Leftmost bit indicates if is the last octet (1) or not (0)
Address 11111111 allows a primary to broadcast
a frame for reception by all secondaries
Flag Address Control Information FCS Flag
8 8 8 or 16 variable 16 or 32 8
bits extendable
(a) Frame format
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 8n
0 0 1
(b) Extended Address Field
1 2 3 4 5 6 7 8
I: Information 0 N(S) P/F N(R)
N(S) = Send sequence number
N(R) = Receive sequence number
S: Supervisory 1 0 S P/F N(R) S = Supervisory function bits
M = Unnumbered function bits
P/F = Poll/final bit
U: Unnumbered 1 1 M P/F M
(c) 8-bit control field format
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Information 0 N(S) P/F N(R)
Supervisory 1 0 S 0 0 0 0 P/F N(R)
(d) 16-bit control field format
Figure 7.7 HDLC Frame Structure
HDLC defines three types of frames, each with a different control field format
Information frames (I-frames)
Carry the data to be transmitted for the user
Flow and error control data, using the ARQ mechanism, are piggybacked on an
information frame
Supervisory frames (S-frames)
• Provide the ARQ mechanism when piggybacking is not used
Unnumbered frames (U-frames)
• Provide supplemental link control functions
Control Field
Use of poll/final (P/F) bit depends on context
In command frames P bit is set to 1 to solicit
(poll) a response from the peer HDLC entity
In response frames F bit is set to 1 to indicate
the response frame transmitted as a result of a
soliciting command
The basic control field for S- and I-frames uses
3 bit sequence numbers
An extended control field can be used that employs
7-bit sequence numbers
U-frames always contain an 8-bit control field
Information and Frame Check
Sequence (FCS) Fields
Name Command/ Description
Response
Information (I) C/R Exchange user data
Supervisory (S)
Receive ready (RR) C/R Positive acknowledgment; ready to receive I-
frame
Receive not ready (RNR) C/R Positive acknowledgment; not ready to receive
Reject (REJ)
Selective reject (SREJ)
C/R
C/R
Negative acknowledgment; go back N
Negative acknowledgment; selective reject
Table 7.1
Unnumbered (U)
Set normal response/extended mode C Set mode; extended = 7-bit sequence numbers
(SNRM/SNRME)
Set asynchronous response/extended
mode (SARM/SARME)
C Set mode; extended = 7-bit sequence numbers HDLC
Set asynchronous balanced/extended
mode (SABM, SABME)
C Set mode; extended = 7-bit sequence numbers Commands
Set initialization mode (SIM) C Initialize link control functions in addressed
station and
Disconnect (DISC) C Terminate logical link connection
Unnumbered Acknowledgment (UA) R Acknowledge acceptance of one of the set-mode
commands
Responses
Disconnected mode (DM) R Responder is in disconnected mode
Request disconnect (RD) R Request for DISC command
Request initialization mode (RIM) R Initialization needed; request for SIM command
Unnumbered information (UI) C/R Used to exchange control information
Unnumbered poll (UP) C Used to solicit control information
Reset (RSET) C Used for recovery; resets N(R), N(S)
Exchange identification (XID) C/R Used to request/report status
Test (TEST) C/R Exchange identical information fields for testing (Table can be found on page
Frame reject (FRMR) R Report receipt of unacceptable frame 230 in the textbook)
HDLC Operation
Consists of the exchange of I-frames, S-frames and
U-frames
Involves three phases:
N(S) N(R)
A B A B A B
Time-
out
(a) Link setup and disconnect (b) Two-way data exchange (c) Busy condition
A B A B
Time-
out
(d) Reject recovery (e) Timeout recovery
Figure 7.9 Examples of HDLC Operation
Summary
Flow control High-level data link
Stop-and-wait flow control (HDLC)
control Basic characteristics
Sliding-window flow Frame structure
control Operation
Error control
Stop-and-wait ARQ
Go-back-N ARQ
Selective-reject ARQ