Data Link Lyer Complete
Data Link Lyer Complete
Data Link Lyer Complete
MUKESH CHINTA
Asst Prof, CSE
VRSEC
OVERVIEW OF DLL
The data link layer transforms the physical layer, a raw transmission facility, to
a link responsible for node-to-node (hop-to-hop) communication. Specific
responsibilities of the data link layer include framing, addressing, flow control,
error control, and media access control.
2
DLL DESIGN ISSUES
Error Control
Sender checksums the frame and transmits checksum together
with data. Receiver re-computes the checksum and compares it
with the received value.
Flow Control
Prevent a fast sender from overwhelming a slower receiver.
DATA LINK LAYER DESIGN ISSUES
Providing a well-defined service interface to the
network layer.
Dealing with transmission errors.
4
SERVICES PROVIDED TO THE NETWORK LAYER
9
FRAMING
DLL translates the physical layer's raw bit
stream into discrete units (messages) called
frames.
11
The trouble with this algorithm is that the count can be garbled by a
transmission error.
FRAMING – BYTE STUFFING
Use reserved characters to indicate the start and end of a frame. For instance,
use the two-character sequence DLE STX (Data-Link Escape, Start of TeXt)
to signal the beginning of a frame, and the sequence DLE ETX (End of TeXt)
to flag the frame's end.
The second framing method, Starting and ending character
stuffing, gets around the problem of resynchronization after
an error by having each frame start with the ASCII character
sequence DLE STX and end with the sequence DLE ETX.
Problem: What happens if the two-character sequence DLE ETX
happens to appear in the frame itself?
Solution: Use character stuffing; within the frame, replace every occurrence
of DLE with the two-character sequence DLE DLE. The receiver reverses the
processes, replacing every occurrence of DLE DLE with a single DLE.
Example: If the frame contained ``A B DLE D E DLE'', the characters
transmitted over the channel would be ``DLE STX A B DLE DLE D E DLE
DLE DLE ETX''.
12
Disadvantage: character is the smallest unit that can be operated on; not
all architectures are byte oriented.
13
Byte stuffing and unstuffing
14
FRAMING – BIT STUFFING
This technique allows data frames to contain an arbitrary number of bits and
allows character codes with an arbitrary number of bits per character. It
works like this. Each frame begins and ends with a special bit pattern,
01111110 (in fact, a flag byte).
Whenever the sender's data link layer encounters five consecutive 1s in the
data, it automatically stuffs a 0 bit into the outgoing bit stream.
This bit stuffing is analogous to byte stuffing, in which an escape byte is
stuffed into the outgoing character stream before a flag byte in the data.
When the receiver sees five consecutive incoming 1 bits, followed by a 0
bit, it automatically destuffs (i.e., deletes) the 0 bit
15
BIT STUFFING EXAMPLE
16
Byte stuffing and unstuffing
17
PHYSICAL LAYER CODING VIOLATIONS
This Framing Method is used only in those networks in which
Encoding on the Physical Medium contains some redundancy.
Some LANs encode each bit of data by using two Physical Bits
i.e. Manchester coding is Used. Here, Bit 1 is encoded into high-
low(10) pair and Bit 0 is encoded into low-high(01) pair.
The scheme means that every data bit has a transition in the middle,
making it easy for the receiver to locate the bit boundaries. The
combinations high-high and low-low are not used for data but are
used for delimiting frames in some protocols.
18
ERROR CONTROL
Error control is concerned with insuring that all frames are eventually
delivered (possibly in order) to a destination. How? Three items are required.
Two Approaches:
feedback-based flow control, the receiver sends back information
to the sender giving it permission to send more data or at least
telling the sender how the receiver is doing
rate-based flow control, the protocol has a built-in mechanism
that limits the rate at which senders may transmit data, without
using feedback from the receiver.
2. Burst error : It means two or more bits in data unit are changed from 1 to 0
from 0 to 1. In burst error, it is not necessary that only consecutive bits are
changed. The length of burst error is measured from first changed bit to last
changed bit
22
ERROR DETECTION VS ERROR CORRECTION
There are two types of attacks against errors:
Error Detecting Codes: Include enough redundancy bits to detect
errors and use ACKs and retransmissions to recover from the errors.
Error Correcting Codes: Include enough redundancy to detect and
correct errors. The use of error-correcting codes is often referred to as
forward error correction.
23
ERROR DETECTION
Error detection means to decide whether the received data is correct or
not without having a copy of the original message.
24
VERTICAL REDUNDANCY CHECK (VRC)
Append a single bit at the end of data block such that the number of
ones is even
Even Parity (odd parity is similar)
0110011 01100110
0110001 01100011
VRC is also known as Parity Check. Detects all odd-number errors in a
data block
25
EXAMPLE OF VRC
The problem with parity is that it can only detect odd numbers of bit
substitution errors, i.e. 1 bit, 3bit, 5, bit, etc. errors. If there two,
four, six, etc. bits which are transmitted in error, using VRC will not
be able to detect the error.
26
LONGITUDINAL REDUNDANCY CHECK (LRC)
Longitudinal Redundancy Checks (LRC) seek to overcome the weakness of
simple, bit-oriented, one-directional parity checking.
LRC adds a new character (instead of a bit) called the Block Check Character
(BCC) to each block of data. Its determined like parity, but counted
longitudinally through the message (also vertically)
Its has better performance over VRC as it detects 98% of the burst errors (>10
errors) but less capable of detecting single errors
If two bits in one data units are damaged and two bits in exactly the same
positions in another data unit are also damaged, the LRC checker will not
detect an error.
11100111 11011101 00111001 10101001
11100111
11011101
00111001
10101001
10101010
27
11100111 11011101 00111001 10101001 10101010
Original Data LRC
TWO DIMENSIONAL PARITY CHECK
Upon receipt, each character is checked according to its VRC parity
value and then the entire block of characters is verified using the
LRC block check character.
28
29
ANOTHER EXAMPLE OF TWO DIMENSIONAL
PARITY CHECK
Consider the following bit stream that has been encoded using
VRC, LRC and even parity. Locate the error if present
30
CYCLIC REDUNDANCY CHECK
(CRC)
The cyclic redundancy check, or CRC, is a technique for detecting
errors in digital data, but not for making corrections when errors are
detected. It is used primarily in data transmission
In the CRC method, a certain number of check bits, often called a
checksum, are appended to the message being transmitted. The
receiver can determine whether or not the check bits agree with the
data, to ascertain with a certain degree of probability whether or not
an error occurred in transmission
The CRC is based on polynomial arithmetic, in particular, on
computing the remainder of dividing one polynomial in GF(2)
(Galois field with two elements) by another.
Can be easily implemented with small amount of hardware
Shift registers
XOR (for addition and subtraction)
31
GENERATOR POLYNOMIAL
A cyclic redundancy check (CRC) is a non-secure hash function designed to
detect accidental changes to raw computer data, and is commonly used in
digital networks and storage devices such as hard disk devices.
CRCs are so called because the check (data verification) code is
a redundancy (it adds zero information) and the algorithm is based on cyclic
codes.
The term CRC may refer to the check code or to the function that calculates it,
which accepts data streams of any length as input but always outputs a fixed-
length code
The divisor in a cyclic code is normally called the generator polynomial or
simply the generator. The proper
1. It should have at least two terms.
33
CYCLIC REDUNDANCY CHECK
Let M(x) be the message polynomial
Let P(x) be the generator polynomial
P(x) is fixed for a given CRC scheme
P(x) is known both by sender and receiver
Create a block polynomial F(x) based on M(x)
and P(x) such that F(x) is divisible by P(x)
F ( x) 0
Q( x)
P( x) P( x)
CYCLIC REDUNDANCY CHECK
Sending
1. Multiply M(x) by xn
2. Divide xnM(x) by P(x)
3. Ignore the quotient and keep the reminder
C(x)
4. Form and send F(x) = xnM(x)+C(x)
Receiving
1. Receive F’(x)
2. Divide F’(x) by P(x)
3. Accept if remainder is 0, reject otherwise
EXAMPLE OF CRC
Consider a message 110010 represented by the polynomial M(x) = x 5 + x4 + x
Consider a generating polynomial G(x) = x3 + x2 + 1 (1101)
This is used to generate a 3 bit CRC = C(x) to be appended to M(x).
Steps:
1. Multiply M(x) by x3 (highest power in G(x)). i.e. Add 3 zeros. 110010000
2. Divide the result by G(x). The remainder = C(x).
1101 long division into 110010000 (with subtraction mod 2)
= 100100 remainder 100
3. Transmit 110010000 + 100
To be precise, transmit: T(x) = x3M(x) + C(x)
= 110010100
4. Receiver end: Receive T(x). Divide by G(x), should have remainder 0.
Note if G(x) has order n - highest power is xn, then G(x) will
cover (n+1) bits
36
and the remainder will cover n bits. i.e. Add n bits to
message.
37
AT
SE
ND
ER ER
IV
CE
RE
AT
38
ANOTHER EXAMPLE OF CRC
39
CRC DIVISION IN POLYNOMIAL FORM
40
41
CRC STANDARD POLYNOMIALS
CRC PERFORMANCE
CRC is a very effective error detection technique. If the divisor is chosen
according to the previously mentioned rules, its performance can be
summarized as follows:
CRC can detect all single-bit errors
CRC can detect all double-bit errors (three 1’s)
CRC can detect any odd number of errors (X+1)
CRC can detect all burst errors of less than the degree of the polynomial.
CRC detects most of the larger burst errors with a high probability. 42
43
CHECKSUM
44
CHECKSUM EXAMPLE
45
Q) For a pattern of, 10101001 00111001 00011101 Find out whether any
transmission errors have occurred or not
46
EXAMPLE OF CHECKSUM
47
48
49
CHECKSUM VS CRC
CRC is more thorough as opposed to Checksum in
checking for errors and reporting.
Checksum is the older of the two programs.
CRC has a more complex computation as opposed to
checksum.
Checksum mainly detects single-bit changes in data
while CRC can check and detect double-digit errors.
CRC can detect more errors than checksum due to its
more complex function.
A checksum is mainly employed in data validation when
implementing software.
A CRC is mainly used for data evaluation in analogue
50
data transmission.
ERROR CORRECTION
Once detected, the errors must be corrected
53
HAMMING CODE EXAMPLE
55
Hamming Code
56
Hamming Code
61
AN UNRESTRICTED SIMPLEX PROTOCOL
In order to appreciate the step by step development of efficient and
complex protocols we will begin with a simple but unrealistic protocol. In
this protocol: Data are transmitted in one direction only
The transmitting (Tx) and receiving (Rx) hosts are always ready
Processing time can be ignored
Infinite buffer space is available
No errors occur; i.e. no damaged frames and no lost frames (perfect
channel)
62
A SIMPLEX STOP-AND-WAIT PROTOCOL
In this protocol we assume that Data are transmitted in one direction
only
No errors occur (perfect channel)
The receiver can only process the received information at a finite rate
The sender sends one frame and waits for feedback from the
receiver. When the ACK arrives, the sender sends the next
frame
64
A SIMPLEX PROTOCOL FOR A NOISY CHANNEL
In this protocol the unreal "error free" assumption in protocol 2 is dropped.
Frames may be either damaged or lost completely. We assume that
transmission errors in the frame are detected by the hardware checksum. One
suggestion is that the sender would send a frame, the receiver would send an
ACK frame only if the frame is received correctly. If the frame is in error the
receiver simply ignores it; the transmitter would time out and would retransmit
it.
One fatal flaw with the above scheme is that if the ACK frame is lost or
damaged, duplicate frames are accepted at the receiver without the receiver
knowing it.
65
Imagine a situation where the receiver has just sent an ACK frame back to the sender
saying that it correctly received and already passed a frame to its host. However, the
ACK frame gets lost completely, the sender times out and retransmits the frame.
There is no way for the receiver to tell whether this frame is a retransmitted frame or
a new frame, so the receiver accepts this duplicate happily and transfers it to the host.
The protocol thus fails in this aspect.
STOP-AND-WAIT, LOST FRAME STOP-AND-WAIT, LOST ACK FRAME
66
To overcome this problem it is required that the receiver be able to
distinguish a frame that it is seeing for the first time from a
retransmission. One way to achieve this is to have the sender put a
sequence number in the header of each frame it sends. The receiver
then can check the sequence number of each arriving frame to see if it
is a new frame or a duplicate to be discarded.
68
After transmitting a frame and starting the timer, the sender waits for
something exciting to happen.
Only three possibilities exist: an acknowledgement frame arrives
undamaged, a damaged acknowledgement frame staggers in, or the timer
expires.
If a valid acknowledgement comes in, the sender fetches the next
packet from its network layer and puts it in the buffer, overwriting
the previous packet. It also advances the sequence number. If a
damaged frame arrives or no frame at all arrives, neither the buffer
nor the sequence number is changed so that a duplicate can be sent.
When a valid frame arrives at the receiver, its sequence number is checked
to see if it is a duplicate. If not, it is accepted, passed to the network layer,
and an acknowledgement is generated. Duplicates and damaged frames are
69
not passed to the network layer.
SLIDING WINDOW
PROTOCOLS
70
DATA FRAME TRANSMISSION
Unidirectional assumption in previous elementary
protocols
Not general
Full-duplex - approach 1
Two separate communication channels(physical
circuits)
Forward channel for data
Reverse channel for acknowledgement
Approach 3
Attaching
72
acknowledgement to
outgoing data frames
PIGGYBACKING
Temporarily delaying transmission of outgoing
acknowledgement so that they can be hooked
onto the next outgoing data frame
Advantage: higher channel bandwidth utilization
Complication:
How long to wait for a packet to piggyback?
If longer than sender timeout period then sender
retransmits
Purpose of acknowledgement is lost
Solution for timing complexion
If a new packet arrives quickly
73
Piggybacking
If no new packet arrives after a receiver ack timeout
SLIDING WINDOW PROTOCOLS
The next three protocols are bidirectional protocols that belong to a
class called sliding window protocols. (max sending window size,
receiving window size)
One-bit sliding window protocol (1, 1)
Go back N (>1, 1)
Selective repeat (>1, >1)
The three differ among themselves in terms of efficiency,
complexity, and buffer requirements.
Each outbound frame contains an n-bit sequence number
Range: 0 - MAX_SEQ (MAX_SEQ = 2n - 1)
For stop-and-wait, n = 1 restricting the sequence numbers to 0 74
and 1 only
SENDING & RECEIVING WINDOWS
At any instance of time
Sender maintains a set of sequence numbers of frames permitted to
send
These frames fall within sending window
Lower limit, upper limit, and size of two windows need not be the
same - Fixed or variable size
Senders Window contains frames can be sent or have been sent but
not yet acknowledged – outstanding frames
When a packet arrives from network layer
Next highest sequence number assigned
Upper edge of window advanced by 1
When an acknowledgement arrives 75
The receiving data link layer's window corresponds to the frames it may
accept. Any frame falling outside the window is discarded without
comment. When a frame whose sequence number is equal to the lower
edge of the window is received, it is passed to the network layer, an
acknowledgement is generated, and the window is rotated by one.
Unlike the sender's window, the receiver's window always remains at its
initial size.
76
SENDER SLIDING WINDOW
• At the sending site, to hold
the outstanding frames until
they are acknowledged, we
use the concept of a
window.
78
CONTROL VARIABLES
79
80
A ONE BIT SLIDING WINDOW PROTOCOL
* (1,0,A1)
Exp=1 (0,1,A0)
*
(1,1,B1) Exp=0 *
(0,0,B0) Exp=1
* (0,1,A2)
Exp=0 *
Exp=1
*
(0,0,B2) Exp=1
83
*
ONE BIT SLIDING WINDOW
PROTOCOL
(0,1,A0) (0,1,A0)
* duplicate,
(0,0,B0) Exp=1 (0,0,B0)
discarded
* *
Exp=1 Exp=1
84
ONE BIT SLIDING WINDOW
PROTOCOL
* *
Exp=0 (0,1,B0) Exp=0
85
*
Exp=1
PERFORMANCE OF STOP-AND-WAIT PROTOCOL
Assumption of previous protocols:
Transmission time is negligible
t False, when transmission time is long
0
20
Example - satellite communication
channel capacity: 50 kbps, frame size: 1kb
Conclusion:
Long transit time + high bandwidth + short frame length disaster86
Performance of Stop-and-Wait
Protocol
• In stop-and-wait, at any point in time, there is only one
frame that is sent and waiting to be acknowledged.
• This is not a good use of transmission medium.
• To improve efficiency, multiple frames should be in
transition while waiting for ACK.
Solution: PIPELINING
Allowing w frames sent before blocking
Problem: errors
Solutions
Go back n protocol (GNP)
Selective repeat protocol (SRP)
Acknowledge n means frames n, n-1, n-2,… are 87
acknowledged (i.e., received correctly)
GO BACK N PROTOCOL
Improves efficiency of Stop and Wait by not
waiting
Keep Channel busy by continuing to send frames
Allow a window of upto Ws outstanding frames
Use m-bit sequence numbering
Receiver discards all subsequent frames following
an error one, and send no acknowledgement for
those discarded
Receiving window size = 1 (i.e., frames must be
accepted in the order they were sent)
Sending window might get full
If so, re-transmitting unacknowledged frames
Wasting a lot of bandwidth if error rate is high
GO BACK N PROTOCOL
90
GO-BACK-N ARQ, SENDER WINDOW SIZE
• Size of the sender window must be less than 2 m. Size of the
receiver is always 1. If m = 2, window size = 2 m – 1 = 3.
• Fig compares a window size of 3 and 4.
Accepts as
the 1st
frame in
the next
cycle-an
error
SELECT REPEAT PROTOCOL
Receiver stores correct frames following the bad one
retransmission of a frame
Arrival of a damaged frame
Arrival of a frame other than the expected\
NAKs stimulate retransmission before the corresponding timer 92
expires and thus improve performance.
SELECTIVE REPEAT WITH NAK
SELECTIVE REPEAT ARQ, SENDER AND RECEIVER WINDOWS.
• Go-Back-N ARQ simplifies the process at the receiver site. Receiver only keeps
track of only one variable, and there is no need to buffer out-of-order frames,
they are simply discarded.
• However, Go-Back-N ARQ protocol is inefficient for noisy link. It bandwidth
inefficient and slows down the transmission.
• In Selective Repeat ARQ, only the damaged frame is resent. More bandwidth
efficient but more complex processing at receiver.
• It defines a negative ACK (NAK) to report the sequence number of a damaged
frame before the timer expires.
SELECTIVE REPEAT IN ACTION
95
SELECTIVE REPEAT ARQ, LOST FRAME
• Frames 0 and 1
are accepted when
received because
they are in the
range specified by
the receiver
window. Same for
frame 3.
• Receiver sends a
NAK2 to show
that frame 2 has
not been received
and then sender
resends only
frame 2 and it is
accepted as it is in
the range of the
window.
SELECTIVE
REPEAT DILEMMA
Example:
seq #’s: 0, 1, 2, 3
window size=3
receiver sees no
difference in two
scenarios!
incorrectly passes
duplicate data as new
in (a)
Q: what relationship
between seq # size
and window size?
97
SELECTIVE REPEAT ARQ, SENDER WINDOW SIZE
• Size of the sender and receiver windows must be at most one-half of 2 m.
• If m = 2, window size should be 2 m /2 = 2. Fig compares a window size of 2
with a window size of 3. Window size is 3 and all ACKs are lost, sender sends
duplicate of frame 0, window of the receiver expect to receive frame 0 (part of
the window), so accepts frame 0, as the 1st frame of the next cycle – an error.
SELECT REPEAT PROTOCOL -
WINDOW SIZE
Problem is caused by new and old windows
overlapped
Solution
Window size=(MAX_SEQ+1)/2
E.g., if 4-bit window is used, MAX_SEQ = 15
99
SELECT REPEAT PROTOCOL
101