Stop and Wait Protocol
Stop and Wait Protocol
Stop and Wait Protocol
S Chen
49
S Chen
propagation time
Rd
=
frame time
VL
where R is data rate (bps), d is link distance (m), V is propagation velocity (m/s) and L frame
length (bits)
50
S Chen
Frame 0
ACK 1
Frame 1
1
1 + 2a
Frame lost:
A retransmits
ACK 0 lost:
A retransmits
Timeout
ACK 0
Frame 0
Frame 0
Timeout
U =
B
Time
ACK 1
Frame 1
ACK 0
Frame 1
ACK 0
B discards
duplicate frame
For an LAN with R = 10 Mbps and d = 1 km, using V = 2 108 m/s and L = 500 bits,
a = 0.1 and stop-and-wait procedure has U = 0.83, which has adequate line utilisation
But for a satellite link, link utilisation for stop-and-wait procedure may only be U = 0.001 or
lower, which is clearly wasteful
51
S Chen
In error-free case, efficiency or maximum link utilisation of sliding window protocol is:
1,
N > 2a + 1
U =
N
N < 2a + 1
1+2a ,
Thus it is able to maintain efficiency for large link parameter a: just use large widow size N
52
S Chen
0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1
0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1
ACK
0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1
F4
0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1
0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1
F5
F6
ACK
0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1
F3
0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1
0 1 2 3 4 5 6 0 1 2 3 4 5 6 0 1
In practice, error control must be incorporated with flow control, and we next discuss two common
error control mechanisms
53
S Chen
Go-back-n ARQ
The basic idea of go-back-n error control is: If frame i is damaged, receiver requests retransmission
of all frames starting from frame i
An example:
1
2
2
ACK ACK NAK
error
3
6
5
4
ACK ACK ACK ACK
discarded
F0 *
ACK1*
F1,F2,...,F7,F0
ACK1
Either
Ive received F1,...,F7,F0
waiting for (next) F1
or
Ive received F0* then nothing
else, timeout, retrainsmit ACK1*
This could means that all eight frames were received correctly
It could also mean that all eight frames were lost, and receiver is repeating its previous ACK1
With N = 7, this confusing situation is avoided
54
S Chen
Selective-Reject ARQ
In selective-reject ARQ error control, the only frames retransmitted are those
receive a NAK or which time out
An illustrative example:
Selective-reject would appear to be
more efficient than go-back-n, but it
is harder to implement and less used
1
2
2
4
6
5
3
ACK ACK NAK ACK ACK ACK ACK
E
error
buffered
F2-5 released
The window size is also more restrictive: for n-bit sequence number, the maximum
2n
window size is N = 2 to avoid possible confusion
Go-back-n and selective-reject can be seen as trade-offs between link bandwidth
(data rate) and data link layer buffer space
If link bandwidth is large but buffer space is scarce, go-back-n is preferred
If link bandwidth is small but buffer space is pretty, selective-reject is preferred
55
S Chen
56
S Chen
57
S Chen
Protocol Verification
How to know a protocol really works specify and verify protocol using, e.g. finite state machine
Each protocol machine (sender or receiver) is at a specific state at every time instant
Each state has zero or more possible transitions to other states
One particular state is initial state: from initial state, some or possibly all other states may be
0
reachable by a sequence of transitions
To
00
01
7
0
1
000
2
3
10A
0
101
111
0
8
11
10
Who
Frame
Frame network
Transition runs? accepted emitted layer
01A
010
0
1
2
3
4
5
6
7
8
R
S
R
S
R
R
S
S
(frame lost)
0
A
1
A
0
1
(timeout)
(timeout)
A
1
A
0
A
A
0
1
Yes
Yes
No
No
8
(a)
(b)
Initial state (000): sender has just sent frame 0, receiver is expecting frame 0, and frame 0 is
currently in channel
Transition 0 consists of channel losing its contents, transition 1 consists of channel correctly
delivering frame 0 to receiver, and so on
During normal operation, transitions 1,2,3,4 are repeated in order over and over: in each cycle,
two frames are delivered, bringing sender back to initial state
58
S Chen
Summary
Flow control and error control techniques for data link layer:
Stop and wait ARQ, sliding window, go-back-n, selective-reject (repeat)
Data link layer (part I) discussed so far:
It is concerned with making a point-to-point link reliable, and is responsible for
transmitting frames from sender to receiver, can only use physical layer to do job
Error control and flow control (ACKs, NAKs, CRC, sliding windows, sequence
numbers, go-back-n etc.):
How these are included in a data link layer protocol will be discussed in next lecture
59