Module 2 CN
Module 2 CN
Data-link layer uses error control techniques to ensure that frames, i.e. bit streams
of data, are transmitted from the source to the destination with a certain extent of
accuracy.
Errors
When bits are transmitted over the computer network, they are subject to get
corrupted due to interference and network problems. The corrupted bits leads to
spurious data being received by the destination and are called errors.
Types of Errors
Errors can be of three types, namely single bit errors, multiple bit errors, and burst
errors.
• Single bit error − In the received frame, only one bit has been corrupted, i.e.
either changed from 0 to 1 or from 1 to 0.
• Multiple bits error − In the received frame, more than one bits are corrupted.
• Burst error − In the received frame, more than one consecutive bits are
corrupted.
Error Control
Error control can be done in two ways
• Error detection − Error detection involves checking whether any error has
occurred or not. The number of error bits and the type of error does not matter.
• Error correction − Error correction involves ascertaining the exact number
of bits that has been corrupted and the location of the corrupted bits.
For both error detection and error correction, the sender needs to send some
additional bits along with the data bits. The receiver performs necessary checks
based upon the additional redundant bits. If it finds that the data is free from errors,
it removes the redundant bits before passing the message to the upper layers.
BLOCK CODING
In block coding, we divide our message into blocks, each of k bits, called data
words. We add r redundant bits to each block to make the length n = k + r. The
resulting n-bit blocks are called code words.
For example, we have a set of data words, each of size k, and a set of code words,
each of size of n. With k bits, we can create a combination of 2k data words, with n
bits; we can create a combination of 2n code words. Since n > k, the number of
possible code words is larger than the number of possible data words.
The block coding process is one-to-one; the same data word is always encoded as
the same code word. This means that we have 2n-2k code words that are not used.
We call these code words invalid or illegal. The following figure shows the
situation.
Error Detection
If the following two conditions are met, the receiver can detect a change in the
original code word by using Block coding technique.
1. The receiver has (or can find) a list of valid code words.
The sender creates code words out of data words by using a generator that applies
the rules and procedures of encoding (discussed later). Each code word sent to the
receiver may change during transmission. If the received code word is the same as
one of the valid code words, the word is accepted; the corresponding data word is
extracted for use.
If the received code word is not valid, it is discarded. However, if the code word is
corrupted during transmission but the received word still matches a valid code
word, the error remains undetected. This type of coding can detect only single
errors. Two or more errors may remain undetected.
For example consider the following table of data words and Code words:
Assume the sender encodes the data word 01 as 011 and sends it to the receiver.
Consider the following cases:
1. The receiver receives O11. It is a valid code word. The receiver extracts the data
word 01 from it.
2. The code word is corrupted during transmission, and 111 is received (the
leftmost bit is corrupted). This is not a valid code word and is discarded.
3. The code word is corrupted during transmission, and 000 is received (the right
two bits are corrupted). This is a valid code word. The receiver incorrectly extracts
the data word 00. Two corrupted bits have made the error undetectable.
Error Correction:
Error correction is much more difficult than error detection. In error detection, the
receiver needs to know only that the received code word is invalid, in error
correction the receiver needs to find (or guess) the original code word sent. So, we
need more redundant bits for error correction than for error detection.
1. Comparing the received code word with the first code word in the table (01001
versus 00000), the receiver decides that the first code word is not the one that was
sent because there are two different bits.
2. By the same reasoning, the original code word cannot be the third or fourth one
in the table.
3. The original code word must be the second one in the table because this is the
only one that differs from the received code word by 1 bit. The receiver replaces
01001 with 01011 and consults the table to find the data word 01.
Hamming Distance
Hamming distance is a metric for comparing two binary data strings. While
comparing two binary strings of equal length, Hamming distance is the number of
bit positions in which the two bits are different.
The Hamming distance between two strings, a and b is denoted as d(a,b).
It is used for error detection or error correction when data is transmitted over
computer networks. It is also using in coding theory for comparing equal length data
words.
Calculation of Hamming Distance
In order to calculate the Hamming distance between two strings, and , we perform
their XOR operation, (a⊕ b), and then count the total number of 1s in the resultant
string.
Example
Suppose there are two strings 1101 1001 and 1001 1101.
11011001 ⊕ 10011101 = 01000100. Since, this contains two 1s, the Hamming
distance, d(11011001, 10011101) = 2.
Minimum Hamming Distance
In a set of strings of equal lengths, the minimum Hamming distance is the smallest
Hamming distance between all possible pairs of strings in that set.
Example
Suppose there are four strings 010, 011, 101 and 111.
010 ⊕ 011 = 001, d(010, 011) = 1.
010 ⊕ 101 = 111, d(010, 101) = 3.
010 ⊕ 111 = 101, d(010, 111) = 2.
011 ⊕ 101 = 110, d(011, 101) = 2.
011 ⊕ 111 = 100, d(011, 111) = 1.
101 ⊕ 111 = 010, d(011, 111) = 1.
Hence, the Minimum Hamming Distance, dmin = 1.
o Single Parity checking is the simple mechanism and inexpensive to detect the
errors.
o 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.
o 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.
o At the receiving end, the parity bit is calculated from the received data bits
and compared with the received parity bit.
o This technique generates the total number of 1s even, so it is known as even-
parity checking.
Checksum Generator
Suppose L is the total sum of the data segments, then the checksum would be ?L
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.
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.
CRC Generator
o 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.
o Now, the string becomes 11100000, and the resultant string is divided by the
divisor 1001.
o The remainder generated from the binary division is known as CRC
remainder. The generated value of the CRC remainder is 111.
o 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
o The functionality of the CRC checker is similar to the CRC generator.
o When the string 11100111 is received at the receiving end, then CRC checker
performs the modulo-2 division.
o A string is divided by the same divisor, i.e., 1001.
o In this case, CRC checker generates the remainder of zero. Therefore, the data
is accepted.
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.
o Line discipline
o Flow Control
o Error Control
Line Discipline
o 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.
o ENQ/ACK
o Poll/select
END/ACK
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.
o 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.
o If the response to the ENQ is negative, then the sender disconnects and restarts the
transmission at another time.
o 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
o 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.
o The primary device has control over the communication link, and the secondary device
follows the instructions of the primary device.
o 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.
o 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.
o 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
o The select mode is used when the primary device has something to send.
o 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.
o When the secondary device receives the SEL frame, it sends an acknowledgement that
indicates the secondary ready status.
o 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
o The Poll mode is used when the primary device wants to receive some data from the
secondary device.
o When a primary device wants to receive the data, then it asks each device whether it has
anything to send.
o 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
o It is a set of procedures that tells the sender how much data it can transmit before the
data overwhelms the receiver.
o 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.
o It requires a buffer, a block of memory for storing the information until they are processed.
o Stop-and-wait
o Sliding window
Stop-and-wait
o In the Stop-and-wait method, the sender waits for an acknowledgement after every frame
it sends.
o 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
o The Sliding Window is a method of flow control in which a sender can transmit the several
frames before getting an acknowledgement.
o 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.
o A single ACK acknowledge multiple frames.
o Sliding Window refers to imaginary boxes at both the sender and receiver end.
o 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.
o Frames can be acknowledged even when the window is not completely filled.
o 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........
o The size of the window is represented as n-1. Therefore, maximum n-1 frames can be sent
before acknowledgement.
o 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
o 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.
o 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.
o 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
o At the beginning of transmission, the receiver window does not contain n frames, but it
contains n-1 spaces for frames.
o When the new frame arrives, the size of the window shrinks.
o 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).
o Once the acknowledgement is sent, the receiver window expands by the number equal to
the number of frames acknowledged.
o 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.
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.
o 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.
o 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.
o 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.
o 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:
o 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.
o 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 is a technique used for continuous transmission error control.
o 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.
o 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.
o 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:
o 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.
o 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.
o 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.
o 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
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 acknowledgement. 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.
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.
For example, suppose that there is a classroom full of students. When a teacher asks a
question, all the students (small channels) in the class start answering the question at the
same time (transferring the data simultaneously). All the students respond at the same
time due to which data is overlap or data lost. Therefore, it is the responsibility of a teacher
(multiple access protocol) to manage the students and make them one answer.
Following are the types of multiple access protocol that is subdivided into the different
process as:
A. Random Access Protocol
In this protocol, all the station has the equal priority to send the data over a channel. In
random access protocol, one or more stations cannot depend on another station nor any
station control another station. Depending on the channel's state (idle or busy), each
station transmits the data frame. However, if more than one station sends the data over
a channel, there may be a collision or data conflict. Due to the collision, the data frame
packets may be lost or changed. And hence, it does not receive by the receiver end.
Following are the different methods of random-access protocols for broadcasting frames
on the channel.
o Aloha
o CSMA
o CSMA/CD
o CSMA/CA
It is designed for wireless LAN (Local Area Network) but can also be used in a shared
medium to transmit data. Using this method, any station can transmit data across a
network simultaneously when a data frameset is available for transmission.
Aloha Rules
Pure Aloha
Whenever data is available for sending over a channel at stations, we use Pure Aloha. In
pure Aloha, when each station transmits data to a channel without checking whether the
channel is idle or not, the chances of collision may occur, and the data frame can be lost.
When any station transmits the data frame to a channel, the pure Aloha waits for the
receiver's acknowledgment. If it does not acknowledge the receiver end within the
specified time, the station waits for a random amount of time, called the backoff time (Tb).
And the station may assume the frame has been lost or destroyed. Therefore, it
retransmits the frame until all the data are successfully transmitted to the receiver.
Slotted Aloha
The slotted Aloha is designed to overcome the pure Aloha's efficiency because pure Aloha
has a very high possibility of frame hitting. In slotted Aloha, the shared channel is divided
into a fixed time interval called slots. So that, if a station wants to send a frame to a shared
channel, the frame can only be sent at the beginning of the slot, and only one frame is
allowed to be sent to each slot. And if the stations are unable to send data to the
beginning of the slot, the station will have to wait until the beginning of the slot for the
next time. However, the possibility of a collision remains when trying to send a frame at
the beginning of two or more station time slot.
It is a carrier sense multiple access based on media access protocol to sense the traffic
on a channel (idle or busy) before transmitting the data. It means that if the channel is
idle, the station can send data to the channel. Otherwise, it must wait until the channel
becomes idle. Hence, it reduces the chances of a collision on a transmission medium.
1-Persistent: In the 1-Persistent mode of CSMA that defines each node, first sense the
shared channel and if the channel is idle, it immediately sends the data. Else it must wait
and keep track of the status of the channel to be idle and broadcast the frame
unconditionally as soon as the channel is idle.
Non-Persistent: It is the access mode of CSMA that defines before transmitting the data,
each node must sense the channel, and if the channel is inactive, it immediately sends the
data. Otherwise, the station must wait for a random time (not continuously), and when
the channel is found to be idle, it transmits the frames.
P-Persistent: It is the combination of 1-Persistent and Non-persistent modes. The P-
Persistent mode defines that each node senses the channel, and if the channel is inactive,
it sends a frame with a P probability. If the data is not transmitted, it waits for a (q = 1-p
probability) random time and resumes the frame with the next time slot.
CSMA/ CD
CSMA/ CA
Following are the methods used in the CSMA/ CA to avoid the collision:
Interframe space: In this method, the station waits for the channel to become idle, and
if it gets the channel is idle, it does not immediately send the data. Instead of this, it waits
for some time, and this time period is called the Interframe space or IFS. However, the
IFS time is often used to define the priority of the station.
Contention window: In the Contention window, the total time is divided into different
slots. When the station/ sender is ready to transmit the data frame, it chooses a random
slot number of slots as wait time. If the channel is still busy, it does not restart the entire
process, except that it restarts the timer only to send data packets when the channel is
inactive.
Acknowledgment: In the acknowledgment method, the sender station sends the data
frame to the shared channel if the acknowledgment is not received ahead of time.
Following are the various methods to access the channel based on their time, distance
and codes:
FDMA
It is a frequency division multiple access (FDMA) method used to divide the available
bandwidth into equal bands so that multiple users can send data through a different
frequency to the subchannel. Each station is reserved with a particular band to prevent
the crosstalk between the channels and interferences of stations.
TDMA
Time Division Multiple Access (TDMA) is a channel access method. It allows the same
frequency bandwidth to be shared across multiple stations. And to avoid collisions in the
shared channel, it divides the channel into different frequency slots that allocate stations
to transmit the data frames. The same frequency bandwidth into the shared channel by
dividing the signal into various time slots to transmit it. However, TDMA has an overhead
of synchronization that specifies each station's time slot by adding synchronization bits
to each slot.
CDMA
The code division multiple access (CDMA) is a channel access method. In CDMA, all
stations can simultaneously send the data over the same channel. It means that it allows
each station to transmit the data frames with full frequency on the shared channel at all
times. It does not require the division of bandwidth on a shared channel based on time
slots. If multiple stations send data to a channel simultaneously, their data frames are
separated by a unique code sequence. Each station has a different unique code for
transmitting the data over a shared channel. For example, there are multiple users in a
room that are continuously speaking. Data is received by the users if only two-person
interact with each other using the same language. Similarly, in the network, if different
stations communicate with each other simultaneously with different code language.