Data-link layer is responsible for implementation of point-to-point flow and error control mechanism.
Flow Control
When data frames (Layer-2 data) is sent from one host to another over
a single medium, it is required that the sender and receiver should
work on same speed. That is, sender sends at a speed on which the
receiver can process and accept the data. What if the speed
(hardware/software) of the sender or receiver differs? If sender is
sending too fast the receiver may be overloaded (swamped) and data may
loss.
Two types of mechanism can be deployed in the scenario to control the flow:
Stop and Wait
This flow control mechanism forces the sender after transmitting a
data frame to stop and wait until the acknowledgement of the data-frame
sent is received.
[Image: Stop and Wait Protocol]
Sliding Window
In this flow control mechanism both sender and receiver agrees on the
number of data-frames after which the acknowledgement should be sent.
As we have seen, stop and wait flow control mechanism wastes resources,
this protocol tries to make use of underlying resources as much as
possible.
Error Control
When data-frame is transmitted there are probabilities that
data-frame may be lost in the transit or it is received corrupted. In
both scenarios, the receiver does not receive the correct data-frame and
sender does not know anything about any loss. In these types of cases,
both sender and receiver are equipped with some protocols which helps
them to detect transit errors like data-frame lost. So, either the
sender retransmits the data-frame or the receiver may request to repeat
the previous data-frame.
Requirements for error control mechanism:
Error detection: The sender and receiver, either both or any, must ascertain that there’s been some error on transit.
Positive ACK: When the receiver receives a correct frame, it should acknowledge it.
Negative ACK: When the receiver receives a damaged frame
or a duplicate frame, it sends a NACK back to the sender and the sender
must retransmit the correct frame.
Retransmission: The sender maintains a clock and sets a
timeout period. If an acknowledgement of a data-frame previously
transmitted does not arrive in the timeout period, the sender retransmit
the frame, thinking that the frame or it’s acknowledge is lost in
transit.
There are three types of techniques available which Data-link layer
may deploy to control the errors by Automatic Repeat Requests (ARQ):
Stop-and-wait ARQ
[Image: Stop and Wait ARQ]
The following transition may occur in Stop-and-Wait ARQ:
The sender maintains a timeout counter.
When a frame is sent the sender starts the timeout counter.
If acknowledgement of frame comes in time, the sender transmits the next frame in queue.
If acknowledgement does not come in time, the sender assumes that
either the frame or its acknowledgement is lost in transit. Sender
retransmits the frame and starts the timeout counter.
If a negative acknowledgement is received, the sender retransmits the frame.
Go-Back-N ARQ
Stop and wait ARQ mechanism does not utilize the resources at their
best. For the acknowledgement is received, the sender sits idle and
does nothing. In Go-Back-N ARQ method, both sender and receiver
maintains a window. [Image: Go-Back-N ARQ]
The sending-window size enables the sender to send multiple frames
without receiving the acknowledgement of the previous ones. The
receiving-window enables the receiver to receive multiple frames and
acknowledge them. The receiver keeps track of incoming frame’s sequence
number.
When the sender sends all the frames in window, it checks up to what
sequence number it has received positive ACK. If all frames are
positively acknowledged, the sender sends next set of frames. If sender
finds that it has received NACK or has not receive any ACK for a
particular frame, it retransmits all the frames after which it does not
receive any positive ACK.
Selective Repeat ARQ
In Go-back-N ARQ, it is assumed that the receiver does not have any
buffer space for its window size and has to process each frame as it
comes. This enforces the sender to retransmit all the frames which are
not acknowledged. [Image: Selective Repeat ARQ]
In Selective-Repeat ARQ, the receiver while keeping track of sequence
numbers, buffers the frames in memory and sends NACK for only frame
which is missing or damaged.
The sender in this case, sends only packet for which NACK is received.
No comments:
Post a Comment