Data Communication and
Networks
Lecture 3
Data Link Control
(Part 1)
September 22, 2005
Data Link Layer
Source node
Application
Presentation
Session transport
Network
Data link
Physical
Packets
Frames
Intermediate node
Network
Bits
Data link
Physical
Signals
Destination node
Application
Presentation
Session transport
Network
Data link
Physical
OSI Layer 2 - Data Link Layer
Primary function is to make Layer 1 into what appears to be a channel free of undetected errors
Deals with data in chunks (typically 100s-1000s of bytes) generally called Frames
This layer must create/recognize frame boundaries
Physical layer does not care about frames, only bits
Requires special bit patterns to signal boundaries
May have to deal with possibility of pattern appearing in data
Implements data link control protocols, such High Level
Data Link Control (HDLC)
Encoding Information Frames
Typical Fields in a Frame
Start
Frame
Delimiter
Destination
Address
Source
Address
Frame
Control
Data
Check sum
DLL Operation
Sender
NL correct and ordered
DLL
Retransmit if timeout
CRC
Frame
PL
ACK
CRC
Receiver
ACK if correct
Data Link Layer Services
Flow Control :
pacing between senders and receivers
Error Detection :
errors are caused by signal attenuation and noise.
Receiver detects presence of errors:
it signals the sender for retransmission or just drops the corrupted frame
Error Correction :
mechanism for the receiver to locate and correct the error without resorting to retransmission
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 send 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 data is fragmented into several small frames.
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 2 k
Example Sliding Window
Sliding Window Example
An example of sliding window in action …..
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
Checksum can be a simple XOR operation of bits to be checked
DL protocols use more sophisticated methods, like Cyclic Redundancy Check (CRC)
Cyclic Redundancy Check
For a block of k sequence (FCS) bits transmitter generates n bit
Transmit k+n some number bits which is exactly divisible by
Receive divides frame by that number
If no remainder, assume no error
For math, see Stallings chapter 6
Cyclic Redundancy Check
Example: 16-Bit CRC for HDLC
Performed on Address, Control, Data Fields
Detects a Variety of Error Conditions
Data Message is Represented as a Polynomial, M polynomial of order i = i
(x) = a
0
+ a
1 x + a
2 x 2 + a
3 x 3 + . . . + a i
Data Message = a i a i-1
… a
3 a
2 a
1 a
0 x i where a i
= 0, 1
Start
Frame
Delimiter
Destination
Address
Source
Address
Frame
Control
Data
CRC
CRC Generation
Given a Specific Polynomial G(x) called the generator, and a Data Message M(x), Calculate a Frame Check Sequence (FCS), or Checksum
Append the FCS (Checksum) to the Data
Message for Transmission
At the Receiver, Recalculate the Checksum, and
Check with the Transmitted Value
CRC Algorithm
Multiply x r M(x), where r = degree of G(x)
Add r Zeros to M(x), or Shift M(x) Left
Divide x r M(x)/G(x) = R(x)
R(x) = Reminder of Divide Operation
Transmit x r M(x) + R(x) = T(x)
XOR the Shifted Message and R(x)
At the Receiver, Recalculate the R(x) and Check
Equal to the Transmitted FCS
Errors Occurred in Transmission if Not equal
CRC Error Detection
All Single Bit Errors
All Double Bit Errors
Any Odd Number of Errors
Any Burst Error for Which the Length of the
Burst Error is Less Than the Length of the
Divisor Polynomial, G(x)
Most Larger Burst Errors
Several G(x) Polynomials Have Been Used
Example of G(x) Polynomials
CRC-12
X 12 + X 11 + X 3 + X 2 + X + 1
CRC-16
X 16 + X 15 + X 2 + 1
CRC-CCITT
X 16 + X 15 + X 5 + 1
CRC-32
X 32 + X 26 + X 23 + X 22 + X 16 + X 12 + X 11 + X 10
+ X 8 + X 7 + X 5 + X 4 + X 2 + X + 1
CRC’s Are Implemented in Shift registers
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 rejectioni
Transmitter gets rejectioni
Transmitter retransmits frame subsequent i and all
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 retransmits i and
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 acknowledgement ( i and send 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 logic in transmitter
Selective Reject -
Diagram