Unit 2
Unit 2
Unit 2
2
Data Link Layer
• Algorithms for achieving:
– Reliable, +
– Efficient,
communication of a whole units – frames (as opposed to
bits – Physical Layer) between two machines.
• Two machines are connected by a communication
channel that acts conceptually like a wire (e.g.,
telephone line, coaxial cable, or wireless channel).
7
Services Provided to the Network Layer
• Principal Service Function of the data link layer is to
transfer the data from the network layer on the source
machine to the network layer on the destination machine.
– Process in the network layer that hands some bits to the
data link layer for transmission.
– Job of data link layer is to transmit the bits to the destination
machine so they can be handed over to the network layer
there (see figure in the next slide).
Network Layer Services
10
Unacknowledged Connectionless
Service
• It consists of having the source machine send independent frames to
acknowledge them.
• Example: Ethernet, Voice over IP, etc. in all the communication channel
• Network layer does not know frame size of the packets and
other restriction of the data link layer.
• Hence it becomes necessary for data link layer to have some
mechanism to optimize the transmission.
Acknowledged Connection Oriented
Service
• Source and Destination establish a connection first.
• Each frame sent is numbered
– Data link layer guarantees that each frame sent is indeed
received.
– It guarantees that each frame is received only once and that
all frames are received in the correct order.
• Examples:
– Satellite channel communication,
– Long-distance telephone communication, etc.
Acknowledged Connection Oriented
Service
• Three distinct phases:
1. Connection is established by having both side initialize
variables and counters needed to keep track of which
frames have been received and which ones have not.
2. One or more frames are transmitted.
1.Byte count.
2.Flag bytes with byte stuffing.
3.Flag bits with bit stuffing.
4.Physical layer coding violations.
18
Byte Count Framing Method
• It uses a field in the header to specify the number of bytes
in the frame.
• Once the header information is being received it will be
used to determine end of the frame.
• See figure in the next slide:
• Trouble with this algorithm is that when the count is
incorrectly received the destination will get out of synch
with transmission.
– Destination may be able to detect that the frame is in error
but it does not have a means (in this algorithm) how to
correct it.
Framing (1)
scanf(“%s”, &[i]);
}
for (i=0; i<n; i++)
{
x[i]=strlen(s[i]);
}
printf(“\n Generated Code is:\n\n ”);
}
getch();
} 21
Flag Bytes with Byte Stuffing Framing
Method
• This methods gets around the boundary detection of the frame
by having each appended by the frame start and frame end
special bytes.
• If they are the same (beginning and ending byte in the frame)
they are called flag byte.
• In the next slide figure this byte is shown as FLAG.
• If the actual data contains a byte that is identical to the FLAG
byte (e.g., picture, data stream, etc.) the convention that can be
used is to have escape character inserted just before the “FLAG”
character.
Framing (2)
23
Flag Bits with Bit Stuffing Framing
Method
• This methods achieves the same thing as Byte Stuffing
method by using Bits (1) instead of Bytes (8 Bits).
• It was developed for High-level Data Link Control (HDLC)
protocol.
• Each frames begins and ends with a special bit pattern:
– 01111110 or 0x7E <- 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.
– USB uses bit stuffing.
Framing (3)
Bit stuffing. (a) The original data. (b) The data as they appear on
the line. (c) The data as they are stored in the receiver’s memory after destuffing.
25
Framing
• Two approaches:
1. Feedback-based flow control
2. Rate-based flow control
Feedback-based Flow Control
1.Hamming codes.
2.Binary convolutional codes.
3.Reed-Solomon codes.
4.Low-Density Parity Check
codes.
37
Error Detection & Correction Code
• All the codes presented in previous slide add redundancy to
the information that is being sent.
• A frame consists of
– m data bits (message) and
– r redundant bits (check).
• Block code - the r check bits are computed solely as function
of the m data bits with which they are associated.
• Systemic code – the m data bits are send directly along with
the check bits.
• One cannot perform double errors and at the same time detect
quadruple errors.
• Codeword: b1 b2 b3 b4 ….
• Check bits: The bits that
are powers of 2 (p1, p2, p4,
p8, p16, …).
• The rest of bits (m3, m5,
m6, m7, m9, …) are filled
with m data bits.
• Example shows some 7-bit
ASCII character encoded
as 11-bit codewords using
Hamming code.
Error Detection Codes (2)
Example of the Hamming code with m = 7 data bits and r = 4 check bits
is given below.
47
Computer Networks, Fifth Edition by Andrew Tanenbaum and David Wetherall, © Pearson Education-Prentice Hall, 2011
Convolutional Encoders
• Like any error-correcting code, a convolutional code works by
adding some structured redundant information to the user's data
and then correcting errors using this information.
• A convolutional encoder is a linear system.
• A binary convolutional encoder can be represented as a shift
register.
• The outputs of the encoder are modulo 2 sums of the values in
the certain register's cells.
• The input to the encoder is either the encoded sequence (for
non-recursive codes) or the encoded sequence added with the
values of some register's cells (for recursive codes).
• Convolutional codes can be systematic and non-systematic.
Systematic codes are those where an unencoded sequence is a
part of the output sequence.
• Systematic codes are almost always recursive, conversely, non-
recursive codes are almost always non-systematic.
Error-Detecting Codes (1)
49
Error-Detecting Codes (2)
50
Error-Detecting Codes (3)
52
Elementary Data Link Protocols
53
Elementary Data Link Protocols (3)
Some definitions needed in the protocols to follow. These definitions are located in the
file protocol.h.
54
Elementary Data Link Protocols (4)
Some definitions needed in the protocols to follow. These definitions are located in the
file protocol.h.
55
Elementary Data Link Protocols (5)
Some definitions needed in the protocols to follow. These definitions are located in the file
protocol.h.
56
Utopian Simplex Protocol (1)
58
Simplex Stop-and-Wait for an Error-Free Channel
• After passing packet to its n/w layer, receiver send small dummy frame to
sender
• Protocols in which sender sends one frame & waits for acknowledge before
61
Simplex Stop-and-Wait Protocol for a Noisy Channel
• A NL on A gives packet 1 to its DLL. The packet is correctly received at B & passed
• The duplicate frame also arrives intact at the DLL on B is accidentally passed to NL
62
PAwR Protocol
63
PAwR Protocol
64
PAR with Retransmission Protocol
68
One-Bit Sliding Window Protocol (2)
69
One-Bit Sliding Window Protocol (3)
70
One-Bit Sliding Window Protocol (4)
71
Protocol Using Go-Back-N (1)
72
Protocol Using Go-Back-N (2)
73
Protocol Using Go-Back-N (3)
74
Protocol Using Go-Back-N (4)
75
Protocol Using Go-Back-N (5)
76
Protocol Using Go-Back-N (6)
77
Protocol Using Go-Back-N (7)
78
Protocol Using Go-Back-N (8)
81
Protocol Using Selective Repeat (1)
82
Protocol Using Selective Repeat (2)
83
Protocol Using Selective Repeat (3)
84
Protocol Using Selective Repeat (4)
85
Protocol Using Selective Repeat (5)
86
Protocol Using Selective Repeat (6)
87
Protocol Using Selective Repeat (7)
...
...
91
Computer Networks, Fifth Edition by Andrew Tanenbaum and David Wetherall, © Pearson Education-Prentice Hall, 2011
End
Computer Networks, Fifth Edition by Andrew Tanenbaum and David Wetherall, © Pearson Education-Prentice Hall, 2011