Chapter 4 Data Link Layer
description
Transcript of Chapter 4 Data Link Layer
![Page 1: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/1.jpg)
1
Chapter 4 Data Link Layer
Framing
Error control
Flow control
Multiplexing
Link Maintenance
Security
![Page 2: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/2.jpg)
2
Services
Transfers frames across direct connections Directly connected (can be wireless), wire-like Losses & errors, but no out-of-sequence frames
More detailed services Framing (bits ↔ frames) Error control (protection from impairment) Flow control Multiplexing Link Maintenance Security: Authentication & Encryption
![Page 3: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/3.jpg)
3
Data Link Protocols
Examples PPP HDLC Ethernet LAN IEEE 802.11 (WiFi) LAN
Data linklayer
Physicallayer
Physicallayer
Data linklayer
A B
Packets Packets
Frames
![Page 4: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/4.jpg)
4
Framing (Chapter 5.4 in Leon-Garcia)
![Page 5: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/5.jpg)
5
Framing
Bit stream - frames Frame boundaries can
be determined using:1. Character Counts
2. Control Characters
3. Framing Bits
4. Framing by illegal code
0110110111
Framing
receivedframes
0111
1101
01transmitted
frames
![Page 6: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/6.jpg)
6
Data to be sent
A DLE B ETX DLE STX E
After stuffing and framing
DLE DLE B ETX DLE DLE STXDLE STX A E DLE ETX
Control Characters
What about transmission of data (including non-printable characters)? Introduce DLE (data link escape) = 0x10 DLE STX (DLE ETX) used to indicate beginning (end) of frame Insert extra DLE in front of occurrence of DLE STX (DLE ETX) in frame All DLEs occur in pairs except at frame boundaries.
Transmission of printable characters using ASCII Octets with HEX value < 0x20 are nonprintable Use control characters: STX (start of text) = 0x02; ETX (end of text) = 0x03.
![Page 7: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/7.jpg)
7
Bit Stuffing
Frame delineated by flag character HDLC uses bit stuffing to prevent occurrence of flag
01111110 inside the frame Transmitter inserts extra 0 after each consecutive
five 1s inside the frame Receiver checks for five consecutive 1s
if next bit = 0, it is removed if next two bits are 10, then flag is detected If next two bits are 11, then frame has errors
Flag FlagAddress Control Information FCS
HDLC frame
any number of bits
![Page 8: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/8.jpg)
8
0110111111111100
Data to be sent
After stuffing and framing
0111111001101111101111100001111110
(a)
*000111011111-11111-110*
Data received
After destuffing and deframing
01111110000111011111011111011001111110
(b)
Example: Bit stuffing
![Page 9: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/9.jpg)
9
Example: Framing in Ethernet
Ethernet complies to standard IEEE 802.3 An illegal manchester coding is used for
framing. A character count is also included in the
header. All frames have an integral number of bytes.
If not, the frame is considered to be received in error.
![Page 10: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/10.jpg)
10
Error Control Coding(Chapter 3.9 in Leon-Garcia)
![Page 11: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/11.jpg)
11
Error Control Two approaches
Forward error correction (FEC) Error detection & retransmission (ARQ)
Add redundancy (admit only codewords with a certain pattern) Blindspot: when channel transforms a codeword into another
codeword (n,k) block code There are capacity-achieving codes
Usually with somewhat high complexity; When bandwidth is abundant it suffices to use simpler codes.
ChannelEncoderb1…bk Decoder
c1…cn
![Page 12: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/12.jpg)
12
Single Parity Check
Information bits: b1, b2, b3, …, bk
Check Bit: bk+1= b1+ b2+ b3+ …+ bk modulo 2
Codeword: (b1, b2, b3, …, bk,, bk+!)
All codewords have even # of 1s All error patterns that change an odd number of bits are
detectable Others undetectable
Redundancy: overhead = 1/(k + 1)
n=k+1
![Page 13: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/13.jpg)
13
Example
Information (7 bits): (0, 1, 0, 1, 1, 0, 0)
![Page 14: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/14.jpg)
14
Probability of Error
Example: Evaluate above for n = 6, p = 0.01
P[error detection failure]= P[undetectable error pattern] = P[all error patterns with even number of 1s]
= p2(1 – p)n-2 + p4(1 – p)n-4 + …n2
n4
P[undetectable error] = 0.0014
![Page 15: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/15.jpg)
15
Two-Dimensional Parity Check
1 0 0 1 0 0
0 1 0 0 0 1
1 0 0 1 0 0
1 1 0 1 1 0
1 0 0 1 1 1
column check bit
row check bits
![Page 16: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/16.jpg)
16
1 0 0 1 0 0
0 0 0 1 0 1
1 0 0 1 0 0
1 0 0 0 1 0
1 0 0 1 1 1
1 0 0 1 0 0
0 0 0 0 0 1
1 0 0 1 0 0
1 0 0 1 1 0
1 0 0 1 1 1
1 0 0 1 0 0
0 0 0 1 0 1
1 0 0 1 0 0
1 0 0 1 1 0
1 0 0 1 1 1
1 0 0 1 0 0
0 0 0 0 0 1
1 0 0 1 0 0
1 1 0 1 1 0
1 0 0 1 1 1
Arrows indicate failed check bits
Two errorsOne error
Three errors Four errors
(undetectable)
Error-detecting capability
1, 2, or 3 errors can always be
detected; Not all patterns >4 errors can be detected
![Page 17: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/17.jpg)
17
Hamming Codes
Class of linear block codes Capable of correcting all single-error patterns For each m > 2, there is a (2m–1, n-m) Hamming code
m n = 2m–1 k = n–m Code rate k/n
3 7 4 4/7
4 15 11 11/15
5 31 26 26/31
![Page 18: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/18.jpg)
18
m = 3 Hamming Code
Information bits are b1, b2, b3, b4
Parity checks (binary addition/multiplication)
Linearity 24 = 16 codewords
b5 = b1 + b3 + b4
b6 = b1 + b2 + b4
b7 = + b2 + b3 + b4
![Page 19: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/19.jpg)
19
Hamming (7,4) codeInformation Codeword Weight
b1 b2 b3 b4 b1 b2 b3 b4 b5 b6 b7 w(b)
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1 1 1 1 4
0 0 1 0 0 0 1 0 1 0 1 3
0 0 1 1 0 0 1 1 0 1 0 3
0 1 0 0 0 1 0 0 0 1 1 3
0 1 0 1 0 1 0 1 1 0 0 3
0 1 1 0 0 1 1 0 1 1 0 4
0 1 1 1 0 1 1 1 0 0 1 4
1 0 0 0 1 0 0 0 1 1 0 3
1 0 0 1 1 0 0 1 0 0 1 3
1 0 1 0 1 0 1 0 0 1 1 4
1 0 1 1 1 0 1 1 1 0 0 4
1 1 0 0 1 1 0 0 1 0 1 4
1 1 0 1 1 1 0 1 0 1 0 4
1 1 1 0 1 1 1 0 0 0 0 3
1 1 1 1 1 1 1 1 1 1 1 7
![Page 20: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/20.jpg)
20
Parity Check Equations Rearrange parity check equations:
All codewords must satisfy these equations
Note: each nonzero 3-tuple appears once as a column in check matrix H
In matrix form:
0 = b1 + b3 + b4 + b5
0 = b1 + b2 + b4 + b6
0 = + b2 + b3 + b4 + b7
b1
b2
0 = 1 0 1 1 1 0 0 b3
0 = 1 1 0 1 0 1 0 b4 = H bt = 0
0 = 0 1 1 1 0 0 1 b5
b6
b7
![Page 21: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/21.jpg)
21
0010000
s = H e = =101
Single error detected
0100100
s = H e = = + =011
Double error detected100
1 0 1 1 1 0 01 1 0 1 0 1 00 1 1 1 0 0 1
1110000
s = H e = = + + = 0 110
Triple error not detected
011
101
1 0 1 1 1 0 01 1 0 1 0 1 00 1 1 1 0 0 1
1 0 1 1 1 0 01 1 0 1 0 1 00 1 1 1 0 0 1
111
Hamming Code: Error Detection
![Page 22: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/22.jpg)
22
Minimum distance Undetectable error pattern must have 3 or more bits At least 3 bits must be changed to convert one codeword
into another codeword
b1 b2o o
o
o
oo
o
o
Set of n-tuples within
distance 1 of b1
Set of n-tuples within
distance 1 of b2
Spheres of distance 1 around each codeword do not overlap
If a single error occurs, the resulting n-tuple will be in a unique sphere around the original codeword
Distance 3
![Page 23: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/23.jpg)
23
General Hamming Codes
For m > 2, the Hamming code is obtained through the check matrix H: Each nonzero m-tuple appears once as a column The resulting code corrects all single errors
P[undetectable error]= P[ error is a codeword]≈ (# of codewords with dmin) x pdmin
Animated example http://www.systems.caltech.edu/EE/Faculty/rjm/SAMPLE_20040708.html
![Page 24: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/24.jpg)
24
Hamming Codes: Error-correction
Compute syndrome: s = HR = H (b + e) = Hb + He = He If s = 0, then the receiver accepts R as the transmitted
codeword, find the corresponding k-bit message If s is nonzero, then an error is detected
Hamming decoder assumes a single error has occurred Each single-bit error pattern has a unique syndrome The receiver matches the syndrome to a single-bit error
pattern and corrects the appropriate bit
b
e
R+ (Receiver)(Transmitter)
Error pattern
![Page 25: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/25.jpg)
25
Hamming Codes: Performance
Assume bit errors occur independent of each other and with probability p
s = H R = He
s = 0 s = 0
No errors intransmission
Undetectableerrors
Correctableerrors
Uncorrectableerrors
(1–p)7 7p3
1–3p 3p
7p
7p(1–3p) 21p2
![Page 26: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/26.jpg)
26
Other Error Control Codes
Good practical codes for error detection: Internet Check Sums CRC Polynomial Codes
They can detect the vast majority of errors.
Good codes for error “correction”: Turbo codes Low-density parity-check (LDPC) codes
![Page 27: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/27.jpg)
27
Internet Checksum
Several Internet protocols (e.g. IP, TCP, UDP) use check bits to detect errors in the header
A checksum is calculated for header contents and included in a special field.
Treating each 16-bit word in data as an integer, find
x = b0 + b1 + b2+ ...+ bL-1 modulo 216-1 The checksum is then given by:
bL = - x modulo 216-1
Thus, the headers satisfy the following pattern:
0 = b0 + b1 + b2+ ...+ bL-1 + bL modulo 216-1
![Page 28: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/28.jpg)
28
Polynomial Codes
Convenient mathematical formulation of coding Polynomials as codewords Implemented using shift-register circuits Called cyclic redundancy check (CRC) codes Excellent for detecting burst errors
Reg 0 ++
Encoder for g(x) = x3 + x + 1
Reg 1 Reg 20,0,0,i0,i1,i2,i3
g0 = 1 g1 = 1 g3 = 1
![Page 29: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/29.jpg)
29
Automatic Repeat Request (ARQ)
(Chapter 5 in Leon-Garcia)
![Page 30: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/30.jpg)
30
n – 1 n – 1
n n
n + 1 n + 1
Peer-to-Peer Protocols
Each layer provides a service to the layer above.
It does so by executing a peer-to-peer protocol.
The protocol uses the the services of the layer below.
![Page 31: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/31.jpg)
31
Service Models
The service model specifies the manner in which information is transferred. Connection-oriented Connectionless
![Page 32: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/32.jpg)
32
Connection setup Message transfer Connection release Example: TCP, PPP
Connection-Oriented
n + 1 peer processsend
n + 1 peer processreceive
Layer n connection-oriented serviceSDU SDU
![Page 33: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/33.jpg)
33
No setup Each message sent independently Must provide all address information per message Simple & quick Example: UDP, IP
Connectionless Transfer Service
n + 1 peer processsend
n + 1 peer processreceive
SDU Layer n connectionless service
![Page 34: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/34.jpg)
34
Purpose: To pass to the receiver every frame correctly, only once, in order.
Bad things can happen: Error, arbitrary delay, out-of-order arrival, or loss. Aim at very high reliability.
Assume if frames arrive, they arrive in-order for now. We save the out-of-order problem for later.
Basic elements: Error-detecting code ACKs (positive acknowledgments) NAKs (negative acknowledgments) Timeout mechanism
Automatic Repeat Request (ARQ)
![Page 35: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/35.jpg)
35
PacketError-free
packet
Information frame
Control frame
Transmitter Receiver
Stop-and-Wait ARQ
Timer set after each frame
transmission
Transmit a frame, wait for ACK
![Page 36: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/36.jpg)
36
In cases (a) & (b) the transmitting station A acts the same way But in case (b) the receiving station B accepts frame 1 twice Question: How is the receiver to know the second frame is also frame 1? Need a sequence number: Slast=SN of most recent transmitted frame.
Need for Sequence Numbers(a) Frame 1 lost
A
B
Frame 0
Frame1
ACK
Frame1
ACK
TimeTime-out
Frame2
(b) ACK lost
A
B
Frame 0
Frame1
ACK
Frame1
ACK
TimeTime-out
Frame2
ACK
![Page 37: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/37.jpg)
37
Sequence Numbers
The transmitting station misinterprets duplicate ACKs Question: How is the receiver to know second ACK is for frame 0?
(c) Premature Time-out
A
B
Frame 0 Frame
0ACKFrame
1ACK
TimeTime-out
Frame2
Need SN in ACK: Rnext=SN of next frame expected by the receiver. Implicitly acknowledges receipt of all prior frames. What if ACK only if Slast=Rnext?
![Page 38: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/38.jpg)
38
Transmitter A
Receiver B
SlastRnext
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Timer
Rnext
Slast
How many bits for SN?
1-Bit SN Suffices
![Page 39: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/39.jpg)
39
Transmitter A
Receiver B
Rnext
Slast
Finite State Machine
(0,0) (0,1)
(1,0) (1,1)
Global State:(Slast, Rnext)
Error-free frame 0arrives
ACK 0arrives
ACK 1arrives
Error-free frame 1arrives
Frame 0lost/error
Frame 1lost/error
ACK 0lost/error
ACK 1lost/error
![Page 40: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/40.jpg)
40
S/W Efficiency
A
B
First frame bit enters channel
Last frame bit enters channel
Transmitter waits for ACK
Last frame bit arrives at receiver
Receiver processes frame
and prepares ACK
ACK arrives
First frame bit arrives at receiver
t
t
![Page 41: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/41.jpg)
41
frametf time
A
B
tproptack tproc
tprop
tproc
t0 = total time to transmit 1 frame if no error
S/W Transmission Time
R
n
R
ntt
ttttt
afprocprop
ackfprocprop
22
220bits/info frame
channel transmission rate
bits/ACK frame
![Page 42: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/42.jpg)
42
Efficiency on Error-free channel
.)(2
1
1
0
0
0
f
procprop
f
a
f
o
ofeff
n
Rtt
nn
nn
Rt
nn
R
R
Overhead bits (header, CRC)
, timetotal
bitsn informatio of #
0
0
t
nnR ofeff
Effect offrame overhead
Effect ofACK frame
Effect ofDelay-Bandwidth Product
Effective transmission rate:
Transmission efficiency:
![Page 43: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/43.jpg)
43
Delay-Bandwidth Product
nf=10,000 bits, na=no=200 bits
2xDelayxBW
Efficiency 1 ms
200 km
10 ms
2000 km
100 ms
20,000 km
1 sec
200,000 km
1 Mbps 103
88%
104
49%
105
9%
106
1%
1 Gbps 106
1%
107
0.1%
108
0.01%
109
0.001%
S/W inefficient for very high speeds or long delays
![Page 44: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/44.jpg)
44
Average Transmission Number
Proposition: Let Pf be the frame error probability. Then the average number of transmissions per successful frame is 1/ (1–Pf ).
Proof: The number of transmissions to first correct arrival has geometric distribution.
E.g., if 1-in-10 gets through, then in average 10 tries to success.
.1
1
1
11
1
1
)1()1(
][][
11
1
1
ffff
i
if
ff
i
iff
i
PPdP
d
P
PdP
dPPPi
iniPNE
![Page 45: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/45.jpg)
45
Efficiency in Channel with Errors
)1()(2
1
1
)1/(0f
f
procprop
f
a
f
o
f
ofeffSW P
n
Rtt
nn
nn
PRt
nn
R
R
Effect of frame loss
pnepP fpnn
fff small and largefor )1(1
If bit-error-rate is p, then
Assuming time-out is equal to t0 (it should be larger)
![Page 46: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/46.jpg)
46
Go-Back-N
A sliding-window protocol. Keep channel busy by continuing to send frames Allow a window of up to Ws outstanding frames If ACK for oldest frame arrives before window is
exhausted, we can continue transmitting If window is exhausted, pull back and retransmit all
outstanding frames
![Page 47: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/47.jpg)
47
Frame transmission are pipelined to keep the channel busy Frame with errors and subsequent out-of-sequence frames are ignored
Go-Back-N ARQ
A
B
fr0
Timefr1
fr2
fr3
fr4
fr5
fr6
fr3
ACK1
out of sequence frames
Go-Back-4: 4 frames are outstanding; so go back 4
fr5
fr6
fr4
fr7
fr8
fr9
ACK2
ACK3
ACK4
ACK5
ACK6
ACK7
ACK8
ACK9
Rnext 0 1 2 3 3 4 5 6 7 8 9
![Page 48: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/48.jpg)
48
A
B
fr0
Timefr1
fr2
fr3
fr0
Receiver is looking for
Rnext=0
Out-of-sequence
frames
If window exhausted, go back N
fr2
fr3
fr1
fr4
fr5
fr6
Go-Back-N ARQ
ACK1
ACK2
ACK3
ACK4
ACK5
ACK6
A
B
Timefr0
fr0
Time-outfr1
ACK1
Stop-and-Wait ARQ
Receiver is looking for
Rnext=0
Choose Window Size > RTT
![Page 49: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/49.jpg)
49
Go-Back-N with Timeout
Problem with Go-Back-N as presented: If frame is lost and source does not have frame to
send, then window will not be exhausted and recovery will not commence
Use a timeout with each frame When timeout expires, resend all outstanding
frames
![Page 50: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/50.jpg)
50
Receiver
Receive Window (size 1)
Rnext
Framesreceived
Receiver will only accepterror-free frame with SN Rnext.
When the frame arrives Rnext is incremented by 1, so the receive window slides forward by 1.
Timer Slast
Slast+1
Srecent
Slast+Ws-1
Timer
Timer
Transmitter
...
Buffers
Slast Slast+Ws-1
...Send Window (size Ws)
Srecent
Framestransmittedand ACKed
...
most recent transmission
oldest un-ACKed frame
max SN allowed
Go-Back-N Transmitter & Receiver
![Page 51: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/51.jpg)
51
Example: M = 22 = 4, Go-Back – 4 is not good.
Example: Go-Back-3 is good.
A
B
fr0
Timefr1
fr2
fr0
fr1
fr2
ACK1
ACK2
ACK3
Receiver has Rnext= 3 , so it rejects the old frame 0
Rnext 0 1 2 3
Maximum Window Size Ws = 2m-1
A
B
fr0
Timefr1
fr2
fr3
fr0
fr1
fr2
fr3
ACK1
ACK0
ACK2
ACK3
Transmitter goes back 4
Receiver has Rnext= 0, but it does not know whether this is the old frame 0 or a new frame 0
Rnext 0 1 2 3 0
Transmitter goes back 4
![Page 52: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/52.jpg)
52
ACK Piggybacking in Bidirectional GBN
Transmitter Receiver
TransmitterReceiver
SArecent RA next
SBrecent RB next
In bi-directional communication, ACKs are often piggybacked on data frames to reduce overhead.
![Page 53: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/53.jpg)
53
Tf Tf
Tproc
TpropTprop
Tout
Choice of Timeout & Window Size
Timeout value should allow for: 2 Tprop + Tproc
A frame begins transmission right before the first frame arrives Tf
Next frame carries the ACK, Tf (piggy-back) Thus, timeout > 2 Tprop + 2 Tf + Tproc
Ws should be large enough to keep channel busy for Tout
![Page 54: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/54.jpg)
54
Efficiency of Go-Back-N
if channel is error-free and Ws is large enough to keep channel busy
Assume Pf frame loss probability, time to deliver a frame is: tf if first attempt succeeds Tf + Wstf /(1-Pf) otherwise go back Ws and try again
)1()1(1
1
1
1
)1(
ffs
f
o
GBN
of
GBN
f
fsfff
f
fsfffGBN
PPW
n
n
R
t
nn
P
tWPtP
P
tWtPtt
Delay-bandwidth product determines Ws
1GBN
![Page 55: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/55.jpg)
55
Improvement over Go-Back-N?
Go-Back-N repeats multiple frames when a few errors or losses occur
How about retransmitting only an individual frame? Selective Repeat ARQ
Timeout pinpoints individual frame Receiver maintains a window of acceptable SN Error-free, but out-of-sequence frames with SN within the
receive window are buffered Arrival of Rnext causes window to slide forward by 1 or more NAK causes retransmission of oldest un-acked frame
![Page 56: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/56.jpg)
56
A
B
fr0
Timefr1
fr2
fr3
fr4
fr5
fr6
fr2
ACK1
fr8
fr9
fr7
fr10
fr11
fr12
ACK2
NAK2
ACK7
ACK8
ACK9
ACK10
ACK11
ACK12
ACK2
ACK2
ACK2
Selective Repeat ARQ
![Page 57: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/57.jpg)
57
Transmitter
Buffers
Slast Slast+ Ws-1
...Send Window
Srecent
Framestransmittedand ACKed
Timer Slast
Slast+ 1
Srecent
Slast+ Ws - 1
Timer
Timer
...
...
Selective Repeat ARQ
Framesreceived
Receiver
Receive Window
Rnext Rnext + Wr-1
Rnext+ 1
Rnext+ 2
Rnext+ Wr- 1
...
Buffers
max Seq # accepted
![Page 58: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/58.jpg)
58
Send & Receive WindowsTransmitter Receiver
01
2
i
i + Ws – 1
2m-1
Slast
sendwindow
i + 1
Moves k forward when ACKarrives with Rnext = Slast + k
k = 1, …, Ws-1
01
2
i
j + Wr – 1
2m-1
Rnext
receivewindow
j
Moves forward by 1 or more when frame arrives with
Seq. # = Rnext
![Page 59: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/59.jpg)
59
What size Ws and Wr allowed?
Example: M=22=4, Ws=3, Wr=3
A
B
fr0Time
fr1 fr2 fr0
ACK1 ACK2 ACK3
Frame 0 resent
{0,1,2} {1,2} {2} {.}Send
Window
{0,1,2} {1,2,3}Receive Window
{2,3,0} {3,0,1}
Old frame 0 accepted as anew frame because it fallsin the receive window
![Page 60: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/60.jpg)
60
Ws + Wr = 2m is maximum allowed
Example: M=22=4, Ws=2, Wr=2
A
B
fr0Time
fr1 fr0
ACK1 ACK2
Frame 0 resent
{0,1} {1} {.}Send
Window
{0,1} {1,2}Receive Window
{2,3}
Old frame 0 rejected because it falls outside the receive window
![Page 61: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/61.jpg)
61
Why Ws + Wr = 2m works
The number of bits, m, is enough to label all outstanding frames.
Usually, Ws = Wr = 2m-1
01
2
Ws-1
2m-1
Slast
sendwindow
01
2Ws +Wr-1
2m-1
Rnextreceivewindow
Ws
![Page 62: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/62.jpg)
62
Efficiency of Selective Repeat
# of transmissions required to deliver a frame is:tf / (1-Pf)
)1(1)1/(
ff
off
of
SR Pn
n
R
Pt
nn
![Page 63: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/63.jpg)
63
Example: Impact Bit Error Rate on Selective Repeat
Efficiency 0 10-6 10-5 10-4
S&W 8.9% 8.8% 8.0% 3.3%
GBN 98% 88.2% 45.4% 4.9%
SR 98% 97% 89% 36%
GBN >> S&W for large delay-bandwidth product GBN becomes inefficient as error rate increases SR is the best. Efficiency drops as error rate increases
nf=10,000 bits, na=no=200 bitsp = 0, 10-6, 10-5, 10-4 and R = 1 Mbps & 100 ms
1 Mbps x 100 ms = 100000 bits = 10 frames → Use Ws = 11
![Page 64: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/64.jpg)
64
Selective-Repeat:
Go-Back-N:
Stop-and-Wait:
L
P
n
Rtt
n
n
P f
f
procprop
f
a
fSW
1
1
)(21
)1(
f
f
fS
fGBN LP
P
PW
P
1
1
)1(1
1
)1(1)1( ff
ofSR P
n
nP
Comparison of ARQ Efficiencies
Assume na, no << nf, and L = 2(tprop+tproc)R/nf =(Ws-1).
For Pf≈0, SR & GBN same
For Pf→1, GBN & SW same
![Page 65: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/65.jpg)
65
ARQ Efficiency Comparison
0
0.5
1
1.5
-9 -8 -7 -6 -5 -4 -3 -2 -1
- LOG(p)
Eff
icie
ncy
SelectiveRepeat
Go Back N 10
Stop and Wait100
Go Back N 100
Stop and Wait10
10-9 10-8 10-7 10-6 10-5 10-4 10-3 10-2 10-1
p
Delay-Bandwidth product = 10, 100
ARQ Efficiencies
![Page 66: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/66.jpg)
66
Standard Data Link Layer Protocols:
PPP & HDLC (Chapter 5.5-6 in Leon-Garcia)
![Page 67: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/67.jpg)
67
Physicallayer
Data linklayer
Networklayer
“Packet”
“Frame”
DLL
Physicallayer
Data linklayer
Networklayer
![Page 68: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/68.jpg)
68
PPP: Point-to-Point Protocol
A data link layer protocol. Encapsulating IP packets over point-to-point links.
Router-router; Dial-up to router (PC to Internet service provider (ISP))
Functions: Provides Framing and Error Detection Link Control Protocols
Set up, configure, testing, maintain, terminate; Authentication: Password Authentication Protocol, etc.
Network Control Protocols Configure network layer protocols E.g., IP, IPX (Novell), Appletalk
![Page 69: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/69.jpg)
69
• Can support multiple network protocols simultaneously• Specifies what kind of packet is contained in the payload
PPP Frame Format
Flag FlagAddress Control Information FCSProtocol01111110 011111101111111 00000011
CRC 16 or CRC 32
1 or 2 variable 2 or 4
All stations are toaccept the frame
HDLC Unnumbered frame
![Page 70: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/70.jpg)
70
High-Level Data Link Control (HDLC)
Bit-oriented data link control Derived from IBM Synchronous Data Link
Control (SDLC)
![Page 71: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/71.jpg)
71
Normal Response Mode Used in polling multidrop lines
Asynchronous Balanced Mode Used in full-duplex point-to-point links
HDLC Data Transfer Modes
PrimaryCommands
Responses
Secondary Secondary Secondary
Primary
Secondary
Commands Responses
Primary
Secondary
CommandsResponses
Mode is selected during connection establishment
![Page 72: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/72.jpg)
72
HDLC Frame Format
Control field gives HDLC its functionality Codes in fields have specific meanings and uses
Flag: delineate frame boundaries Address: identify secondary station (1 or more octets) Control: purpose & functions of frame (1 or 2 octets) Information: user data; length not standardized Frame Check Sequence: 16- or 32-bit CRC
Flag FlagAddress Control Information FCS
![Page 73: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/73.jpg)
73
Control Field Format
0 N(S) N(R)P/F
1 2-4 5 6-8Information Frame
N(R)P/F
Supervisory Frame
1 0 S S
Unnumbered Frame
P/F1 1 M M M M M
S: Supervisory Function Bits N(R): Receive Sequence Number N(S): Send Sequence Number M: Unnumbered Function Bits P/F: Poll/final bit used in interaction
between primary and secondary
Note: The information frames and supervisory frames allow HDLC to implement Stop-and-Wait, Go-Back-N, and Selective Repeat ARQ.
Note: The unnumbered frames implement control functions.
![Page 74: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/74.jpg)
74
Primary A Secondaries B, C
B, RR, 0, P
B, I, 0, 0B, I, 1, 0B, I, 2, 0,F
X
B, SREJ, 1
C, RR, 0, P
C, RR, 0, F
B, SREJ, 1,P
B, I, 1, 0B, I, 3, 0B, I, 4, 0, F
B, I, 0, 5
Time
Example: HDLC Using Polling
A polls BRR=receive ready B sends 3 info
frames
A rejects fr1
A polls C
C nothing to send
A polls B, requestsselective retrans. fr1
B resends fr1Then fr 3 & 4
A send info fr0to B, ACKs up to 4
N(R)
N(S) N(R)
Address of secondary
![Page 75: Chapter 4 Data Link Layer](https://reader036.fdocuments.in/reader036/viewer/2022062304/56814556550346895db22509/html5/thumbnails/75.jpg)
75
I3 I4 I5 I6RNR5 RR6
HDLC Flow Control
Flow control prevents transmitter from overrunning receiver buffers.
Receiver can control flow by delaying acknowledgement messages.
Receiver can also use supervisory frames to explicitly control transmitter Receive Not Ready (RNR) & Receive Ready (RR)