Day 18

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 42

Chapter 11

Data Link Control


FRAMING

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


that each frame is distinguishable from another.
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
Framing(cont.)

• Frames can be of fixed or variable size.


• In fixed-size framing, there is no need for defining the

boundaries of the frames; the size itself can be used as a

delimiter . Example is framing in ATM wide-area network


• In variable-size framing, we need a way to define the end of

the frame and the beginning of the next. Used in LANs.


• Two approaches for Variable size framing: a character-
A frame in a character-oriented protocol

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

ASCII
• The header, which normally carries the source and destination addresses

and other control information, and the trailer, which carries error

detection or error correction redundant bits, are also multiples of 8 bits


• To separate one frame from the next, an 8-bit (I-byte) flag is added at the

beginning and the end of a frame. The flag, composed of protocol-


Byte stuffing and unstuffing
Byte stuffing and unstuffing
• In byte stuffing (or character stuffing), a special byte is
added to the data section of the frame when there is a
character with the same pattern as the flag.
• The data section is stuffed with an extra byte. This byte
is usually called the escape character (ESC), which has
a predefined bit pattern.
• Whenever the receiver encounters the ESC character, it
removes it from the data section and treats the next
character as data, not a delimiting flag
Note

Byte stuffing is the process of adding 1


extra byte whenever there is a flag or
escape character in the text.
A frame in a bit-oriented protocol

Most protocols use a special 8-bit pattern flag 01111110 as the

delimiter to define the beginning and the end of the frame


Bit stuffing and unstuffing
Note

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.
FLOW AND ERROR CONTROL

The most important responsibilities of the data link


layer are flow control and error control. Collectively,
these functions are known as data link control.
Note

Flow control refers to a set of procedures


used to restrict the amount of data
that the sender can send before
waiting for acknowledgment.
Note

Error control in the data link layer is


based on automatic repeat
request(ARQ), which is the
retransmission of data.
PROTOCOLS

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.
Taxonomy of protocols
NOISELESS CHANNELS

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 design of the simplest protocol with no flow or
error control
Algorithm: Sender-site algorithm for the simplest protocol
Algorithm: Receiver-site algorithm for the simplest protoco
Example

The Figure in the next slide 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.
Flow diagram for Example
Design of Stop-and-Wait Protocol
Algorithm: Sender-site algorithm for Stop-and-Wait Protocol
Algorithm: Receiver-site algorithm for Stop-and-Wait Protocol
Example

The figure in the following slides 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.
Flow diagram for Example
NOISY CHANNELS

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 ARQ

• To detect and correct corrupted frames, we need to add redundancy bits

to our data frame. When the frame arrives at the receiver site, it is

checked and if it is corrupted, it is silently discarded. The detection of

errors in this protocol is manifested by the silence of the receiver.


• To identify lost frames the solution is to number the frames. When the

receiver receives a data frame that is out of order, this means that frames

were either lost or duplicated.


Note

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.
Note

In Stop-and-Wait ARQ, we use sequence


numbers to number the frames.
The sequence numbers are based on
modulo-2 arithmetic.
Note

In Stop-and-Wait ARQ, the


acknowledgment number always
announces in modulo-2 arithmetic the
sequence number of the next frame
expected.
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
Example

The Figure in the following slide 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.
Figure: Flow diagram for Example
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?

Solution
The bandwidth-delay product is
Example (continued)

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.
Example

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.
Link Utilization / Efficiency of Stop and Wait ARQ

Efficiency (η) = 1 / (1+2a)

where,

a = T p / Tt

Example: If the bandwidth of the line is 1.5 Mbps, Propagation delay

is 22.5 ms and packet size is 1 KB, then find the link utilization in stop

and wait.

Solution:
Link Utilization / Efficiency of Stop and WaitARQ

a = Tp / Tt

a = 22.5 / 5.461 = 4.12

Efficiency, η = 1 / (1+2a)

= 1 / (1 + 2 x 4.12) = 0.108 or 10.8%

You might also like