0% found this document useful (0 votes)
91 views39 pages

CS 313 Introduction To Computer Networking & Telecommunication Data Link Layer Part II - Sliding Window Protocols

The document discusses various sliding window protocols used in data link layers, including stop-and-wait, go back N, and selective repeat protocols, explaining their implementation, window sizes, error handling, and performance compared to stop-and-wait when transmission times are significant. It also covers topics like negative acknowledgements, piggybacking, and buffer requirements for different protocols.

Uploaded by

Jainam Talsania
Copyright
© © All Rights Reserved
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)
91 views39 pages

CS 313 Introduction To Computer Networking & Telecommunication Data Link Layer Part II - Sliding Window Protocols

The document discusses various sliding window protocols used in data link layers, including stop-and-wait, go back N, and selective repeat protocols, explaining their implementation, window sizes, error handling, and performance compared to stop-and-wait when transmission times are significant. It also covers topics like negative acknowledgements, piggybacking, and buffer requirements for different protocols.

Uploaded by

Jainam Talsania
Copyright
© © All Rights Reserved
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/ 39

CS 313 Introduction to

Computer Networking &


Telecommunication
Data Link Layer Part II
Sliding Window
Protocols
Chi-Cheng Lin, Winona State University

Part 2 - Topics

Sliding Window Protocols

Go Back N Sliding Window Protocol

Selective Repeat Sliding Window


Protocol

Data Frame Transmission


Unidirectional assumption in previous
elementary protocols
Not general
Full-duplex - approach 1

Two separate communication channels


Forward channel for data
Reverse channel for acknowledgement
Problems: 1. reverse channel bandwidth
wasted
2. cost
3

Data Frame Transmission

Full-duplex - approach 2
Same circuit for both directions
Data and acknowledgement are intermixed
How do we tell acknowledgement from data?

"kind" field telling data or acknowledgement


Can it be improved?

Approach 3
Attaching acknowledgement to outgoing data
frames
Piggybacking
4

Piggybacking
Temporarily delaying transmission of
outgoing acknowledgement so that they can
be hooked onto the next outgoing data frame
Advantage: higher channel bandwidth
utilization
Complication:

How long to wait for a packet to piggyback?


If longer than sender timeout period then
sender retransmit
Purpose of acknowledgement is lost

Piggybacking

Solution for timing complexion


If a new packet arrives quickly
Piggybacking
If no new packet arrives after a
receiver ack timeout
Sending a separate
acknowledgement frame

Sliding Window Protocol

We are going to study three


bidirectional sliding window
protocols (max sending window
size, receiving window size)
One-bit sliding window protocol (1, 1)
Go back N (>1, 1)
Selective repeat (>1, >1)

Differ in efficiency, complexity, and


buffer requirements
7

Sliding Window Protocol

Each outbound frame contains an n-bit


sequence number
Range: 0 - MAX_SEQ (MAX_SEQ = 2 n - 1)
For stop-and-wait, n = __. Why?

At any instance of time


Sender maintains a set of sequence numbers
of frames permitted to send
These frames fall within sending window

Receiver maintains a set of sequence


numbers of frames permitted to accept
These frames fall within receiving window
8

Sliding Window Protocol


Lower limit, upper limit, and size of
two windows need not be the same
Fixed or variable size
Requirements

Packets delivered to the receiver's


network layer must be in the same
order that they were passed to the
data link layer on the sending machine
Frames must be delivered by the
physical communication channel in the
order in which they were sent
9

Sending Window
Contains frames can be sent or
have been sent but not yet
acknowledged outstanding frames
When a packet arrives from network
layer

Next highest sequence number


assigned
Upper edge of window advanced by 1

When an acknowledgement arrives


Lower edge of window advanced by 1

10

Sending Window
If the maximum window size is n,
n buffers is needed to hold
unacknowledged frames
Window full (maximum window
size reached)
shut off network layer

11

Receiving Window
Contains frames may be accepted
Frame outside the window
discarded
When a frame's sequence number
equals to lower edge

Passed to the network layer


Acknowledgement generated
Window rotated by 1
12

Receiving Window
Contains frames may be accepted
Always remains at initial size (different
from sending window)
Size

=1 means frames only accepted in order


>1 not so

Again, the order of packets fed to the


receivers network layer must be the
same as the order packets sent by the
senders network layer
13

Actually, 1-bit
sequence
number is
enough for
this example.
The purpose
of using 3-bit
is to
demonstrate
the idea of
sliding
window.

A sliding window of size 1, with a 3-bit sequence


number.
In many textbooks, an
(a) Initially.
array of boxes are used to
(b) After the first frame has been sent.
represent the window.
(c) After the first frame has been received.
(d) After the first acknowledgement has been

14

One Bit Sliding Window Protocol


Sending window size = receiving
window size = 1
Stop-and-wait
Refer to algorithm in Fig 3-16
Acknowledgement =
Sequence number of last frame
received w/o error*
Problem of sender and receiver
send simultaneously

*: some protocols define the acknowledgement to be


the sequence number expected to receive

15

Case 1: normal case

Case 7: simultaneous start

(a) Case 1: Normal case. (b) Case 7: Abnormal case.


The notation is (seq, ack, packet number). An asterisk
indicates where a network layer accepts aTry
packet.
to draw the sending
windows and receiving
windows for A and B!

16

One Bit Sliding Window Protocol

Case 1: no
error

Case 2: data lost


A

Time Exp=0 (0,1,A0) Exp=0 Time Exp=0 (0,1,A0) Exp=0


A
B
X
*
Timeout
(0,0,B0) Exp=1
*
Exp=1

(1,0,A1)

(0,1,A0)

*
(1,1,B1) Exp=0
*
Exp=0

(0,1,A2)
*
(0,0,B2) Exp=1

*
(0,0,B0) Exp=1
*
Exp=1
Try to draw the sending
windows and receiving
windows for A and B!

17

One Bit Sliding Window Protocol

Case 3: data
error

Time

Exp=0

A (0,1,A0)

B
Timeout

Case 4: ack. lost


A

Exp=0 Time Exp=0

Error

Timeout

(0,1,A0)
(0,0,B0)
*
Exp=1

(0,1,A0)

Exp=0

*
(0,0,B0) Exp=1
X
(0,1,A0)

*
Exp=1

(0,0,B0)

duplicate,
discarded

*
Exp=1
Try to draw the sending
windows and receiving
windows for A and B!

18

One Bit Sliding Window Protocol

Case 5: early
timeout

Time

Exp=0

Exp=0

Case 6: outgoing
frame timeout

Time
(0,1,A0)
A
A
B
Exp=0 (0,1,A0) Exp=0
Timeout
*
B
(0,0,B0) Exp=1
*
Exp=1
(0,1,A0)
*
Exp=1
duplicate,
(1,0,A1)
ACK 0
Timeout
discarded
*
Exp=0
(1,1,A1)
(1,1,B1)
*
*
(0,1,B0) Exp=0
Exp=0

Try to draw the sending


windows and receiving
windows for A and B!

*
Exp=1

19

Performance of Stop-and-Wait
Protocol
Assumption of previous
protocols:
Transmission time is negligible
False, when transmission time is long

t
0
20
270

Example - satellite communication


channel capacity: 50 kbps, frame size: 1kb
round-trip propagation delay: 500 msec
Time:t=0
start to send 1st bit in frame
t=20 msec frame sent completely
t=270 msec
frame arrives
t=520 msec
best case of ack. received

Sender blocked 500/520 = 96% of time


Bandwidth utilization 20/520 = 4%

520

20

Performance of Stop-and-Wait
Protocol
If channel capacity = b, frame size
= L, and round-trip propagation
delay = R, then bandwidth
utilization = _____
Conclusion:

Long transit time + high bandwidth +


short frame length disaster

21

Performance of Stop-and-Wait
Protocol
Solution: Pipelining
Allowing w frames sent before blocking

In our example, for 100% utilization


w = __, max window size = __
sequence number = __ bits

Problem: errors
Solutions

Go back n protocol (GNP)


Selective repeat protocol (SRP)

Acknowledge n means frames n,n-1,n-2, are


acknowledged (i.e., received correctly)

22

Go Back n Protocol
Receiver discards all subsequent frames
following an error one, and send no
acknowledgement for those discarded
Receiving window size = 1 (i.e., frames
must be accepted in the order they were
sent)
Sending window might get full

If so, re-transmitting unacknowledged frames

Wasting a lot of bandwidth if error rate is


high
23

Go Back n Protocol

24

Go Back n Protocol

S
Time 0 1 2 3 0 1 2 3 0
012301230

Frame 0

012301230
012301230

012301230

Frame 1
ACK 1

012301230

Frame 2
ACK 2

012301230

012301230
012301230

Frame 3
012301230
25

Go Back n Protocol
What is the maximum sending window
size?
Maximum sending window size of =
MAX_SEQ, not MAX_SEQ+1

With n-bit sequence number, MAX_SEQ


= 2n 1, maximum sending window size
= 2n - 1
e.g., for 3-bit window, MAX_SEQ = 7, so
window size = 7 although max. size could
be 8

Why?
26

Go Back n Protocol - Window


Size

Suppose 3-bit window is used and max


sending window size = MAX_SEQ+1 = 8

Sender sends frames 0 through 7


Piggybacked ack 7 comes back
Sender sends anther 8 frames w/ sequence
numbers 0 through 7
Another piggybacked ack 7 comes back
Q: Did all second 8-frames arrive successfully or
did all of them get lost?
Ack 7 for both cases Ambiguous
Max. window size = 7
27

Go Back n Protocol
Implementation
Sender has to buffer
unacknowledged frames
Acknowledge n means frames n,n1,n-2, ... are acknowledged (i.e.,
received correctly) and those
buffers can be released
One timer for each outstanding
frame in sending window

28

Select Repeat Protocol


Receiver stores correct frames following the bad
one
Sender retransmits the bad one after noticing
Receiver passes data to network layer and
acknowledge with the highest number
Receiving window > 1 (i.e., any frame within
the window may be accepted and buffered until
all the preceding one passed to the network
layer
Might need large memory

29

Negative Acknowledgement
(NAK)
SRP is often combined with NAK
When error is suspected by receiver,
receiver request retransmission of a
frame

Arrival of a damaged frame


Arrival of a frame other than the expected

Does receiver keep track of NAK?


What if NAK gets lost?
To nak, or not to nak: that is the question

30

Selective Repeat with NAK

k
Na

os
,l

31

Selective Repeat with NAK


Time 0 1 2 3 0 1 2 3 0
012301230

012301230
012301230
012301230
012301230
012301230
Wheres the window now?

R
Frame 0
Frame 1
ACK 1
Frame 2
X
Frame 3
NAK 2
Frame 2
ACK or NAK?

012301230
012301230
012301230

012301230
012301230

Wheres the window now?


32

Select Repeat Protocol


Implementation
Receiver has a buffer for each
sequence number within receiving
window
Each buffer is associated with an
"arrived" bit
Check whether sequence number of
an arriving frame within window or not

If so, accept and store

Maximum window size = ? Can it be


MAX_SEQ ?
33

Select Repeat Protocol - Window


Size

Suppose 3-bit window is used and


window size = MAX_SEQ = 7
sender
receiver
0 1 2 3 4 5 6 sent
0 1 2 3 4 5 6 accepted
0 through 6 to network layer
all acknowledgements lost
0 retransmitted
0 accepted
ack 6 received
7 sent
7 accepted
7 and 0 to network layer
34

Select Repeat Protocol - Window


Size
Problem is caused by new and old
windows overlapped
Solution

Window size=(MAX_SEQ+1)/2
E.g., if 4-bit window is used, MAX_SEQ =
15
window size = (15+1)/2 = 8

Number of buffers needed


= window size
35

Select Repeat Protocol

(a) Initial situation with a window size seven.


(b) After seven frames sent and received, but not
acknowledged.
(c) Initial situation with a window size of four.
(d) After four frames sent and received, but not

36

Acknowledgement Timer

Problem
If the reverse traffic is light, effect?
If there is no reverse traffic, effect?

Solution
Acknowledgement timer:
If no reverse traffic before timeout
send separate acknowledgement
Essential: ack timeout < data frame
timeout Why?
37

Example: ADSL

ADSL protocol stacks

ATM (Asynchronous Transfer Mode)

ADSL

PPP (Point-to-Point Protocol) full frame


format for unnumbered mode operation

AAL5 (ATM Adaptation Layer 5) frame


carrying PPP data

You might also like