Data Link Layer Services and Protocols
Data Link Layer Services and Protocols
Protocols
Arzad A. Kherani
(alam@cse.iitd.ac.in)
Dept. of Computer Sc. And Engg.
Indian Institute of Technology Delhi
Topics in Networking 1
Outline
Frame encoding
Error detection and recovery
Data Link Protocols
Protocol analysis
– Performance
– Verification for correctness
Topics in Networking 2
Data link services
Operates between two neighboring devices
Provides a capability for higher-layer entities to send “packets”
– A packet is a sequence of bits, with well-identified “start” and “end”
The packet is itself encapsulated into a “frame”, adding to it
“header” and “trailer”
Topics in Networking 3
Data link services (2)
Service
Network boundary
layer
Data link
layer
Physical
layer Data link protocol
Topics in Networking 4
Data link services (3)
There is one data link for each physical link
In a router, for instance:
Topics in Networking 5
Data link services
Connection-less service
– Un-acknowledged service
Useful in case of low errors, and for real-time applications
– Acknowledged service
Used in wire-less networks
Frames that are not acked may be re-sent
Connection-oriented service
– acknowledged
Ensures delivery of frames
Topics in Networking 6
Framing
Link layer packet = frame
Problem: how to recognize beginning
and end of frame?
Three methods
– byte counting (DDCMP)
– bit stuffing (X.25 Level 2, 802.x)
– byte stuffing (BISYNCH, IMP-IMP)
Topics in Networking 7
Framing
Solution based on counting bits/characters
Topics in Networking 8
Framing
Solution based on flags (01111110) and bit
stuffing
Bit string,
suitably bit-stuffed
Received,
interpreted bit string
Topics in Networking 9
Bit Stuffing (2)
Frame beginning and end marked by special
bit string ( 01111110)
If 5 1's in data to be sent, sender inserts 0
If receiver sees 5 1's check next bit(s)
– if 0, remove it (stuffed bit)
– if 10, end of frame marker (01111110)
– if 11, error (7 1's cannot be in data)
Topics in Networking 10
Framing
Solution based on flag characters, byte stuffing
Special characters used for control
Topics in Networking 11
Byte Stuffing Problems
Topics in Networking 12
Error detection and recovery
Two approaches:
– error correction codes
quick, but ineffective in several cases:
– temporary dislocation
– frame size is large, and error rate is high
– burst errors
expensive
– error detection and recovery using re-transmission
the preferred solution today
– efficient
Topics in Networking 13
Error detection
Hamming distance between pair of codes
let message of length m 2m distinct messages
with r redundant bits, codeword is of length n = m + r
Topics in Networking 14
Hamming codes
Hamming distance for code based on parity bit is 2
resulting capability: detect 1 error, correct 0 errors
Result:
– to detect d errors, the Hamming distance must be d+1
– to correct d errors, the Hamming distance must be at least
2d +1
d
d
Topics in Networking 15
Hamming codes (2)
Consider 7 bit data, 4 redundancy bits, codeword is 11 bits
message bits are numbered 3, 5, 6, 7, 9, 10, 11
redundancy bits are numbered 1, 2, 4, 8
Topics in Networking 16
Error detection using block codes
Block of data is re-written as a matrix, say 4 x 8
last row is parity bits
bits are transmitted row-by-row, including parity bits
code is capable of detecting a burst of errors of length n
column --> 1 2 3 4 5 6 7 8
row 1 1 0 1 1 0 0 1 1
row 2 0 0 1 0 0 0 1 0
row 3 1 1 1 0 0 1 1 0
row 4 1 1 0 0 1 1 0 0
parity bits 1 0 1 1 1 0 1 1
Topics in Networking 17
Polynomial codes
Also known as Cyclic Redundancy Codes (CRC)
Note, all arithmetic is modulo-2
0
Yes no error = /G(x)
No error R(x) = T(x) + E(x)
Topics in Networking 18
Polynomial codes (2)
Error detection capability depends upon G(x)
1 bit error R(x) = T(x) + xi
R(x)/G(x) = 0 iff E(x)/G(x) = 0
E(x)/G(x) 0 if G(x) has 2 or more terms
single errors can always be detected
Similarly, two errors can always be detected if G(x) does not divide
xk + 1
Again, if G(x) is divisible by x+1 then an odd number of errors can
be detected
Polynomial codes with r CRC bits will detect all bursts of length r or
less
etc., etc.
Topics in Networking 19
Polynomial codes (3)
International, IEEE standards
IEEE 802 standard
G(x) = x32 + x26 + x23 + x22 + x16 + x12 + x11 +
x10 + x8 + x7 + x5 + x4 + x2 + x1 + 1
it is capable of detecting bursts of length up
to 32, and all odd number of errors, and even
no of error with high probability
Topics in Networking 20
Error recovery
Error detection, followed by re-transmissions,
etc.
Efficient
Simultaneously address problem of “flow
control”
Topics in Networking 21
Elementary data link protocols
Broad objective of data link protocol:
– Error-free, loss-free, duplication-free and in-sequence
transfer of user data packets between network entities
– flow-controlled
– transfer user data packets in both directions
Physical layer
Topics in Networking 22
Data link modules
Network entity Network entity
Data link
sender receiver Data link
entity entity
receiver sender
Physical Physical
layer entity layer entity
Full-duplex channel
Topics in Networking 23
Data link modules
We consider several protocols. But to begin with we consider
moving data in one direction, only
Data link
sender receiver Data link
entity entity
Physical Physical
layer entity layer entity
HALF-duplex channel
Topics in Networking 24
Data link protocol
Assumptions:
– errors during transmission
– processing capacity at receiver end
– buffer capacity at receiver end
– whether the underlying physical channel is half- or
full-duplex
we will make nice assumptions to begin with,
but move towards realistic assumptions later
Topics in Networking 25
Simple data link protocol: Utopia
Assume no errors, infinite processing capacity and buffer space
at receiver end, and half-duplex channel
F_1
F_2
F_3
F_4
Sender, A Receiver, B
Topics in Networking 27
Simple data link protocol: Utopia (3)
The receiver’s end
Topics in Networking 28
Definitions of data types/structures
Topics in Networking 29
Definition of procedures
Topics in Networking 30
Simple data link protocol: Utopia (4)
Network entity Network entity
Physical layer
Topics in Networking 31
Flow control: problem and its solution
Flow control --> limit the rate at which a sender can send
data to one which is consistent with the receiver’s ability to
process incoming data
Two approaches to solving it:
– rate-based: determine the minimum rate at which receiver can
process incoming data
Topics in Networking 32
Stop and wait protocol
Assume
? no errors, FINITE processing capacity, FINITE buffer
space at receiver end, and half-duplex channel
F_1
ack
F_2
ack
F_3
ack
Sender, A Receiver, B
Physical layer
Topics in Networking 34
PAR protocol for noisy channels
PAR protocol addresses:
– flow control
– noisy channel
based on “positive acks” and re-transmissions
Topics in Networking 35
PAR protocol
F_1
ack
F_2
ack
F_3
ack
Timer runs out F_3
ack
Sender, A Receiver, B
Topics in Networking 36
PAR protocol
Data Frames are suitably numbered 0, 1, 0, 1, …
Acks are not numbered
F_0
ack
F_1
ack
F_0
ack
Timer runs out F_0
ack
Sender, A Receiver, B
Topics in Networking 37
PAR protocol (sender)
Topics in Networking 38
PAR protocol (receiver)
Topics in Networking 39
PAR protocol
Network entity Network entity
Physical layer
Topics in Networking 40
PAR protocol
If the underlying physical layer is full-duplex, then the protocol fails
Pkt 1 F_0
Pkt 1
Pkt 3 F_0
ack
Pkt 4 F_1
Pkt 4
ack
Sender, A Receiver, B
Topics in Networking 41
Alternating bit protocol
PAR protocol, with numbered acks
Pkt 1 F_0
Pkt 1
Ack_0
Pkt 2 F_1
Ack_0
Sender, A Receiver, B
Topics in Networking 42
Alternating bit protocol
Topics in Networking 43
Alternating bit protocol
Topics in Networking 44
Alternating bit protocol
Two possibilities:
Topics in Networking 45
Alternating bit protocol
Use link A B to carry data from A to B, and acks from B to A
and use link B A to carry data from B to A, and acks from A to
B
Piggyback acks onto data frames, if one has data to send
Else, just an ack
Redundant acks are OK
An ack takes the form “I am waiting to receive data frame no. X”
Introduce a field for frame type, “data frame” or “ack frame”
Topics in Networking 46
Performance of PAR protocol
Link utilization
Utilization = L / (L+b*R), where
L = size of data frame
b = data rate
R is round-trip delay
For a satellite channel, let L = 10K bits, b = 100 Kbps, R=500ms
Utilization is 10K / (10K + 50K) = 1/6
For a fibre-optic channel, let L = 10K bits, b = 100 Mbps, R = 1ms
Utilization is 10K / (10K + 100K) = 1/11
Topics in Networking 47
Pipelining
Topics in Networking 48
Pipelining, with error recovery
Two approaches to recover from loss of data frame:
– go-back n
– selective repeat
Topics in Networking 49
Pipelining, with error recovery
Go-back n scheme:
Topics in Networking 50
Pipelining, with error recovery
Selective repeat
Topics in Networking 51
Sliding window protocols
Each data frame is sequentially numbered 0
through 2n-1
Sender maintains “transmit window”
indicating:
– which data frames can be sent
– which data frames have been sent
receiver maintains a “Receive window”
– which data frames can it receive
– which data frames have been received
Topics in Networking 52
Sliding window protocols
Transmit window:
– size = 4, waiting for acks for data frames 1, 2, 3, frame 4 not sent
0 1 2 3 4 5 6 7
Receive window:
– size = 3, ack for frame 1 sent, data frame 3 received, waiting for
frames 2 and 4
0 1 2 3 4 5 6 7
Topics in Networking 53
Sliding window protocols
Assuming sequence numbering 0 .. 7
– Go back n protocol:
Transmit window is size, say 7
receive window is size 1
– selective repeat protocol:
transmit window is size 4
receive window is size 4
Topics in Networking 54
Go back n protocol: declarations
Topics in Networking 55
Go back n protocol: more declrations
Topics in Networking 56
Go back n protocol: initializations
Topics in Networking 57
Go back n protocol (loop)
Topics in Networking 58
Go back n protocol: event processing
Topics in Networking 59
Go back n protocol: event processing
Topics in Networking 60
Go back n protocol: event processing
Topics in Networking 61
Go back n protocol
Buffer requirements
– at sender’s end: N-1, where seq no is 0 .. N-1
– at receiver’s end: 1
Go-back n works well when error are
infrequent
– Because several frames need to be re-transmitted
when an error occurs
Topics in Networking 62
Select Repeat Protocol
Sequence numbering: 0 through n-1
Transmit window size is n/2
Receive window size is n/2
Topics in Networking 63
Select Repeat Protocol
Topics in Networking 64
Select Repeat Protocol
Topics in Networking 65
Select Repeat Protocol
Topics in Networking 66
Select Repeat Protocol
Topics in Networking 67
Protocol Analysis
Performance
Verification
Topics in Networking 68
Protocol Performance
Performance
– Delay
– Efficient use of available bandwidth
Topics in Networking 69
Channel utilization
It can be shown for “stop-and-wait” protocol:
U = F1 * F2 * F3
where
F1 = D/ (H+D)
F2 = (1-E)(H+D) * (1-E)D
F3 = (H+D) / (H+D+CT)
Above,
D, H are resp. length of data and header (or Ack)
E is bit-error-rate (BER)
C is channel capacity
T is timer interval
Topics in Networking 70
Channel utilization
Channel utilization in “stop-and-wait” protocol
is maximum when
Doptimum = (H+CT)/E
Topics in Networking 71
Channel utilization
Channel utilization in “sliding-window”
protocols is complex. Consider:
– No error, large Tx window
– No error, small Tx window
– With possibility of errors, large Tx window
– With possibility of errors, small Tx window
Topics in Networking 72
Channel utilization
What is a large enough window size?
W > 1 + 2 C I / (D+H)
where I = propagation delay + interrupt handling time
Topics in Networking 73
Channel utilization
Channel utilization in “sliding-window” when
there is no error, large Tx window
U = D / (D+H)
Topics in Networking 74
Channel utilization
Channel utilization in “sliding-window” when
there may be errors, but Tx window is small
U = D/(D+H) * (1-L)
where L is the probability that a frame or an ack to
it is lost
Channel utilization in “sliding-window” when
there may be errors, but Tx window is small
U = D/(D+H) * (1-L) * W/(1 + 2 C I / (D+H))
Topics in Networking 75
Channel utilization
C*I is also the “delay-BW product”,
And CI/F is the delay-BW product in terms of
no of frames
Window size
Topics in Networking 76
Protocol Verification
Verification
– Formal specification
– Verification of protocol design
– Conformance of an implementation to a given
design
Topics in Networking 77
Protocol Verification
Two parts:
– protocol modeling
– verification
Look upon the communicating entities as
ONE finite state machine
Use two different, although equivalent, ways
to model the machines:
– State transition diagrams
– Petrinet based model
Topics in Networking 78
Protocol verification: model using state
transitions
Consider an example: stop-n-wait protocol
– Consider the sender-receiver pair, together with
channels as ONE single system
– Focus on significant states, not intermediate states
encountered while executing commands or
program instructions
Topics in Networking 79
Protocol Verification: model using
state transitions
Stop-n-wait protocol components, and their states
– Sender: “sending” 0 or 1
– Receiver: receiving 0 or 1
– Half-duplex channel: carrying frame 0 or 1, or Ack, or “-”
– Acks are not numbered
Total no of states is 16, of which 6 are unreachable
– These are states that correspond to sender and receiver waiting for
next event to occur
Further,
– Consider initial state
– Any enabled transition may take place next
– Transitions take place at any time
Topics in Networking 80
Protocol Verification: model using
state transitions
Topics in Networking 81
Protocol Verification
Can a protocol drop a user packet?
– Protocol never delivers packets in two data
frames, numbered 0, without delivering packet
contained in a data frame numbered 1
– Or, machine does not make two transitions
numbered “1”, without an intervening transition “3”
– There does not a path with two edges
corresponding to “transition 1” without an
intervening edge “transition 3”
Topics in Networking 82
Protocol Verification
Can a protocol drop a sequence of two user
packets?
– Or, sender should not state 1 twice while receiver
does not change its state in between
Topics in Networking 83
Protocol modeling using Petrinets
A Petrinet, with
– places: set of possible states
– tokens: define the current state
– transitions, input and output arcs
– firing of transitions:
conditions, and resulting re-distribution of tokens
eating eating
burp burp
wake-up wake-up
producing consuming
done1
done2
waiting1 waiting2
Topics in Networking 85
Stop-n-wait protocol model
Topics in Networking 86
Stop-n-wait protocol model
Petrinet is formally described by its transitions:
1: BD --> AC
2: A --> A
3: AD --> BE
4: B --> B
5: C -->
6: D -->
7: E -->
8: CF --> DF
9: EG --> DG
10: CG --> DF
11: EF --> DG
Topics in Networking 87
Stop-n-wait protocol model
Using the formal specs one can formally argue about
properties that are (are not) satisfied:
– e.g. consider all possible sequences of transitions. Then are there two “10”
transitions without an intervening transition “11”?
– How would ensure that two consecutive packets are not lost
Topics in Networking 88
Example Data Link Protocols
HDLC (bit-oriented, high-level data link control)
– Connection establishment, release, data transfer, and even connection reset
Topics in Networking 89
Example Data Link Protocols
PPP (point-to-point protocol)
– Mainly used router-to-router and dial-up connections
– Connection establishment and release a data link, data transfer, and even connection reset
– Help establish network layer (IP) addresses
Topics in Networking 90
Thanks
Topics in Networking 91