William Stallings
Data and Computer
Communications
Chapter 7
Data Link Control
Requirements for effective data
communication
● Frame synchronization
● Flow control
● Error control
● Addressing
● Control and data on same link
● Link management
Data link protocol satisfies these requirements.
● Flow control
● Error control
● Example: HDLC
Flow Control
● Ensuring the sending entity does not overwhelm
the receiving entity
● Preventing buffer overflow
● Transmission time
● Time taken to emit all bits into medium
● Propagation time
● Time for a bit to traverse the link
Model of Frame Transmission
Stop and Wait
● Source transmits frame
● Destination receives frame and replies with
acknowledgement
● Source waits for ACK before sending next frame
● Destination can stop flow by not sending ACK
● Works well for a few large frames
Fragmentation
● Large block of data may be split into small
frames
● Limited buffer size
● Errors detected sooner (when whole frame received)
● On error, retransmission of smaller frames is needed
● Prevents one station occupying medium for long
periods
● Stop and wait becomes inadequate when there
are multiple frames in a single message.
Bit length of a link
● B = R *(d/V)
Where, B = length of the link in bits; this is the
number of bits present on the link at an instance in
time when a stream of bits fully occupies the link
R = data rate of the link, in bps
d = length, or distance, of the link in meters
● The propagation delay is expressed as the
variable a. Thus, we can express a as
a =B/L
Where, L is the number of bits in the frame (length
of the frame in bits).
Stop and Wait Link Utilization
Sliding Windows Flow Control
● Allow multiple frames to be in transit
● Receiver has buffer W long
● Transmitter can send up to W frames without
ACK
● Each frame is numbered
● ACK includes number of next frame expected
● Sequence number bounded by size of field (k)
● Frames are numbered modulo 2k
Sliding Window Diagram
Example Sliding Window
Sliding Window Enhancements
● Receiver can acknowledge frames without
permitting further transmission (Receive Not
Ready)
● Must send a normal acknowledge to resume
● If duplex, use piggybacking
● If no data to send, use acknowledgement frame
● If data but no acknowledgement to send, send last
acknowledgement number again, or have ACK valid
flag (TCP)
Error Detection
● Additional bits added by transmitter for error
detection code
● Parity
● Value of parity bit is such that character has even
(even parity) or odd (odd parity) number of ones
● Even number of bit errors goes undetected
Cyclic Redundancy Check
● For a block of k bits transmitter generates n bit
sequence
● Transmit k+n bits which is exactly divisible by
some number
● Receive divides frame by that number
● If no remainder, assume no error
● For math, see Stallings chapter 7
Error Control
● Detection and correction of errors
● Lost frames
● Damaged frames
● Automatic repeat request
● Error detection
● Positive acknowledgment
● Retransmission after timeout
● Negative acknowledgement and retransmission
Automatic Repeat Request
(ARQ)
● Stop and wait
● Go back N
● Selective reject (selective retransmission)
Stop and Wait
● Source transmits single frame
● Wait for ACK
● If received frame damaged, discard it
● Transmitter has timeout
● If no ACK within timeout, retransmit
● If ACK damaged,transmitter will not recognize it
● Transmitter will retransmit
● Receive gets two copies of frame
● Use ACK0 and ACK1
Stop and Wait -
Diagram
Stop and Wait - Pros and Cons
● Simple
● Inefficient
Go Back N (1)
● Based on sliding window
● If no error, ACK as usual with next frame
expected
● Use window to control number of outstanding
frames
● If error, reply with rejection
● Discard that frame and all future frames until error
frame received correctly
● Transmitter must go back and retransmit that frame
and all subsequent frames
Go Back N - Damaged Frame
● Receiver detects error in frame i
● Receiver sends rejection-i
● Transmitter gets rejection-i
● Transmitter retransmits frame i and all
subsequent
Go Back N - Lost Frame (1)
● Frame i lost
● Transmitter sends i+1
● Receiver gets frame i+1 out of sequence
● Receiver send reject i
● Transmitter goes back to frame i and retransmits
Go Back N - Lost Frame (2)
● Frame i lost and no additional frame sent
● Receiver gets nothing and returns neither
acknowledgement nor rejection
● Transmitter times out and sends
acknowledgement frame with P bit set to 1
● Receiver interprets this as command which it
acknowledges with the number of the next
frame it expects (frame i )
● Transmitter then retransmits frame i
Go Back N - Damaged
Acknowledgement
● Receiver gets frame i and send
acknowledgement (i+1) which is lost
● Acknowledgements are cumulative, so next
acknowledgement (i+n) may arrive before
transmitter times out on frame i
● If transmitter times out, it sends
acknowledgement with P bit set as before
● This can be repeated a number of times before
a reset procedure is initiated
Go Back N - Damaged Rejection
● As for lost frame (2)
Go Back N -
Diagram
Selective Reject
● 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 login in transmitter
Selective Reject -
Diagram
High Level Data Link Control
● HDLC
● ISO 33009, ISO 4335
Frame Structure
● Synchronous transmission
● All transmissions in frames
● Single frame format for all data and control
exchanges
Frame Structure Diagram
Flag Fields
● Delimit frame at both ends
● 01111110
● May close one frame and open another
● Receiver hunts for flag sequence to synchronize
● Bit stuffing used to avoid confusion with data
containing 01111110
● 0 inserted after every sequence of five 1s
● If receiver detects five 1s it checks next bit
● If 0, it is deleted
● If 1 and seventh bit is 0, accept as flag
● If sixth and seventh bits 1, sender is indicating abort
Bit Stuffing
● Example with
possible errors
Required Reading
● Stallings chapter 7
● Web sites on HDLC, frame relay, Ethernet and
ATM