0% found this document useful (0 votes)
32 views91 pages

Data Link Layer Services and Protocols

This document discusses data link layer services and protocols. It covers topics such as framing using bit stuffing and byte stuffing, error detection using techniques like parity bits, Hamming codes, and cyclic redundancy codes, and error recovery through retransmissions. Elementary data link protocols aim to provide error-free, loss-free, and in-sequence transfer of data packets between network entities in a half-duplex or full-duplex manner.

Uploaded by

Sheikh Zedy
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
32 views91 pages

Data Link Layer Services and Protocols

This document discusses data link layer services and protocols. It covers topics such as framing using bit stuffing and byte stuffing, error detection using techniques like parity bits, Hamming codes, and cyclic redundancy codes, and error recovery through retransmissions. Elementary data link protocols aim to provide error-free, loss-free, and in-sequence transfer of data packets between network entities in a half-duplex or full-duplex manner.

Uploaded by

Sheikh Zedy
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 91

Data Link Layer Services and

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

Original bit string

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

 Dependence  on  fixed  character  set

 Must  examine  every  byte  of  data  on  sending 


and  receiving  (insert  /  remove  DLE)

 Was  used  widely  in  IBM  bisynch  (at  9600bps)

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

hamming distance between codes x, y


= no. of bits in which x and y differ
 Hamming distance for a code
consider n dimension space, with 2 m codewords

hamming distance for code (or coding scheme)


= minx, y (no. of bits in which x and y differ)

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

check bit 1 checks error in bits 1, 3, 5, 7, 9, 11


check bit 2 checks error in bits 2, 3, 6, 7, 10, 11
check bit 4 checks error in bits 4, 5, 6, 7
check bit 8 checks error in bits 8, 9, 10, 11

or (it should be)


0 = b1 + b3 + b5 + b7 + b9 + b11
0 = b2 + b3 + b6 + b7 + b10 + b11
0 = b4 + b5 + b6 + b7
0 = b8 + b9 + b10 + b11

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

M(x) x Xr Xr M(x) /G(x) R(x)


- T(x) = Xr M(x)-R(x)

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

Network entity Network entity


p1, p2, p3, .. p1, p2, p3, ..

Data link entity Data link entity

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

Network entity Network entity

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

Note, F_i: Data link frame, containing data packet, i


Topics in Networking 26
Simple data link protocol: Utopia (2)
 The sender’s end

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

Rate rcvr can handle


Acceptable rate
time
– feedback based: send more data as when receiver can handle
more 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

Note, F_i: Data link frame, containing data packet, i


Topics in Networking 33
Stop-n-wait protocol (2)
Network entity Network entity

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

Timer runs out 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

Timer runs out 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

Timer runs out


F_0 ack

Pkt 2 F_1 ack

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

Timer runs out F_1


Pkt 2
Ack_1
Pkt 3 F_0
Pkt 3
Ack_0

Timer runs out F_0

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

 Delay=BW product is the key


 Let sender send many data frames before it receives an ack

Topics in Networking 47
Pipelining

 Problems arise when one or more packets are lost

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

 Receiver buffers each correctly recd data frame, but


does not deliver it to the layer 3
 Receiver sends a NACK frame when it suspects loss
of a data frame
– But makes sure that a NACK is not repeated

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)

 Channel utilization in “sliding-window” when


there is no error, but small Tx window
U = D/(D+H) * W/(1 + 2 C I / (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

Channel util. Increasing


delay-BW
prod.

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

sleeping Topics in Networking


sleeping 84
Producer/consumer model
 Model of a producer- consumer system with one
buffer, using Petrinet

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

 Over LANs, the protocol is typically Ethernet

Topics in Networking 90
Thanks

Topics in Networking 91

You might also like