Data Link Layer

Download Report

Transcript Data Link Layer

Data Link Layer
Data Link Layer
1
Data Link Layer
• Provides a well-defined service interface to the
network layer.
• Determines how the bits of the physical layer
are grouped into frames (framing).
• Deals with transmission errors (CRC and ARQ).
• Regulates the flow of frames.
• Performs general link layer management.
Data Link Layer
2
(a)
A
Packets
Packets
Data link
Layer
Data link
Layer
Frames
Physical
Layer
Physical
Layer
B
(b)
1 2
3
2 1
Medium
A
1
Copyright ©2000 The McGraw Hill Companies
3
B
2
1
2 1
Physical layer entity
3
2
1 2
Network layer entity
Data link layer entity
Figure 5.2
Leon-Garcia & Widjaja: Communication Networks
Data Link Layer
3
End to End
ACK/NAK
1
2
Data
3
4
Data
Data
5
Data
Hop by Hop
Data
1
Data
Data
2
ACK/
NAK
3
ACK/
NAK
Data
4
ACK/
NAK
5
ACK/
NAK
Figure 5.7
Copyright ©2000 The McGraw Hill Companies
Data Link Layer
Leon-Garcia & Widjaja: Communication Networks
4
Tanenbaum’s Data Link
Treatment
• Concerned with communication between two
adjacent nodes in the subnet (IMP to IMP).
• Assumptions:
– Bits delivered in the order sent
– Rigid interface between the HOST and the node
 the communications policy and the Host
protocol (with OS affects) can evolve separately.
– uses a simplified model
Data Link Layer
5
Host
A
Node
1
Layer
Layer4 4
Layer 2
frame
Host
B
Node
2
Data Link Layer Model
Assume Host has infinite supply of messages.
Node constructs frame from a single packet message.
Checksum is automatically appended in the hardware.
Protocols are developed in increasing complexity to help
Understand the data link layer issues.
Data Link Layer
6
Basic Elements of ARQ
Error-free
packet
sequence
Information
frames
Packet
sequence
Transmitter
Receiver
Station A
Control
frames
Station B
CRC
CRC
Information
packet
Header
Header
Control frame
Information Frame
Copyright ©2000 The McGraw Hill Companies
Leon-Garcia & Widjaja: Communication Networks
Data Link Layer
Figure 5.8
7
packet
network layer
buffer
frame
data link layer
info
ack
seq
kind
physical layer
Data Link Layer
8
Protocol 3 (PAR) Positive ACK with Retransmission [Old Tanenbaum Version]
#define MAX_SEQ 1
typedef enum {frame_arrival, cksum_err, timeout} event_type;
include “protocol.h”
void sender_par (void)
{
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);
if (event == frame_arrival) {
from_network_layer (&buffer);
inc (next_frame_to_send);
}
}
}
Data Link Layer
9
Protocol 3 (PAR) Positive ACK with Retransmission [Old Tanenbaum Version]
void receiver_par (void)
{
seq_nr next_frame_to_send;
frame r, s;
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 */
}
}
}
Data Link Layer
10
Ambiguities with Stop-and-Wait
[unnumbered frames]
(a) Frame 1 lost
A
Time-out
time
frame
0
frame
1
ACK
B
(b) ACK lost
A
frame
1
frame
2
ACK
Time-out
time
frame
0
B
frame
1
ACK
frame
1
ACK
frame
2
ACK
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
Leon-Garcia & Widjaja: Communication Networks
Data Link Layer
Figure 5.9
11
PAR [OLD] problem
Ambiguities when ACKs are not numbered
time-out
A
time
frame
0
ACK
B
frame
0
ACK
frame
1
frame
2
Transmitting station A misinterprets duplicate ACKs
Copyright ©2000 The McGraw Hill Companies
Leon-Garcia & Widjaja: Communication Networks
Data Link Layer
Figure 5.10
12
State Machine for Stop-and-Wait
0 1 0 1 0 1 0 1
0 1 0 1 0 1 0 1
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
Error-free frame 1
arrives at receiver
(1,0)
Copyright ©2000 The McGraw Hill Companies
Receiver
(0,1)
ACK for
frame 0
arrives at
transmitter
(1,1)
Leon-Garcia & Widjaja: Communication Networks
Data Link Layer
Figure 5.11
13
Data Link Layer
14
Sliding Window Protocols
[Tanenbaum]
• Must be able to transmit data in both directions.
• Choices for utilization of the reverse channel:
– mix DATA frames with ACK frames.
– Piggyback the ACK
• Receiver waits for DATA traffic in the opposite direction.
• Use the ACK field in the frame header to send sequence
number of frame being ACKed.
–  better use of the channel capacity.
Data Link Layer
15
Sliding Window Protocols
• ACKs introduce a new issue – how long does
receiver wait before sending ONLY an ACK
frame.
We need an ACKTimer!!
 sender timeout period needs to set longer.
• The protocol must deal with the premature
timeout problem and be “robust” under
pathological conditions.
Data Link Layer
16
Sliding Window Protocols
Each outbound frame must contain a sequence number. With n
bits for the sequence number field, maxseq = 2**n - 1 and the
numbers range from 0 to maxseq.
Sliding window :: sender has a window of frames and maintains a
list of consecutive sequence numbers for frames that it is
permitted to send without waiting for ACKs.
receiver has a window that is a list of frame sequence numbers it
is permitted to accept.
Note – sending and receiving windows do NOT have to be the
same size.
Windows can be fixed size or dynamically growing and shrinking.
Data Link Layer
17
Sliding Window Protocols
• Host is oblivious, message order at transport level
is maintained.
sender’s window :: frames sent but not yet ACKed.
– new packets from the Host cause the upper
edge inside sender window to be incremented.
– ACKed frames from the receiver cause the
lower edge inside window to be incremented.
• All frames in the sender’s window must be saved
for possible retransmission and we need one timer
per frame in the window.
Data Link Layer
18
Sliding Window Protocols
• If the maximum sender window size is B,
the sender needs B buffers.
• If the sender window gets full (i.e., reaches
its maximum window size, the protocol
must shut off the Host (the network layer)
until buffers become available.
• receiver window
Frames received with sequence numbers outside
the receiver window are not accepted.
Data Link Layer
19
Sliding Window Protocols
receiver window
– Frames received with sequence numbers
outside the receiver window are not accepted.
– The receiver window size is normally static.
The set of acceptable sequence numbers is
rotated as “acceptable” frames arrive.
a receiver window size = 1  the protocol
only accepts frames in order.
There is referred to as Go Back N.
Data Link Layer
20
Standard Ways to ACK
1. ACK sequence number indicates the last
frame successfully received.
2. ACK sequence number indicates the next
frame the receiver expects to receive.
Both of these can be strictly individual ACKs
or represent cumulative ACKing.
Cumulative ACKing is the most common
technique.
Data Link Layer
21
Go Back N
4 frames are outstanding; so go back 4
Go-Back-4:
fr
0
fr
1
fr
2
fr
3
fr
4
fr
5
fr
6
fr
3
fr
4
fr
5
fr
6
fr
7
A
B
A
C
K
1
A
C
K
2
A
C
K
3
Out-of-sequence frames A
C
K
4
error
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
ACKing next frame expected
Copyright ©2000 The McGraw Hill Companies
Leon-Garcia & Widjaja: Communication Networks
Data Link Layer
Figure 5.13
22
Go Back N
with NAK error recovery
Transmitter goes back to frame 1
Go-Back-7:
A
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
Leon-Garcia & Widjaja: Communication Networks
Data Link Layer
Figure 5.17
23
Selective Repeat
with NAK error recovery
A
fr
0
fr
1
fr
2
fr
3
fr
4
fr
5
fr
6
fr
2
fr
7
A
C
K
2
A
C
K
2
fr
8
fr
9
fr
10
fr
11
time
fr
12
B
A
C
K
1
A
C
K
2
Copyright ©2000 The McGraw Hill Companies
error
N
A
K
2
A
C
K
2
A
C
K
7
A
C
K
8
A
C
K
9
Leon-Garcia & Widjaja: Communication Networks
Data Link Layer
A
C
K
1
0
A
C
K
1
1
A
C
K
1
2
Figure 5.21
24