Unit -2 Data Link Layer
                   Unit
-2 Data Link Layer
- In the OSI model, the data link layer is a 4th layer
     from the top and 2nd layer from the bottom.
- The communication channel that connects the adjacent
     nodes is known as links, and in order to move the datagram from source to
     the destination, the datagram must be moved across an individual link.
- The main responsibility of the Data Link Layer is to
     transfer the datagram across an individual link.
- The Data link layer protocol defines the format of the
     packet exchanged across the nodes as well as the actions such as Error
     detection, retransmission, flow control, and random access.
- The Data Link Layer protocols are Ethernet, token ring,
     FDDI and PPP.
- An important characteristic of a Data Link Layer is
     that datagram can be handled by different link layer protocols on
     different links in a path. For example, the datagram is handled by
     Ethernet on the first link, PPP on the second link.
Following services are
provided by the Data Link Layer:

- Framing & Link access: Data Link Layer protocols encapsulate each
     network frame within a Link layer frame before the transmission across the
     link. A frame consists of a data field in which network layer datagram is
     inserted and a number of data fields. It specifies the structure of the
     frame as well as a channel access protocol by which frame is to be
     transmitted over the link.
- Reliable delivery: Data
     Link Layer provides a reliable delivery service, i.e., transmits the
     network layer datagram without any error. A reliable delivery service is
     accomplished with transmissions and acknowledgements. A data link layer
     mainly provides the reliable delivery service over the links as they have
     higher error rates and they can be corrected locally, link at which an
     error occurs rather than forcing to retransmit the data.
- Flow control: A
     receiving node can receive the frames at a faster rate than it can process
     the frame. Without flow control, the receiver's buffer can overflow, and
     frames can get lost. To overcome this problem, the data link layer uses
     the flow control to prevent the sending node on one side of the link from
     overwhelming the receiving node on another side of the link.
- Error detection: Errors
     can be introduced by signal attenuation and noise. Data Link Layer
     protocol provides a mechanism to detect one or more errors. This is
     achieved by adding error detection bits in the frame and then receiving
     node can perform an error check.
- Error correction: Error
     correction is similar to the Error detection, except that receiving node
     not only detect the errors but also determine where the errors have
     occurred in the frame.
- Half-Duplex & Full-Duplex: In a Full-Duplex mode, both the nodes can
     transmit the data at the same time. In a Half-Duplex mode, only one node
     can transmit the data at the same time.
Error
Detection
When data is
transmitted from one device to another device, the system does not guarantee
whether the data received by the device is identical to the data transmitted by
another device. An Error is a situation when the message received at the
receiver end is not identical to the message transmitted.
Types Of Errors

Errors can be
classified into two categories:
- Single-Bit
     Error
- Burst Error
Single-Bit Error:
The only one bit of a
given data unit is changed from 1 to 0 or from 0 to 1.

In the above figure,
the message which is sent is corrupted as single-bit, i.e., 0 bit is changed to
1.
Single-Bit Error does not appear
more likely in Serial Data Transmission. For example, Sender sends the data at
10 Mbps, this means that the bit lasts only for 1 ?s and for a single-bit error
to occurred, a noise must be more than 1 ?s.
Single-Bit Error
mainly occurs in Parallel Data Transmission. For example, if eight wires are
used to send the eight bits of a byte, if one of the wire is noisy, then
single-bit is corrupted per byte.
Burst Error:
The two or more bits
are changed from 0 to 1 or from 1 to 0 is known as Burst Error.
The Burst Error is
determined from the first corrupted bit to the last corrupted bit.

The duration of noise
in Burst Error is more than the duration of noise in Single-Bit.
Burst Errors are most
likely to occurr in Serial Data Transmission.
The number of
affected bits depends on the duration of the noise and data rate.
Error Detecting
Techniques:
The most popular
Error Detecting Techniques are:
- Single
     parity check
- Two-dimensional
     parity check
- Checksum
- Cyclic
     redundancy check
Single Parity Check
- Single
     Parity checking is the simple mechanism and inexpensive to detect the
     errors.
- In this
     technique, a redundant bit is also known as a parity bit which is appended
     at the end of the data unit so that the number of 1s becomes even.
     Therefore, the total number of transmitted bits would be 9 bits.
- If the
     number of 1s bits is odd, then parity bit 1 is appended and if the number
     of 1s bits is even, then parity bit 0 is appended at the end of the data
     unit.
- At the
     receiving end, the parity bit is calculated from the received data bits
     and compared with the received parity bit.
- This
     technique generates the total number of 1s even, so it is known as
     even-parity checking.

Drawbacks
Of Single Parity Checking
- It can only
     detect single-bit errors which are very rare.
- If two bits
     are interchanged, then it cannot detect the errors.

Two-Dimensional Parity
Check
- Performance
     can be improved by using Two-Dimensional Parity Check which
     organizes the data in the form of a table.
- Parity
     check bits are computed for each row, which is equivalent to the
     single-parity check.
- In
     Two-Dimensional Parity check, a block of bits is divided into rows, and
     the redundant row of bits is added to the whole block.
- At the
     receiving end, the parity bits are compared with the parity bits computed
     from the received data.

Drawbacks
Of 2D Parity Check
- If two bits
     in one data unit are corrupted and two bits exactly the same position in
     another data unit are also corrupted, then 2D Parity checker will not be
     able to detect the error.
- This technique
     cannot be used to detect the 4-bit errors or more in some cases.
Checksum
A Checksum is an
error detection technique based on the concept of redundancy.
It is divided into
two parts:
Checksum
Generator
A Checksum is
generated at the sending side. Checksum generator subdivides the data into
equal segments of n bits each, and all these segments are added together by
using one's complement arithmetic. The sum is complemented and appended to the
original data, known as checksum field. The extended data is transmitted across
the network.
Suppose L is the
total sum of the data segments, then the checksum would be ?L

1.      The Sender follows the given steps:  
2.        The block unit is divided into k sections, and each of n bits.  
3.        All the k sections are added together by using one's complement to get the sum.  
4.        The sum is complemented and it becomes the checksum field.  
5.        The original data and checksum field are sent across the network.  
Checksum
Checker
A Checksum is
verified at the receiving side. The receiver subdivides the incoming data into
equal segments of n bits each, and all these segments are added together, and
then this sum is complemented. If the complement of the sum is zero, then the
data is accepted otherwise data is rejected.
1.     
The Receiver follows the given steps:  
2.     
  The block unit is divided into k sections and each of n bits.  
3.     
  All the k sections are added together by using one's complement algorithm to get the sum.  
4.     
  The sum is complemented.  
5.     
  If the result of the sum is zero, then the data is accepted otherwise the data is discarded.  
Cyclic Redundancy Check
(CRC)
CRC is a redundancy
error technique used to determine the error.
Following are the
steps used in CRC for error detection:
- In CRC
     technique, a string of n 0s is appended to the data unit, and this n
     number is less than the number of bits in a predetermined number, known as
     division which is n+1 bits.
- Secondly,
     the newly extended data is divided by a divisor using a process is known
     as binary division. The remainder generated from this division is known as
     CRC remainder.
- Thirdly,
     the CRC remainder replaces the appended 0s at the end of the original
     data. This newly generated unit is sent to the receiver.
- The
     receiver receives the data followed by the CRC remainder. The receiver
     will treat this whole unit as a single unit, and it is divided by the same
     divisor that was used to find the CRC remainder.
If the resultant of
this division is zero which means that it has no error, and the data is accepted.
If the resultant of
this division is not zero which means that the data consists of an error.
Therefore, the data is discarded.

Let's understand this
concept through an example:
Suppose the original
data is 11100 and divisor is 1001.
CRC
Generator
- A CRC
     generator uses a modulo-2 division. Firstly, three zeroes are appended at
     the end of the data as the length of the divisor is 4 and we know that the
     length of the string 0s to be appended is always one less than the length
     of the divisor.
- Now, the string
     becomes 11100000, and the resultant string is divided by the divisor 1001.
- The
     remainder generated from the binary division is known as CRC remainder.
     The generated value of the CRC remainder is 111.
- CRC
     remainder replaces the appended string of 0s at the end of the data unit,
     and the final string would be 11100111 which is sent across the network.

CRC
Checker
- The
     functionality of the CRC checker is similar to the CRC generator.
- When the
     string 11100111 is received at the receiving end, then CRC checker
     performs the modulo-2 division.
- A string is
     divided by the same divisor, i.e., 1001.
- In this
     case, CRC checker generates the remainder of zero. Therefore, the data is
     accepted.

              Error Correction
Error Correction
codes are used to detect and correct the errors when data is transmitted from
the sender to the receiver.
Error Correction can
be handled in two ways:
- Backward error correction: Once
     the error is discovered, the receiver requests the sender to retransmit
     the entire data unit.
- Forward error correction: In
     this case, the receiver uses the error-correcting code which automatically
     corrects the errors.
A single additional
bit can detect the error, but cannot correct it.
For correcting the
errors, one has to know the exact position of the error. For example, If we
want to calculate a single-bit error, the error correction code will determine
which one of seven bits is in error. To achieve this, we have to add some
additional redundant bits.
Suppose r is the
number of redundant bits and d is the total number of the data bits. The number
of redundant bits r can be calculated by using the formula:
2r>=d+r+1
The value of r is
calculated by using the above formula. For example, if the value of d is 4,
then the possible smallest value that satisfies the above relation would be 3.
To determine the
position of the bit which is in error, a technique developed by R.W Hamming is
Hamming code which can be applied to any length of the data unit and uses the
relationship between data units and redundant units.
Hamming Code
Parity bits: The bit which
is appended to the original data of binary bits so that the total number of 1s
is even or odd.
Even parity: To check for
even parity, if the total number of 1s is even, then the value of the parity
bit is 0. If the total number of 1s occurrences is odd, then the value of the
parity bit is 1.
Odd Parity: To check for
odd parity, if the total number of 1s is even, then the value of parity bit is
1. If the total number of 1s is odd, then the value of parity bit is 0.
Algorithm
of Hamming code:
- An
     information of 'd' bits are added to the redundant bits 'r' to form d+r.
- The
     location of each of the (d+r) digits is assigned a decimal value.
- The 'r'
     bits are placed in the positions 1,2,.....2k-1.
- At the
     receiving end, the parity bits are recalculated. The decimal value of the
     parity bits determines the position of an error.
Relationship b/w Error
position & binary number.

Let's understand the
concept of Hamming code through an example:
Suppose the original
data is 1010 which is to be sent.
Total number of data bits 'd' = 4
Number of redundant bits r : 2r >= d+r+1
                           2r>= 4+r+1Therefore, the value of r is 3 that satisfies the above relation.Total number of bits = d+r = 4+3 = 7;
Determining the position
of the redundant bits
The number of
redundant bits is 3. The three bits are represented by r1, r2, r4. The position
of the redundant bits is calculated with corresponds to the raised power of 2.
Therefore, their corresponding positions are 1, 21, 22.
1.     
The position of r1 = 1  
2.     
The position of r2 = 2  
3.     
The position of r4 = 4  
Representation of
Data on the addition of parity bits:

Determining the Parity
bits
Determining
the r1 bit
The r1 bit is
calculated by performing a parity check on the bit positions whose binary
representation includes 1 in the first position.

We observe from the
above figure that the bit positions that includes 1 in the first position are
1, 3, 5, 7. Now, we perform the even-parity check at these bit positions. The
total number of 1 at these bit positions corresponding to r1 is even,
therefore, the value of the r1 bit is 0.
Determining
r2 bit
The r2 bit is
calculated by performing a parity check on the bit positions whose binary
representation includes 1 in the second position.

We observe from the
above figure that the bit positions that includes 1 in the second position
are 2, 3, 6, 7. Now, we perform the even-parity check at
these bit positions. The total number of 1 at these bit positions corresponding
to r2 is odd, therefore, the value of the r2 bit is 1.
Determining
r4 bit
The r4 bit is
calculated by performing a parity check on the bit positions whose binary
representation includes 1 in the third position.

We observe from the
above figure that the bit positions that includes 1 in the third position
are 4, 5, 6, 7. Now, we perform the even-parity check at
these bit positions. The total number of 1 at these bit positions corresponding
to r4 is even, therefore, the value of the r4 bit is 0.
Data transferred is
given below:

Suppose the 4th bit
is changed from 0 to 1 at the receiving end, then parity bits are recalculated.
R1
bit
The bit positions of
the r1 bit are 1,3,5,7

We observe from the
above figure that the binary representation of r1 is 1100. Now, we perform the
even-parity check, the total number of 1s appearing in the r1 bit is an even
number. Therefore, the value of r1 is 0.
R2
bit
The bit positions of
r2 bit are 2,3,6,7.

We observe from the
above figure that the binary representation of r2 is 1001. Now, we perform the
even-parity check, the total number of 1s appearing in the r2 bit is an even
number. Therefore, the value of r2 is 0.
R4
bit
The bit positions of
r4 bit are 4,5,6,7.

We observe from the
above figure that the binary representation of r4 is 1011. Now, we perform the
even-parity check, the total number of 1s appearing in the r4 bit is an odd
number. Therefore, the value of r4 is 1.
- The binary representation of redundant bits,
     i.e., r4r2r1 is 100, and its corresponding decimal value is 4. Therefore,
     the error occurs in a 4th bit position. The bit value must
     be changed from 1 to 0 to correct the error.
Error
Correction
Error Correction
codes are used to detect and correct the errors when data is transmitted from
the sender to the receiver.
Error Correction can
be handled in two ways:
- Backward error correction: Once
     the error is discovered, the receiver requests the sender to retransmit
     the entire data unit.
- Forward error correction: In
     this case, the receiver uses the error-correcting code which automatically
     corrects the errors.
A single additional
bit can detect the error, but cannot correct it.
For correcting the
errors, one has to know the exact position of the error. For example, If we
want to calculate a single-bit error, the error correction code will determine
which one of seven bits is in error. To achieve this, we have to add some
additional redundant bits.
Suppose r is the
number of redundant bits and d is the total number of the data bits. The number
of redundant bits r can be calculated by using the formula:
2r>=d+r+1
The value of r is
calculated by using the above formula. For example, if the value of d is 4,
then the possible smallest value that satisfies the above relation would be 3.
To determine the
position of the bit which is in error, a technique developed by R.W Hamming is
Hamming code which can be applied to any length of the data unit and uses the
relationship between data units and redundant units.
Hamming Code
Parity bits: The bit which
is appended to the original data of binary bits so that the total number of 1s
is even or odd.
Even parity: To check for
even parity, if the total number of 1s is even, then the value of the parity
bit is 0. If the total number of 1s occurrences is odd, then the value of the
parity bit is 1.
Odd Parity: To check for
odd parity, if the total number of 1s is even, then the value of parity bit is
1. If the total number of 1s is odd, then the value of parity bit is 0.
Algorithm
of Hamming code:
- An
     information of 'd' bits are added to the redundant bits 'r' to form d+r.
- The
     location of each of the (d+r) digits is assigned a decimal value.
- The 'r'
     bits are placed in the positions 1,2,.....2k-1.
- At the
     receiving end, the parity bits are recalculated. The decimal value of the
     parity bits determines the position of an error.
Relationship b/w Error
position & binary number.

Let's understand the
concept of Hamming code through an example:
Suppose the original
data is 1010 which is to be sent.
Total number of data bits 'd' = 4
Number of redundant bits r : 2r >= d+r+1
                           2r>= 4+r+1Therefore, the value of r is 3 that satisfies the above relation.Total number of bits = d+r = 4+3 = 7;
Determining the position
of the redundant bits
The number of
redundant bits is 3. The three bits are represented by r1, r2, r4. The position
of the redundant bits is calculated with corresponds to the raised power of 2.
Therefore, their corresponding positions are 1, 21, 22.
1.      The position of r1 = 1  
2.      The position of r2 = 2  
3.      The position of r4 = 4  
Representation of
Data on the addition of parity bits:

Determining the Parity
bits
Determining
the r1 bit
The r1 bit is
calculated by performing a parity check on the bit positions whose binary
representation includes 1 in the first position.

We observe from the
above figure that the bit positions that includes 1 in the first position are
1, 3, 5, 7. Now, we perform the even-parity check at these bit positions. The
total number of 1 at these bit positions corresponding to r1 is even,
therefore, the value of the r1 bit is 0.
Determining
r2 bit
The r2 bit is
calculated by performing a parity check on the bit positions whose binary
representation includes 1 in the second position.

We observe from the
above figure that the bit positions that includes 1 in the second position
are 2, 3, 6, 7. Now, we perform the even-parity check at
these bit positions. The total number of 1 at these bit positions corresponding
to r2 is odd, therefore, the value of the r2 bit is 1.
Determining
r4 bit
The r4 bit is
calculated by performing a parity check on the bit positions whose binary
representation includes 1 in the third position.

We observe from the
above figure that the bit positions that includes 1 in the third position
are 4, 5, 6, 7. Now, we perform the even-parity check at
these bit positions. The total number of 1 at these bit positions corresponding
to r4 is even, therefore, the value of the r4 bit is 0.
Data transferred is
given below:

Suppose the 4th bit
is changed from 0 to 1 at the receiving end, then parity bits are recalculated.
R1
bit
The bit positions of
the r1 bit are 1,3,5,7

We observe from the
above figure that the binary representation of r1 is 1100. Now, we perform the
even-parity check, the total number of 1s appearing in the r1 bit is an even
number. Therefore, the value of r1 is 0.
R2
bit
The bit positions of
r2 bit are 2,3,6,7.

We observe from the
above figure that the binary representation of r2 is 1001. Now, we perform the
even-parity check, the total number of 1s appearing in the r2 bit is an even
number. Therefore, the value of r2 is 0.
R4
bit
The bit positions of
r4 bit are 4,5,6,7.

We observe from the
above figure that the binary representation of r4 is 1011. Now, we perform the
even-parity check, the total number of 1s appearing in the r4 bit is an odd
number. Therefore, the value of r4 is 1.
- The binary representation of redundant bits,
     i.e., r4r2r1 is 100, and its corresponding decimal value is 4. Therefore,
     the error occurs in a 4th bit position. The bit value must
     be changed from 1 to 0 to correct the error.
Data
Link Controls
Data Link Control is
the service provided by the Data Link Layer to provide reliable data transfer
over the physical medium. For example, In the half-duplex transmission mode,
one device can only transmit the data at a time. If both the devices at the end
of the links transmit the data simultaneously, they will collide and leads to
the loss of the information. The Data link layer provides the coordination
among the devices so that no collision occurs.
The Data link layer
provides three functions:
- Line
     discipline
- Flow
     Control
- Error
     Control

Line Discipline
- Line
     Discipline is a functionality of the Data link layer that provides the
     coordination among the link systems. It determines which device can send,
     and when it can send the data.
Line Discipline can
be achieved in two ways:
- ENQ/ACK
- Poll/select
END/ACK
END/ACK stands for
Enquiry/Acknowledgement is used when there is no wrong receiver available on
the link and having a dedicated path between the two devices so that the device
capable of receiving the transmission is the intended one.
END/ACK coordinates
which device will start the transmission and whether the recipient is ready or
not.
Working of END/ACK
The transmitter transmits
the frame called an Enquiry (ENQ) asking whether the receiver is available to
receive the data or not.
The receiver
responses either with the positive acknowledgement(ACK) or with the negative
acknowledgement(NACK) where positive acknowledgement means that the receiver is
ready to receive the transmission and negative acknowledgement means that the
receiver is unable to accept the transmission.
Following are the
responses of the receiver:
- If the
     response to the ENQ is positive, the sender will transmit its data, and
     once all of its data has been transmitted, the device finishes its
     transmission with an EOT (END-of-Transmission) frame.
- If the
     response to the ENQ is negative, then the sender disconnects and restarts
     the transmission at another time.
- If the
     response is neither negative nor positive, the sender assumes that the ENQ
     frame was lost during the transmission and makes three attempts to
     establish a link before giving up.

Poll/Select
The Poll/Select
method of line discipline works with those topologies where one device is
designated as a primary station, and other devices are secondary stations.
Working of
Poll/Select
- In this,
     the primary device and multiple secondary devices consist of a single
     transmission line, and all the exchanges are made through the primary
     device even though the destination is a secondary device.
- The primary
     device has control over the communication link, and the secondary device
     follows the instructions of the primary device.
- The primary
     device determines which device is allowed to use the communication
     channel. Therefore, we can say that it is an initiator of the session.
- If the
     primary device wants to receive the data from the secondary device, it
     asks the secondary device that they anything to send, this process is
     known as polling.
- If the
     primary device wants to send some data to the secondary device, then it
     tells the target secondary to get ready to receive the data, this process
     is known as selecting.
Select
- The select
     mode is used when the primary device has something to send.
- When the
     primary device wants to send some data, then it alerts the secondary
     device for the upcoming transmission by transmitting a Select (SEL) frame,
     one field of the frame includes the address of the intended secondary
     device.
- When the
     secondary device receives the SEL frame, it sends an acknowledgement that
     indicates the secondary ready status.
- If the
     secondary device is ready to accept the data, then the primary device
     sends two or more data frames to the intended secondary device. Once the
     data has been transmitted, the secondary sends an acknowledgement
     specifies that the data has been received.

Poll
- The Poll
     mode is used when the primary device wants to receive some data from the
     secondary device.
- When a
     primary device wants to receive the data, then it asks each device whether
     it has anything to send.
- Firstly,
     the primary asks (poll) the first secondary device, if it responds with
     the NACK (Negative Acknowledgement) means that it has nothing to send.
     Now, it approaches the second secondary device, it responds with the ACK
     means that it has the data to send. The secondary device can send more
     than one frame one after another or sometimes it may be required to send
     ACK before sending each one, depending on the type of the protocol being
     used.

Flow Control
- It is a set
     of procedures that tells the sender how much data it can transmit before
     the data overwhelms the receiver.
- The
     receiving device has limited speed and limited memory to store the data.
     Therefore, the receiving device must be able to inform the sending device
     to stop the transmission temporarily before the limits are reached.
- It requires
     a buffer, a block of memory for storing the information until they are
     processed.
Two methods have been
developed to control the flow of data:
- Stop-and-wait
- Sliding
     window
Stop-and-wait
- In the
     Stop-and-wait method, the sender waits for an acknowledgement after every
     frame it sends.
- When
     acknowledgement is received, then only next frame is sent. The process of
     alternately sending and waiting of a frame continues until the sender
     transmits the EOT (End of transmission) frame.
Advantage of
Stop-and-wait
The Stop-and-wait
method is simple as each frame is checked and acknowledged before the next
frame is sent.
Disadvantage of
Stop-and-wait
Stop-and-wait
technique is inefficient to use as each frame must travel across all the way to
the receiver, and an acknowledgement travels all the way before the next frame
is sent. Each frame sent and received uses the entire time needed to traverse
the link.
Sliding Window
- The Sliding
     Window is a method of flow control in which a sender can transmit the
     several frames before getting an acknowledgement.
- In Sliding
     Window Control, multiple frames can be sent one after the another due to
     which capacity of the communication channel can be utilized efficiently.
- A single
     ACK acknowledge multiple frames.
- Sliding
     Window refers to imaginary boxes at both the sender and receiver end.
- The window
     can hold the frames at either end, and it provides the upper limit on the
     number of frames that can be transmitted before the acknowledgement.
- Frames can
     be acknowledged even when the window is not completely filled.
- The window
     has a specific size in which they are numbered as modulo-n means that they
     are numbered from 0 to n-1. For example, if n = 8, the frames are numbered
     from 0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,1........
- The size of
     the window is represented as n-1. Therefore, maximum n-1 frames can be
     sent before acknowledgement.
- When the
     receiver sends the ACK, it includes the number of the next frame that it
     wants to receive. For example, to acknowledge the string of frames ending
     with frame number 4, the receiver will send the ACK containing the number
     5. When the sender sees the ACK with the number 5, it got to know that the
     frames from 0 through 4 have been received.
Sender Window
- At the
     beginning of a transmission, the sender window contains n-1 frames, and
     when they are sent out, the left boundary moves inward shrinking the size
     of the window. For example, if the size of the window is w if three frames
     are sent out, then the number of frames left out in the sender window is
     w-3.
- Once the
     ACK has arrived, then the sender window expands to the number which will
     be equal to the number of frames acknowledged by ACK.
- For
     example, the size of the window is 7, and if frames 0 through 4 have been
     sent out and no acknowledgement has arrived, then the sender window
     contains only two frames, i.e., 5 and 6. Now, if ACK has arrived with a
     number 4 which means that 0 through 3 frames have arrived undamaged and
     the sender window is expanded to include the next four frames. Therefore,
     the sender window contains six frames (5,6,7,0,1,2).

Receiver Window
- At the
     beginning of transmission, the receiver window does not contain n frames,
     but it contains n-1 spaces for frames.
- When the
     new frame arrives, the size of the window shrinks.
- The
     receiver window does not represent the number of frames received, but it
     represents the number of frames that can be received before an ACK is
     sent. For example, the size of the window is w, if three frames are
     received then the number of spaces available in the window is (w-3).
- Once the
     acknowledgement is sent, the receiver window expands by the number equal
     to the number of frames acknowledged.
- Suppose the
     size of the window is 7 means that the receiver window contains seven
     spaces for seven frames. If the one frame is received, then the receiver
     window shrinks and moving the boundary from 0 to 1. In this way, window
     shrinks one by one, so window now contains the six spaces. If frames from
     0 through 4 have sent, then the window contains two spaces before an
     acknowledgement is sent.

Error Control
Error Control is a
technique of error detection and retransmission.
Categories of Error
Control:

Stop-and-wait ARQ
Stop-and-wait ARQ is
a technique used to retransmit the data in case of damaged or lost frames.
This technique works
on the principle that the sender will not transmit the next frame until it
receives the acknowledgement of the last transmitted frame.
Four features are
required for the retransmission:
- The sending
     device keeps a copy of the last transmitted frame until the
     acknowledgement is received. Keeping the copy allows the sender to
     retransmit the data if the frame is not received correctly.
- Both the
     data frames and the ACK frames are numbered alternately 0 and 1 so that
     they can be identified individually. Suppose data 1 frame acknowledges the
     data 0 frame means that the data 0 frame has been arrived correctly and
     expects to receive data 1 frame.
- If an error
     occurs in the last transmitted frame, then the receiver sends the NAK
     frame which is not numbered. On receiving the NAK frame, sender
     retransmits the data.
- It works
     with the timer. If the acknowledgement is not received within the allotted
     time, then the sender assumes that the frame is lost during the
     transmission, so it will retransmit the frame.
Two possibilities of
the retransmission:
- Damaged Frame: When
     the receiver receives a damaged frame, i.e., the frame contains an error,
     then it returns the NAK frame. For example, when the data 0 frame is sent,
     and then the receiver sends the ACK 1 frame means that the data 0 has
     arrived correctly, and transmits the data 1 frame. The sender transmits
     the next frame: data 1. It reaches undamaged, and the receiver returns ACK
     0. The sender transmits the next frame: data 0. The receiver reports an error
     and returns the NAK frame. The sender retransmits the data 0 frame.
- Lost Frame: Sender
     is equipped with the timer and starts when the frame is transmitted.
     Sometimes the frame has not arrived at the receiving end so that it can be
     acknowledged neither positively nor negatively. The sender waits for
     acknowledgement until the timer goes off. If the timer goes off, it
     retransmits the last transmitted frame.
Sliding Window ARQ
SlidingWindow ARQ is
a technique used for continuous transmission error control.
Three Features used
for retransmission:
- In this
     case, the sender keeps the copies of all the transmitted frames until they
     have been acknowledged. Suppose the frames from 0 through 4 have been
     transmitted, and the last acknowledgement was for frame 2, the sender has
     to keep the copies of frames 3 and 4 until they receive correctly.
- The
     receiver can send either NAK or ACK depending on the conditions. The NAK
     frame tells the sender that the data have been received damaged. Since the
     sliding window is a continuous transmission mechanism, both ACK and NAK
     must be numbered for the identification of a frame. The ACK frame consists
     of a number that represents the next frame which the receiver expects to
     receive. The NAK frame consists of a number that represents the damaged
     frame.
- The sliding
     window ARQ is equipped with the timer to handle the lost acknowledgements.
     Suppose then n-1 frames have been sent before receiving any
     acknowledgement. The sender waits for the acknowledgement, so it starts
     the timer and waits before sending any more. If the allotted time runs
     out, the sender retransmits one or all the frames depending upon the
     protocol used.
Two protocols used in
sliding window ARQ:
- Go-Back-n ARQ: In
     Go-Back-N ARQ protocol, if one frame is lost or damaged, then it
     retransmits all the frames after which it does not receive the positive
     ACK.
Three possibilities
can occur for retransmission:
- Damaged Frame: When
     the frame is damaged, then the receiver sends a NAK frame.

In the above figure,
three frames have been transmitted before an error discovered in the third
frame. In this case, ACK 2 has been returned telling that the frames 0,1 have
been received successfully without any error. The receiver discovers the error
in data 2 frame, so it returns the NAK 2 frame. The frame 3 is also discarded
as it is transmitted after the damaged frame. Therefore, the sender retransmits
the frames 2,3.
- Lost Data Frame: In
     Sliding window protocols, data frames are sent sequentially. If any of the
     frames is lost, then the next frame arrive at the receiver is out of
     sequence. The receiver checks the sequence number of each of the frame,
     discovers the frame that has been skipped, and returns the NAK for the
     missing frame. The sending device retransmits the frame indicated by NAK
     as well as the frames transmitted after the lost frame.
- Lost Acknowledgement: The
     sender can send as many frames as the windows allow before waiting for any
     acknowledgement. Once the limit of the window is reached, the sender has
     no more frames to send; it must wait for the acknowledgement. If the
     acknowledgement is lost, then the sender could wait forever. To avoid such
     situation, the sender is equipped with the timer that starts counting
     whenever the window capacity is reached. If the acknowledgement has not been
     received within the time limit, then the sender retransmits the frame
     since the last ACK.
Selective-Reject ARQ
- Selective-Reject
     ARQ technique is more efficient than Go-Back-n ARQ.
- In this
     technique, only those frames are retransmitted for which negative
     acknowledgement (NAK) has been received.
- The
     receiver storage buffer keeps all the damaged frames on hold until the
     frame in error is correctly received.
- The
     receiver must have an appropriate logic for reinserting the frames in a
     correct order.
- The sender
     must consist of a searching mechanism that selects only the requested
     frame for retransmission.

 
Comments
Post a Comment