Você está na página 1de 34

Data Link Layer

Networks: Data Link Layer

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.
Networks: Data Link Layer

(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

Physical layer entity


Data link layer entity

2 1

Network layer entity

Figure 5.2

Leon-Garcia & Widjaja: Communication Networks

Networks: Data Link Layer

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

Leon-Garcia & Widjaja: Communication Networks

Networks: Data Link Layer

ACK/
NAK
Copyright 2000 The McGraw Hill Companies

Tanenbaums Data Link


Treatment
Concerned with communication between two
adjacent nodes in the subnet (node to node).
Assumptions:
Bits delivered in the order sent.
Rigid interface between the HOST and the node
the communications policy and the Host
protocol (with OS effects) can evolve separately.
uses a simplified model.
Networks: Data Link Layer

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
students understand the data link layer issues.
Networks: Data Link Layer

Basic Elements of ARQ


Error-free
packet
sequence

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

Leon-Garcia & Widjaja: Communication Networks

Networks: Data Link Layer

Figure 5.8

Tanenbaums Protocol Definitions

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.

Networks: Data Link Layer

packet
network layer

buffer
frame

data link layer

info

ack

seq

physical layer

Networks: Data Link Layer

10

kind

Figure 3-10.
Unrestricted
Simplex
Protocol

Networks: Data Link Layer

11

Figure 3-11.
Simplex
Stop-andWait
Protocol

Networks: Data Link Layer

12

Ambiguities with Stop-and-Wait


[unnumbered frames]
(a) Frame 1 lost
A

Time-out
time

frame
0

frame
1
ACK

(b) ACK lost


A

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

Leon-Garcia & Widjaja: Communication Networks

Networks: Data Link Layer

Figure 5.9

13

State Machine for Stop-and-Wait


0

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)

Copyright 2000 The McGraw Hill Companies

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

Leon-Garcia & Widjaja: Communication Networks

Networks: Data Link Layer

14

#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);
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

PAR [OLD] problem


Ambiguities when ACKs are not numbered

time-out
A

frame
0
ACK

time
frame
0
ACK

frame
1

frame
2

Transmitting station A misinterprets duplicate ACKs

Copyright 2000 The McGraw Hill Companies

Leon-Garcia & Widjaja: Communication Networks

Networks: Data Link Layer

Figure 5.10

17

Simplex
Protocol
for a
Noisy
Channel

Figure 3-12.A positive acknowledgement with retransmission protocol.


Networks: Data Link Layer

18
Continued

A Simplex Protocol for a Noisy Channel

Figure 3-12.A positive acknowledgement with retransmission protocol.


Networks: Data Link Layer

19

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.


Networks: Data Link Layer

20

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.
Networks: Data Link Layer

21

Networks: Data Link Layer

22

Sliding Window Protocols


Each outbound frame must contain a sequence number. With n
bits for the sequence number field, maxseq = 2n - 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.
Networks: Data Link Layer

23

Sliding Window Protocols


Host is oblivious, message order at
transport level is maintained.
senders 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.
Networks: Data Link Layer

24

Sliding Window Protocols


All frames in the senders window must be
saved for possible retransmission and we
need one timer per frame in the window.
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.
Networks: Data Link Layer

25

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.
Networks: Data Link Layer

26

Standard Ways to ACK

1. ACK sequence number indicates the last


frame successfully received.
- OR 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.
Networks: Data Link Layer

27

Go Back N

4 frames are outstanding; so go back 4

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

ACKing next frame expected


Copyright 2000 The McGraw Hill Companies

Leon-Garcia & Widjaja: Communication Networks

Networks: Data Link Layer

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

Leon-Garcia & Widjaja: Communication Networks

Networks: Data Link Layer

Figure 5.17

29

Networks: Data Link Layer

30

Networks: Data Link Layer

31

Selective Repeat
with NAK error recovery

fr
0

fr
1

fr
2

A
C
K
1

fr
3

A
C
K
2

Copyright 2000 The McGraw Hill Companies

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

Leon-Garcia & Widjaja: Communication Networks

Networks: Data Link Layer

A
C
K
1
2

Figure 5.21

32

Networks: Data Link Layer

33

Networks: Data Link Layer

34

Você também pode gostar