Escolar Documentos
Profissional Documentos
Cultura Documentos
(a)
Packets
Packets
Data link
Layer
Data link
Layer
Frames
(b)
1 2
2 1
Medium
A
1
2
Copyright 2000 The McGraw Hill Companies
Physical
Layer
Physical
Layer
1 2
2
1
2 1
Figure 5.2
End to End
ACK/NAK
2
Data
3
Data
Data
Data
Hop by Hop
Data
1
Data
2
ACK/
NAK
Figure 5.7
Data
3
ACK/
NAK
Data
4
ACK/
NAK
ACK/
NAK
Copyright 2000 The McGraw Hill Companies
Host
A
Node
1
Layer
Layer4 4
Layer 2
frame
Host
B
Node
2
Information
frames
Packet
sequence
Transmitter
Receiver
Station A
Control
frames
CRC
Station B
CRC
Information
packet
Header
Header
Control frame
Information Frame
Copyright 2000 The McGraw Hill Companies
Figure 5.8
Continued
Figure 3-9. Some definitions needed in the protocols to
follow. These are located in the file protocol.h.
Networks: Data Link Layer
Protocol
Definitions
(continued.)
Figure 3-9. Some
definitions needed in
the protocols to
follow. These are
located in the file
protocol.h.
packet
network layer
buffer
frame
info
ack
seq
physical layer
10
kind
Figure 3-10.
Unrestricted
Simplex
Protocol
11
Figure 3-11.
Simplex
Stop-andWait
Protocol
12
Time-out
time
frame
0
frame
1
ACK
frame
1
frame
2
ACK
Time-out
time
frame
0
frame
1
ACK
ACK
frame
1
ACK
frame
2
In parts (a) and (b) transmitting station A acts the same way, but part (b)
receiving station B accepts frame 1 twice.
Copyright 2000 The McGraw Hill Companies
Figure 5.9
13
1 0
1 0
1 0
1 0
1 0
1 0
Rnext
Slast
Timer
Slast
Transmitter
Rnext
Station A
(0,0)
Global State:
(Slast, Rnext)
Station B
Error-free frame 0
arrives at receiver
ACK for
frame 1
arrives at
transmitter
(1,0)
Receiver
(0,1)
ACK for
frame 0
arrives at
transmitter
Error-free frame 1
arrives at receiver
(1,1)
Figure 5.11
14
#define MAX_SEQ 1
typedef enum {frame_arrival, cksum_err, timeout} event_type;
include protocol.h
{
seq_nr next_frame_to_send;
frame s;
packet buffer;
event_type event;
next_frame_to_send = 0;
from_network_layer (&buffer);
while (true)
{ s.info = buffer;
s.seq = next_frame_to_send;
to_physical_layer (&s);
start_timer (s.seq);
wait_for_event(&event);
if (event == frame_arrival) {
from_network_layer (&buffer);
inc (next_frame_to_send);
Protocol 3
(PAR) Positive ACK
with Retransmission
[Old Tanenbaum Version]
}
}
}
Networks: Data Link Layer
15
Protocol 3
void receiver_par (void)
{
(PAR) Positive ACK
seq_nr next_frame_to_send;
with Retransmission
frame r, s;
[Old Tanenbaum Version]
event_type event;
frame_expected = 0;
while (true)
{ wait_for_event (&event);
if (event == frame_arrival)
{
from_physical_layer (&r);
if (r.seq == frame_expected) {
to_network_layer(&r.info);
inc (frame_expected);
}
to_physical_layer (&s);
/* Note no sequence number on ACK */
}
}
}
Networks: Data Link Layer
16
time-out
A
frame
0
ACK
time
frame
0
ACK
frame
1
frame
2
Figure 5.10
17
Simplex
Protocol
for a
Noisy
Channel
18
Continued
19
20
21
22
23
24
25
26
27
Go Back N
Go-Back-4:
fr
0
fr
1
fr
2
A
C
K
1
fr
3
A
C
K
2
fr
4
A
C
K
3
fr
5
fr
6
fr
3
fr
4
fr
5
Out-of-sequence frames A
C
K
4
error
fr
6
fr
7
A
C
K
5
fr
8
A
C
K
6
time
fr
9
A
C
K
7
A
C
K
8
A
C
K
9
Figure 5.13
28
Go Back N
with NAK error recovery
Transmitter goes back to frame 1
Go-Back-7:
fr
0
fr
1
fr
2
fr
3
fr
4
fr
5
fr
1
fr
2
fr
3
fr
4
fr
5
fr
6
fr
7
time
fr
0
B
A
C
K
1
N
A
K
1
Out-of-sequence
frames
A
C
K
2
A
C
K
3
A
C
K
4
A
C
K
5
A
C
K
6
A
C
K
7
error
Copyright 2000 The McGraw Hill Companies
Figure 5.17
29
30
31
Selective Repeat
with NAK error recovery
fr
0
fr
1
fr
2
A
C
K
1
fr
3
A
C
K
2
fr
4
fr
5
error
fr
6
N
A
K
2
A
C
K
2
fr
2
fr
7
A
C
K
2
A
C
K
2
fr
8
fr
9
A
C
K
7
fr
10
A
C
K
8
fr
11
A
C
K
9
time
fr
12
A
C
K
1
0
A
C
K
1
1
A
C
K
1
2
Figure 5.21
32
33
34