Download as pdf or txt
Download as pdf or txt
You are on page 1of 38

Data and Computer

Communications

Tenth Edition
by William Stallings

Data and Computer Communications, Tenth


Edition by William Stallings, (c) Pearson
Education, 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:

Frame synchronization

Flow control

Error control

Addressing

Control and data

Link management
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
➢ It is often the case that a
➢ Simplest form of flow source will break up a large
control block of 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 use 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
W= 7 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

F0

F1

F2
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

RR 3 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

F3

F4
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
F5

F6
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 4
RR

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
Error Positive
detection acknowledgment
to arrive at the
other side

Damaged frames
Negative
- frame arrives
Retransmission acknowledgment but some of
after timeout and the bits are in
retransmission
error
Automatic Repeat Request
(ARQ)
➢ Collective name
for error control Stop-and-wait

mechanisms
Go-back-N
➢ Effect of ARQ is to
turn an unreliable
Selective-reject
data link into a
reliable one
Versions of ARQ
Stop and Wait ARQ
Source
transmits
single frame

• No other data can be sent until


Waits for ACK destination’s reply arrives

If frame • Transmitter has


received is timeout
damaged, • If no ACK within
discard it timeout, retransmit

If ACK is • Transmitter will retransmit


damaged, • Receiver gets two copies of
frame
transmitter will • Use alternate numbering
not recognize and ACK0 / ACK1
0
AC K

frame
0

Time
Time-out interval

Frame 0 lost;
A retransmits

frame
0
1
AC K

frame
1
0
Time-out interval AC K

ACK0 lost;
A retransmits

frame
1
0 B discards
ACK 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
Selective-Reject (ARQ)
➢ Window Size Limitation
⚫ For a k-bit sequence number, the maximum
window size is limited to 2k-1.

0 1 2 3 4 5 6 7 0 1 2 3 4 5 ...
S
RR7 lost
k=3, W=7

retx
R

0 1 2 3 4 5 6 7 0 1 2 ...
S
RR4 lost
k=3, W=4 retx
R x
A B A B
f r am fram
e0 e0

f r am fram
e1 e1

f r am fram
e2 2 e2 2
RR RR

fram fram
e3 e 3
fram f r am
e 4 4 e4 4
RR RR

fram f r am
e5 e5
f r am fram
e6 4 e6 J4
REJ discarded by SRE buffered by
receiver receiver
f r am 4 retransmitted fram
4, 5, and 6 e4 e4
retransmitted
fram fram
e 5 5 e 7 7
RR RR

f r am fram
e6 e0
fram fram
Timeout e7 7 e 1 1
RR RR
Timeout
f r am fram
e0 e2

RR RR
(P b (P b
it = it =
1 ) 1 )
1
RR RR
3

fram fram
e 1 e3

fram fram
e2 e 4

(a) Go-back-N ARQ (b) Selective-reject ARQ

Figure 7.6 Sliding-Window ARQ Protocols


Performance Issues
➢ Error-free Stop and Wait
Performance Issues
➢ Error-free Sliding Window
➢ Normalize Ftime =1 → a=Tpropagation

➢ Where 2a+1 is the time needed to send a frame and receive its ack.
Performance Issues
➢ Stop-and-wait ARQ
➢ Some frames are repeated because of bit errors.
Performance Issues
➢ Stop-and-wait ARQ
➢ Assume ACK and NAK are never in error →
probability that it will take k attempts to send a
frame is:
Performance Issues
➢ Selective-Reject ARQ
Performance Issues
➢ Go-back N ARQ
Performance Issues
➢ Go-back N ARQ
High Level Data Link Control
(HDLC)
Most important data link control protocol

Specified as ISO 3009, ISO 4335


Basis for other data link control protocols

Station types
Primary - controls operation of link
Secondary - under control of primary station
Combined - issues commands and responses

Link configurations

Unbalanced - 1 primary, multiple secondary


Balanced - 2 combined stations
HDLC Data Transfer Modes
Normal Response Mode (NRM)
• Used with an unbalanced configuration
• Primary initiates transfer
Asynchronous Balanced Mode (ABM)
• Used with a balanced configuration
• Either station initiates transmission
• Has no polling overhead
• Most widely used

Asynchronous Response Mode (ARM)


• Used with unbalanced configuration
• Secondary may transmit without permission from primary
• Rarely used
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
➢ This field is not needed for point-to-point links
(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
Frame Check
Information Field Sequence Field
(FCS)
Error detecting code calculated
Present only in I-frames and
from the remaining bits of the
some U-frames
frame, exclusive of flags

Must contain an integral number The normal code is the 16 bit


of octets CRC-CCITT

Optional 32-bit FCS, using CRC-


32, may be employed if the frame
Variable length
length or the line reliability
dictates this choice
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 C Set mode; extended = 7-bit sequence numbers HDLC
mode (SARM/SARME)
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 254 in the textbook)
HDLC Operation
➢ Consists of the exchange of I-frames, S-frames and
U-frames
➢ Involves three phases:

Signals the other side The N(S) and N(R) fields Either module can
that initialization is of the I-frame are initiate
requested sequence numbers that • Either on its own
Specifies which of the support flow control initiative if there is
three modes (NRM, and error control some sort of fault, or
ABM, ARM) is An HDLC module will at the request of its
Initialization

Disconnect
Data Transfer
requested number them higher-layer user
Specifies whether 3- or sequentially Sends disconnect
7-bit sequence numbers Receive Ready (RR) is (DISC) frame
are to be used used when there is no Remote entity replies
reverse user data traffic with a UA
Any outstanding
unacknowledged
I-frames may be lost
• Recovery is the
responsibility of
higher layers
N(S) N(R)
A B A B A B
SABM I, 0, 0
I , 3, 0
Time- I, 0, 1 RNR, 4
out
I, 1, 1
P
SABM I, 2, 1 RR, 0,
RN R, 4
UA I, 1, 3 ,F
I, 3, 2
P
RR, 0,
I, 2, 4
RR, 4,
F
DISC I, 3, 4

UA RR, 4 I , 4, 0

(a) Link setup and disconnect (b) Two-way data exchange (c) Busy condition

A B A B
I, 3, 0 I, 2, 0

I, 4, 0 I, 3, 0 RR, 3

I, 5, 0 Time-
out
REJ, 4
RR, 0,
P
I, 4, 0
F
I, 5, 0 RR, 3,
I, 3, 0
I , 6, 0
R R, 4

(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

You might also like