CS 313 Introduction to
Computer Networking &
Telecommunication
Data Link Layer Part I –
Designing Issues and
Elementary Protocols
Chi-Cheng Lin, Winona State University
Topics
Introduction
Framing
Error Control
Flow Control
Elementary Data Link Protocols
2
Introduction
Algorithms to achieve reliable, efficient
communication between two adjacent
machines at the layer
Adjacent:
Physically connected by a communication
channel
3
Introduction
Issues
Providing well-defined services to network
layer
Framing
Determining how bits are grouped into frames
Error control
Flow control
4
Functions of the Data Link Layer
Relationship between packets and
frames.
5
Services to Network Layer
Transferring data between network
layers of machines
6
Services
Unacknowledged connectionless service
Appropriate for
Low error rate
Let higher layer(s) recover errors
Real-time traffic, e.g., speech, video
Most LANs, such as Ethernet
Acknowledged connectionless service
Useful over unreliable channels
Each frame sent individually acknowledged
e.g., wireless systems, e.g. 802.11 (WiFi)
7
Services
Acknowledged connection-oriented
service
Guarantees
Each frame sent is received without error
All frames sent are received in right order
Network layer always receives correct packets
in the order in which the packets were sent
Three phases:
Connection establishment
Variables and counters initialization
Frame transmission
Connection release
Variables, buffers, resources freed up
8
Framing
Fact
Raw bit stream delivered by physical layer
is not error free
Data link layer detects/corrects errors
Framing
Computing checksum
Handling error if any
9
Framing
Approaches
Byte count
Flag bytes with byte stuffing
Flag bits with bit stuffing
Physical layer coding violations
10
Character Count
A field in header specifies number of
characters in a frame.
Problem?
11
Flag Bytes with Byte Stuffing
A frame delimited by flag bytes
Four examples of byte sequences before
and after stuffing
12
Flag Bits with Bit Stuffing
Each frame begins and ends with special
bit pattern (flag byte): 01111110
Problem: 6 consecutive 1s in data
Solution: Bit Stuffing: inserting a 0 after 5
consecutive 1s
Used in USB
Original Data
After
Stuffing
After received
and destuffed
13
Physical Layer Coding Violations
Encoding on physical medium
Framing by invalid physical code
Use some code that does not represent 0
nor 1
Example
Manchester encoding in classic Ethernet
Combination of approaches is possible
E.g., Ethernet and 802.11 use preamble
(well-defined pattern) + byte count
14
Error Control
Using acknowledgement
Positive
Negative
Problem: In some cases, sender waits
for acknowledgement forever
Solution: Timer
Problem: Duplicate transmission
Solution: Sequence number
15
Positive Acknowledgement
Sender sends a message, waits for
acknowledgement from receiver, and
then sends next message
There’s no free lunch, though
overhead, delay
How does it work?
16
Reliability and Acknowledgement
Case 1: no error
Case 2: data lost
Sender Receiver
Time
Data
Sender
Time
Receiver
Data
X
Timeout
Ack.
Data
Ack.
Timeout and retransmission
17
Reliability and Acknowledgement
Case 3: data error
Sender
Time
Case 4: ack. lost
Receiver
Data
Time
Error
Timeout
Sender
Data
Ack.
Timeout and retransmission
Timeout
Receiver
Data
X
Data
Ack.
New problem? Duplicate
Solution: Sequence number
18
Flow Control
Needed
Problem
When frames are transmitted faster than
receiver can accept, frames will be lost
Solution
Flow control by feedback mechanism
19
Elementary Data Link Protocols
Key Assumptions
Network, data link, and physical layers are
independent processes communicating by
sending messages
Machine A wants to send a long stream of
data to machine B over a reliable,
connection-oriented service
20
Implementation of Physical, Data
Link, and Network Layers
21
Data Structures and Primitives
22
Data Structures and Primitives
23
Data Structures and Primitives
24
Unrestricted Simplex Protocol
Utopia protocol
Assumptions
Unidirectional data transmission
Transmitting/receiving network layers are
always ready
Processing time is ignored
Infinite buffer space
No errors
25
Unrestricted Simplex Protocol - Sender
26
Unrestricted Simplex Protocol - Receiver
27
Simplex Stop-and-Wait Protocol
Assumptions
Unidirectional data transmission
Transmitting/receiving network layers are
always ready
Finite processing speed
Finite buffer capacity
No errors
Problem: Sender sends too fast
Stop-and-wait
Senders sends one frame and then waits
for an acknowledgement before processing
28
Simplex Stop-and-Wait Protocol - Sender
29
Simplex Stop-and-Wait Protocol - Receiver
30
Simplex PAR Protocol
For noisy channel
Positive acknowledgement w/
retransmission (PAR)
Sender waits for a positive
acknowledgement before advancing to
the next data item
A. k. a. ARQ (Automatic Repeat
reQuest)
31
PAR Protocol
Assumptions
Unidirectional data transmission
Transmitting/receiving network layers are
always ready
Finite processing speed
Finite buffer capacity
Errors, can be detected
Timer + sequence number
Size (i.e., # bits) of sequence number?
32
PAR Protocol – Sender
33
PAR Protocol – Sender (Cont’d)
34
PAR Protocol – Receiver
35