Ch. 8 Data Link Control - Sogang OCWocw.sogang.ac.kr/rfile/2013/course06-Data/chapter08_20130709135615.pdf · Framing in the data link layer separates a message from one source to

Post on 09-May-2019

213 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

Ch. 8 Data Link Control

1. Framing

2

The data link layer needs to pack bits into frames, so

that each frame is distinguishable from another. Our

postal system practices a type of framing. The simple

act of inserting a letter into an envelope separates one

piece of information from another; the envelope serves

as the delimiter.

Fixed-Size Framing

Variable-Size Framing

Topics discussed in this section:

Framing in the data link layer separates a message from one source to a destination, or from other messages to other destinations, by adding a sender address and a destination address.

Frames can be of fixed or variable size.

Fixed-Size Framing

– There is no need of defining the boundaries of the frames.

– This size itself can be used as a delimiter.

– Example: ATM wide-are network, which uses frames of fixed size called cells (5+48=53 bytes).

Variable-Size Framing

– Need a way to define the end of the frame and the beginning of the next.

– Example: prevalent in local-area network

– Two approaches: character-oriented protocols, Bit-oriented protocols

3

Character-Oriented Protocols

Data to be carried are 8-bit characters from a coding system such as ASCII.

– Header: normally carries the source and destination address and other control information.

– Trailer: carries error detection or error correction redundant bits.

– Flag: To separate one frame from the next, an 8-bit (1 byte) flag is added at the beginning and the end of a frame.

4

A frame in a character-oriented protocol

Byte-stuffing

– The flag could be selected to be any character not used for text communication. Any pattern used for the flag could also be part of the information. The receiver thinks it has reached the end of the frame.

– To fix this problem, a byte-stuffing strategy was added to character-oriented framing. A special byte, usually called the escape character (ESC), is added to the data section of the frame when there is a character with the same pattern as the flag.

5

Byte stuffing and unstuffing

Byte stuffing is the process of adding 1 extra byte whenever there is a flag or

escape character in the text.

Bit-Oriented Protocols

The data section of a frame is a sequence of bits to be interpreted by the upper layer as text, graphic, audio, video, and so on.

Most protocols use a special 8-bit pattern flag 01111110 as the delimiter to define the beginning and the end of the frame.

6

A frame in a bit-oriented protocol

Bit stuffing

7

Bit stuffing is the process of adding one extra 0 whenever five consecutive 1s

follow a 0 in the data, so that the receiver does not mistake

the pattern 0111110 for a flag.

Bit stuffing and unstuffing

2. Flow And Error Control

8

The most important responsibilities of the data link

layer are flow control and error control. Collectively,

these functions are known as data link control.

Flow Control

Error Control

Topics discussed in this section:

End-to-end versus hop-by-hop approaches

9

Flow Control

– Flow control coordinates the amount of data that can be sent before receiving an acknowledgement.

– The flow of data must not be allowed to overwhelm the receiver.

– Each receiving device has a block of memory, called a buffer, reserved for storing incoming data until they proceed. If the buffer begins to fill up, the receiver must be able to tell the sender to halt transmission until it is once again able to receive.

Error Control

– Error control is both error detection and error correction.

– Any time an error is detected in an exchange, specified frames are retransmitted. This process is called automatic repeat request (ARQ).

10

Flow control refers to a set of procedures used to restrict the amount of

data that the sender can send before waiting for acknowledgment.

Error control in the data link layer is based on automatic repeat

request, which is the retransmission of data.

3. Data-link Layer Protocols

11

Now let us see how the data link layer can combine

framing, flow control, and error control to achieve the

delivery of data from one node to another.

The protocols are normally implemented in software by

using one of the common programming languages. To

make our discussions language-free, we have written in

pseudocode a version of each protocol that concentrates

mostly on the procedure instead of delving into the

details of language rules.

Basic elements of ARQ

12

13

Taxonomy of protocols discussed in this chapter

4. Noiseless Channels

14

Let us first assume we have an ideal channel in which no frames

are lost, duplicated, or corrupted. We introduce two protocols for

this type of channel.

• The first is a protocol does not use flow control

• The second is the one that does.

Because of a perfect noiseless channel, neither has error control.

Simplest Protocol

Stop-and-Wait Protocol

Topics discussed in this section:

Simplest Protocol

No need for flow or error control.

Assumption

– The receiver can immediately handle any frame without delay.

– Unidirectional protocol in which data frames are traveling in only one direction.

(1) Design

– We need to introduce the idea of events in the protocol.

– At the sender, the procedure is constantly running; no action until there is a request from the network layer.

– At the receiver, the procedure is also constantly running; no action until notification from the physical layer

15

16

The design of the simplest protocol with no flow or error control

(2) Algorithms

17

Algorithm: Sender-site algorithm for the simplest protocol

18

Algorithm: Receiver-site algorithm for the simplest protocol

19

Figure shows an example of communication using this protocol. It is

very simple. The sender sends a sequence of frames without even

thinking about the receiver. To send three frames, three events occur

at the sender site and three events at the receiver site.

Note that the data frames are shown by tilted boxes; the height of the

box defines the transmission time difference between the first bit and

the last bit in the frame.

Example

20

Figure: Flow diagram for Example

Stop-and-Wait Protocol

Stop-and-Wait Protocol

– The sender sends one frame, stops until it receives confirmation from the receiver (okay to sender ahead), and then sends the next frame.

Assumption

– Unidirectional communication for data frames,

– but auxiliary ACK frames travel from the other direction.

(1) Design

– At any time, there is either one data frame on the forward channel or one ACK frame on the reverse channel. a half-duplex link.

21

22

Design of Stop-and-Wait Protocol

(2) Algorithms

23

Algorithm: Sender-site algorithm for Stop-and-Wait Protocol

24

Algorithm: Receiver-site algorithm for Stop-and-Wait Protocol

25

Figure shows an example of communication using this protocol. It is

still very simple.

The sender sends one frame and waits for feedback from the receiver.

When the ACK arrives, the sender sends the next frame.

Note that sending two frames in the protocol involves the sender in

four events and the receiver in two events.

Example

26

Figure: Flow diagram for Example

5. Noisy Channels

27

Although the Stop-and-Wait Protocol gives us an idea of

how to add flow control to its predecessor, noiseless

channels are nonexistent. We discuss three protocols in

this section that use error control.

Stop-and-Wait Automatic Repeat Request

Go-Back-N Automatic Repeat Request

Selective Repeat Automatic Repeat Request

Topics discussed in this section:

Stop-and-Wait ARQ

If the receiver does not respond when there is an error, how can the sender know which frame to resend?

To remedy this problem,

Sequence Numbers (SN)

– If the field is m bits long, the sequence numbers starts from 0, go to 2m-1, and then are repeated.

1. If the sender receives a ACK from the receiver, the sender sends the next frame numbered x+1.

2. If the ACK is corrupted or lost, the sender resends the frame numbered x. Duplicated but the receiver recognize this fact because of the SN.

3. If the frame is corrupted or lost, the sender resends the frame numbered x after the time-out.

Error correction in Stop-and-Wait ARQ is done by keeping a copy of

the sent frame and retransmitting of the frame when the timer expires.

In Stop-and-Wait ARQ, we use sequence numbers to number the

frames. The sequence numbers are based on modulo-2 arithmetic.

Acknowledgment Numbers

– If frame 1 has arrived safe and sound, the receiver sends an ACK frame with acknowledgement 0 (meaning frame 0 is expected).

In Stop-and-Wait ARQ, the acknowledgment number always

announces in modulo-2 arithmetic the sequence number of the next

frame expected.

Stop-and-Wait ARQ

30

31

Design of the Stop-and-Wait ARQ Protocol

Algorithm: Sender-site algorithm for Stop-and-Wait ARQ

(continued)

Algorithm: Sender-site algorithm for Stop-and-Wait ARQ (continued)

Algorithm: Receiver-site algorithm for Stop-and-Wait ARQ Protocol

Figure shows an example of Stop-and-Wait ARQ.

Frame 0 is sent and acknowledged.

Frame 1 is lost and resent after the time-out. The resent frame 1 is

acknowledged and the timer stops.

Frame 0 is sent and acknowledged, but the acknowledgment is lost.

The sender has no idea if the frame or the acknowledgment is lost,

so after the time-out, it resends frame 0, which is acknowledged.

Example

Figure: Flow diagram for Example

Assume that, in a Stop-and-Wait ARQ system, the

bandwidth of the line is 1 Mbps, and 1 bit takes 20 ms to

make a round trip. What is the bandwidth-delay product?

If the system data frames are 1000 bits in length, what is

the utilization percentage of the link?

Example

2) The system can send 20,000 bits during the time it takes for the

data to go from the sender to the receiver and then back again.

However, the system sends only 1000 bits. We can say that the link

utilization is only 1000/20,000, or 5 percent.

For this reason, for a link with a high bandwidth or long delay, the

use of Stop-and-Wait ARQ wastes the capacity of the link.

Solution 1) The bandwidth-delay product is

What is the utilization percentage of the link in the previous

Example if we have a protocol that can send up to 15 frames

before stopping and worrying about the acknowledgments?

Solution

The bandwidth-delay product is still 20,000 bits.

The system can send up to 15 frames or 15,000 bits during a round

trip.

This means the utilization is 15,000/20,000, or 75 percent. Of course,

if there are damaged frames, the utilization percentage is much less

because frames have to be resent.

Example

Go-Back-N ARQ

To improve the efficiency of transmission, multiple frames must be in transition while waiting for acknowledgment.

Go-Back-N ARQ

– We can send several frames before receiving acknowledgments;

– We keep a copy of these frames until the acknowledgements arrive.

Sequence Numbers

– The sequence numbers range from 0 to 2m-1.

– For example, if m = 4, SN = {0, 1, 2, …, 15, 0, 1, 2, …}

41

In the Go-Back-N Protocol, the sequence numbers are modulo 2m,

where m is the size of the sequence number field in bits.

Sliding Window

– An abstract concept that defines the range of sequence numbers that is the concern of the sender and receiver.

The acknowledgements are cumulative, meaning that more than one frame can be acknowledged by an ACK frame.

42

The send window is an abstract concept defining an imaginary box of

size 2m − 1 with three variables: Sf, Sn, and Ssize.

The send window can slide one

or more slots when a valid acknowledgment arrives.

Figure: Send window for Go-Back-N ARQ

By one ACK frame

Receive Sliding Window

– The receive window slides only one slot at a time.

44

The receive window is an abstract concept defining an imaginary box

of size 1 with one single variable Rn.

The window slides when a correct frame has arrived; sliding occurs

one slot at a time.

In Go-Back-N ARQ, the size of the send window must be less than 2m;

the size of the receiver window is always 1.

Figure: Receive window for Go-Back-N ARQ

Timers

– We use only one timer.

– The reason is that the timer for the first outstanding frame always expires first; we send all outstanding frames when this timer expires.

Acknowledgement

– The receiver sends a positive acknowledgement.

– If a frame is damaged or is received out of order,

The receiver is silent and will discard all subsequent frames until it receives the one it is expecting.

After timer expires, the resends all outstanding frames.

– The receiver does not have to acknowledge each frame received. It can send one cumulative acknowledgement for several frames.

Resending a Frame

– For example, the sender has already sent frame 6, but the timer for frame 3 expires.

– The sender goes back and sends frames 3, 4, 5, and 6 again.

46

Go-Back-N ARQ

47

48

Figure: Design of Go-Back-N ARQ

Figure: Window size for Go-Back-N ARQ

As an example, m = 2 and all acknowledgments are lost

Algorithm: Go-Back-N sender algorithm

(continued)

Algorithm: Go-Back-N sender algorithm (continued)

(Temp) ;

Temp = Temp + 1 ;

Receive (ACK);

if (corrupted(ACK))

Sleep();

if ((ackNo>Sf) && (ackNo<=Sn))

{

while(Sf < ackNo)

{

PurgeFrame(Sf);

Sf = Sf + 1;

}

StopTimer();

if (ackNo!=Sn) StartTimer();

}

Algorithm: Go-Back-N receiver algorithm

Example

Figure shows an example of Go-Back-N. This is an example of a case

where the forward channel is reliable, but the reverse is not. No data

frames are lost, but some ACKs are delayed and one is lost. The

example also shows how cumulative acknowledgments can help if

acknowledgments are delayed or lost. After initialization, there are

seven sender events. Request events are triggered by data from the

network layer; arrival events are triggered by acknowledgments from

the physical layer. There is no time-out event here because all

outstanding frames are acknowledged before the timer expires. Note

that although ACK 2 is lost, ACK 3 serves as both ACK 2 and ACK 3.

Figure: Flow diagram for Example

Figure shows what happens when a frame is lost. Frames 0, 1, 2, and 3 are

sent. However, frame 1 is lost. The receiver receives frames 2 and 3, but

they are discarded because they are received out of order. The sender

receives no acknowledgment about frames 1, 2, or 3. Its timer finally

expires. The sender sends all outstanding frames (1, 2, and 3) because it

does not know what is wrong. Note that the resending of frames 1, 2, and 3

is the response to one single event. When the sender is responding to this

event, it cannot accept the triggering of other events. This means that when

ACK 2 arrives, the sender is still busy with sending frame 3.

The physical layer must wait until this event is completed and the data link

layer goes back to its sleeping state. We have shown a vertical line to

indicate the delay. It is the same story with ACK 3; but when ACK 3 arrives,

the sender is busy responding to ACK 2. It happens again when ACK 4

arrives. Note that before the second timer expires, all outstanding frames

have been sent and the timer is stopped.

Example

Figure: Flow diagram for Example

Stop-and-Wait ARQ is a special case of Go-Back-N ARQ in which the

size of the send window is 1.

Selective Repeat ARQ

Selective Repeat ARQ

– Does not resend N frames when just one frame is damaged;

– Only the damaged frame is resent.

Windows

– Two windows: a send window and a receive window

– Size: 2m-1 (the two windows has the same size)

– The smaller window size means less efficiency but fewer duplicate frames

59

In Selective Repeat ARQ, the size of the sender and receiver window

must be at most one-half of 2m.

Figure: Send window for Selective Repeat ARQ

Figure: Receive window for Selective Repeat ARQ

62

Figure: Design of Selective Repeat ARQ

Figure: Selective Repeat ARQ, window size

As an example, m = 2 and all acknowledgments are lost

0 is the part of window

Algorithm: Sender-site Selective Repeat algorithm

(continued)

Algorithm: Sender-site Selective Repeat algorithm (continued)

(continued)

- If a valid NAK frame arrives, we just

resend the corresponding frame.

- If a valid ACK frame arrives, we use

a loop to purge the buffers, stop the

corresponding timer, and move the left

wall of the window.

Algorithm: Sender-site Selective Repeat algorithm (continued)

Algorithm: Receiver-site Selective Repeat algorithm

Algorithm: Receiver-site Selective Repeat algorithm

Figure: Delivery of data in Selective Repeat ARQ

This example is similar to previous Example in which frame 1 is lost. We show how

Selective Repeat behaves in this case. Figure shows the situation. One main

difference is the number of timers. Here, each frame sent or resent needs a timer,

which means that the timers need to be numbered (0, 1, 2, and 3). The timer for

frame 0 starts at the first request, but stops when the ACK for this frame arrives.

The timer for frame 1 starts at the second request, restarts when a NAK arrives,

and finally stops when the last ACK arrives. The other two timers start when the

corresponding frames are sent and stop at the last arrival event.

At the receiver site we need to distinguish between the acceptance of a frame and

its delivery to the network layer. At the second arrival, frame 2 arrives and is stored

and marked, but it cannot be delivered because frame 1 is missing. At the next

arrival, frame 3 arrives and is marked and stored, but still none of the frames can

be delivered. Only at the last arrival, when finally a copy of frame 1 arrives, can

frames 1, 2, and 3 be delivered to the network layer. There are two conditions for

the delivery of frames to the network layer: First, a set of consecutive frames must

have arrived. Second, the set starts from the beginning of the window.

Example

Another important point is that a NAK is sent after the second arrival,

but not after the third, although both situations look the same. The

reason is that the protocol does not want to crowd the network with

unnecessary NAKs and unnecessary resent frames. The second NAK

would still be NAK1 to inform the sender to resend frame 1 again;

this has already been done. The first NAK sent is remembered (using

the nakSent variable) and is not sent again until the frame slides. A

NAK is sent once for each window position and defines the first slot

in the window.

The next point is about the ACKs. Notice that only two ACKs are sent

here. The first one acknowledges only the first frame; the second one

acknowledges three frames. In Selective Repeat, ACKs are sent when

data are delivered to the network layer. If the data belonging to n

frames are delivered in one shot, only one ACK is sent for all of them.

Figure: Flow diagram for Example

Piggybacking

When a frame is carrying data from A to B, it can also carry control information about arrived (or lost) frames from B.

74

Figure: Design of piggybacking in Go-Back-N ARQ

Transmission Efficiency of ARQ Protocols

75

The loss in transmission efficiency due to the need to provide headers and CRC checks.

The loss in efficiency due to the time required for the acknowledgment message.

The delay-bandwidth product.

76

Transmission Efficiency of ARQ Protocols

The example considers the case of a 1024 byte frame, a 1.5 Mbps channel over a moderate-distance link, that is, 5 ms, where Go-Back-N and Selective Repeat ARQ use window of size 4.

77

Selecting the frame length

As the frame length is increased, the impact of the delay-bandwidth product is reduced. However, increasing the frame length also increases the probability of frame transmission error.

78

Derivation of Efficiency of ARQ Protocols

Review the effective transmission time and the transmission efficiency

We need to calculate the average total time, , required to deliver a correct frame.

79

Stop-and-Wait ARQ

80

81

Go-Back-N ARQ

82

Selective Repeat ARQ

83

84

Summary

* Flow control is the regulation of the sender’s data rate so that the receiver buffer does not become overwhelmed.

* Error control is both error detection and error correction.

* In Stop-and-Wait ARQ, the sender sends a frame and waits for an acknowledgment from the receiver before sending the next frame.

* In Go-Back-N ARQ, multiple frames can be in transit at the same time. If there is an error, retransmission begins with the last unacknowledged frame even if subsequent frames have arrived correctly. Duplicate frames are discarded.

* In Selective Repeat ARQ, multiple frames can be in transit at the same time. If there is an error, only the unacknowledged frame is retransmitted.

* Flow control mechanisms with sliding windows have control variables at both sender and receiver sites.

* Piggybacking couples an acknowledgment with a data frame.

85

top related