0% found this document useful (0 votes)
61 views148 pages

Chapter 3

1) The document discusses the data link layer of the OSI model. It describes framing techniques like character counting, byte stuffing, and bit stuffing which are used to delineate frames at the data link layer. 2) Error control mechanisms like checksums and acknowledgements are discussed. Services provided by the data link layer like acknowledged and unacknowledged connectionless and connection-oriented services are also summarized. 3) Framing allows the receiver to identify the start and end of frames on the physical layer bit stream. Error control ensures correct delivery of frames through acknowledgements and retransmissions if needed.

Uploaded by

Pratham Suhasia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
61 views148 pages

Chapter 3

1) The document discusses the data link layer of the OSI model. It describes framing techniques like character counting, byte stuffing, and bit stuffing which are used to delineate frames at the data link layer. 2) Error control mechanisms like checksums and acknowledgements are discussed. Services provided by the data link layer like acknowledged and unacknowledged connectionless and connection-oriented services are also summarized. 3) Framing allows the receiver to identify the start and end of frames on the physical layer bit stream. Error control ensures correct delivery of frames through acknowledgements and retransmissions if needed.

Uploaded by

Pratham Suhasia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 148

CE – TE –Computer Network (CSC503)

Prof. Arathi Boyanapalli


Assistant Professor
Dept. of Computer Engineering,
SIES Graduate School of Technology
Prof. Arathi Boyanapalli 2
OSI Model
Layers
7.Application Layer Advice
6.Presentation Layer
5.Session Layer Perso
4.Transport Layer n
3.Network Layer Sales
2.Data Link Layer Trust
1.Physical Layer Not
Do 3
Data Link Layer

Prof. Arathi Boyanapalli 4


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
❶ Services Provided to the Network Layer
⚫ The network layer wants to be able to send packets to its neighbors
without worrying about the details of getting it there in one piece.
❷ Framing
⚫ Group the physical layer bit stream into units called frames. Frames are nothing
more than "packets" or "messages". By convention, we use the term "frames"
when discussing DLL.

 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.

 Regulating the flow of data so that slow receivers are not


swamped by fast senders
For this, the data link layer takes the packets it gets from the network layer and
encapsulates them into frames for transmission. Each frame contains a frame
header, a payload field for holding the packet, and a frame trailer

7
 The function of the data link layer is to provide services to the network layer.
The principal service is transferring data from the network layer on the
source machine to the network layer on the destination machine.

 The data link layer can be designed to offer various services. The actual
services offered can vary from system to system. Three reasonable
possibilities that are commonly provided are

1) Unacknowledged Connectionless service

2) Acknowledged Connectionless service

3) Acknowledged Connection-Oriented service


8
Prof. Arathi Boyanapalli 9
UNACKNOWLEDGED CONNECTIONLESS SERVICE
 Unacknowledged connectionless service consists of having the source
machine send independent frames to the destination machine without
having the destination machine acknowledge them.

 No logical connection is established beforehand or released afterward. If a


frame is lost due to noise on the line, no attempt is made to detect the loss
or recover from it in the data link layer.

 This class of service is appropriate when the error rate is very low so
that recovery is left to higher layers. It is also appropriate for real- time
traffic, such as voice, in which late data are worse than bad data. Most
LANs use unacknowledged connectionless service in the data link layer.

1
0
ACKNOWLEDGED CONNECTIONLESS SERVICE
 When this service is offered, there are still no logical connections used, but
each frame sent is individually acknowledged.

 In this way, the sender knows whether a frame has arrived correctly. If it
has not arrived within a specified time interval, it can be sent again. This
service is useful over unreliable channels, such as wireless systems.

 Adding Ack in the DLL rather than in the Network Layer is just an
optimization and not a requirement. If individual frames are acknowledged
and retransmitted, entire packets get through much faster. On reliable
channels, such as fiber, the overhead of a heavyweight data link protocol
may be unnecessary, but on wireless channels, with their inherent
unreliability, it is well worth the cost.

1
1
ACKNOWLEDGED CONNECTION-ORIENTED SERVICE
 Here, the source and destination machines establish a connection
before any data are transferred. Each frame sent over the connection
is numbered, and the data link layer
guarantees that each frame sentis indeed
Furthermore, received. it guarantees that each frame is
exactly once and received
that all frames are received in the
right
order.

 When connection-oriented service is used, transfers


go through three distinct phases.
⚫ In the first phase, the connection is established by having both sides initialize
variables and counters needed to keep track of which frames have been received
and which ones have not.

⚫ In the third
In the secondand finalone
phase, phase, theframes
or more connection is released,
are actually freeing up the
transmitted. 8
variables, buffers, and other resources used to maintain the connection
PLACEMENT OF DATA LINK PROTOCOL

13
 DLL translates the physical layer's raw bit
stream into discrete units (messages) called frames.

 How can frame be transmitted so the receiver


detect
can frame boundaries? That is, how can the
receiver recognize the start and end of a frame?
❶ Character Count
❷ Flag byte with Byte Stuffing
❸ Starting and ending flag with bit stuffing
❹ Encoding Violations

14
Prof. Arathi Boyanapalli 15
FRAMING – CHARACTER COUNT
 The first framing method uses a field in the header to specify the
number of characters in the frame. When the data link layer at the
destination sees the character count, it knows how many characters
follow and hence where the end of the frame is.

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.
18
19
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

20
BIT STUFFING EXAMPLE

21
22
 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.
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.

 Acknowledgements: Typically, delivery is achieved using the


reliable
“acknowledgments with retransmission" paradigm, whereby the receiver
returns a special acknowledgment (ACK) frame to the sender indicating the
correct receipt of a frame.
⚫ In some systems, the receiver also returns a negative acknowledgment (NACK) for
incorrectly-received frames. This is nothing more than a hint to the sender so that it can
retransmit a frame right away without waiting for a timer to expire.
 Timers: One problem that simple ACK/NACK schemes fail to address is
recovering from a frame that is lost, and as a result, fails to solicit an ACK or
NACK. What happens if an ACK or NACK becomes lost?
⚫ Retransmission timers are used to resend frames that don't produce an ACK. When
sending a frame, schedule a timer to expire at some time after the ACK should have been
returned. If the timer goes o, retransmit the frame.
 Sequence Numbers: Retransmissions introduce the possibility of duplicate
frames. To suppress duplicates, add sequence numbers to each frame, so tha1t 9a
receiver can distinguish between new frames and old copies.
 Flow control deals with throttling the speed of the sender to
match that of the receiver.

 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.

 Various Flow Control schemes uses a common protocol


that contains well-defined rules about when a sender may
transmit the next frame. These rules often prohibit frames from
being sent until the receiver has granted permission, either
implicitly 20 or explicitly.
 It is physically impossible for any data recording or transmission
medium to be 100% perfect 100% of the time over its entire
expected useful life.
⚫ In data communication, line noise is a fact of life (e.g., signal attenuation, natural
phenomenon such as lightning, and the telephone repairman).
 As more bits are packed onto a square centimeter of disk storage, as
communications transmission speeds increase, the likelihood of error
increases-- sometimes geometrically.
 Thus, error detection and correction is critical to accurate data
transmission, storage and retrieval.

 Detecting and correcting errors requires redundancy -- sending additional


information along with the data.
26
TYPES OF ERRORS
 There are two main types of errors in transmissions:
1. Single bit error : It means only one bit of data unit is changed from 1 to
0 or from 0 to 1.

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

27
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.

28
ERROR DETECTION
Error detection means to decide whether the received data is correct or
not without having a copy of the original message.

Error detection uses the concept of redundancy, which means


adding extra bits for detecting errors at the destination.

29
 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

30
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.

31
 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
Even 1s 0
00111001
Odd 1s 1 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.

33
34
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

35
36
37
38
39
 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.

 2. The coefficient of the term x0 should be 1.

 3. It should not divide xt + 1, for t between 2 and n − 1.

 4. It should have the factor x + 1.


41
CRC Calculation

 Given a k-bit frame or message, the transmitter generates an


n-bit sequence, known as a frame check sequence (FCS), so
that the resulting frame, consisting of (k+n) bits, is exactly
divisible by some predetermined number.

42
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)

0
F ( x)
P(x)  Q(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
CRC Example
 Consider a message 110010 represented by the polynomial M(x) = x5 + 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
and the remainder will cover n bits. i.e. Add n bits to message. 36
46
47
Example of CRC

39
CRC Division in Polynomial Form

49
50
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

• For example CRC-12 detects 99.97% of errors with a length 12 or


more.
CHECKSUM
 Checksum is the error detection scheme used in IP, TCP & UDP.
 Here, the data is divided into k segments each of m bits. In the
sender’s end the segments are added using 1’s complement arithmetic
to get the sum. The sum is complemented to get the checksum. The
checksum segment is sent along with the data segments
 At the receiver’s end, all received segments are added using 1’s
complement arithmetic to get the sum. The sum is complemented. If
the result is zero, the received data is accepted; otherwise discarded
 The checksum detects all errors involving an odd number of bits. It
also detects most errors involving even number of bits.

52
53
Example

54
Q) For a pattern of, 10101001 00111001 00011101 Find out whether any
transmission errors have occurred or not

55
56
57
58
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
da5t0a transmission.
 Once detected, the errors must be corrected

 Two Techniques for error correction


⚫ Retransmission (aka Backward error correction)
 Simplest, effective and most commonly used
technique –
involves correction by retransmission of data by the sender
 Popularly called Automatic Repeat Request (ARQ)

⚫ Forward Error Correction (FEC)


 Receiving device can correct the errors itself
51
Hamming Code
Error Detecting and Correcting
Code
• Parity code
• Detect odd number of errors
• Cannot correct any errors
• Hamming Code
• Detect up to two simultaneous bit errors
• Correct single-bit errors
Hamming Code
• For each integer m > 2
• Code exists with m parity bits and 2m – m – 1
• Basically
• Parity bit for odd bits
• Parity bit for each two bits
• Parity bit for each four bits
• Parity bit for each eight bits
• Parity bit for each group of bits that are power of 2
• 1, 2, 4, 8, 16, 32, …
Prof. Arathi Boyanapalli 64
Calculating Hamming Code
1. Mark all bit positions that are powers of two parity bit
1, 2, 4, 8, 16, 32, 64, etc
2. All other bit positions are for the data to be encoded
3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, etc.
3. Each parity bit calculates the parity for some of the bits in the code
word
The position of the parity bit determines the sequence of bits that it alternately
checks and skips
Position 1: check 1 bit, skip 1 bit, check 1 bit, skip 1 bit, etc. (1,3,5,7,9,11,13,15,...)
Position 2: check 2 bits, skip 2 bits, check 2 bits, skip 2 bits, etc.
(2,3,6,7,10,11,14,15,...)
Position 4: check 4 bits, skip 4 bits, check 4 bits, skip 4 bits, etc.
(4,5,6,7,12,13,14,15,20,21,22,23,...)
Position 8: check 8 bits, skip 8 bits, check 8 bits, skip 8 bits, etc.
(8-15,24-31,40-47,...)
4. Set a parity bit to 1 if the total number of ones in the positions it
checks is odd. Set a parity bit to 0 if the total number of ones in the
positions it checks is even
Hamming Code Layout
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 2 3 4 5 6 7 8 9 10 11

Pos 20=1 21=2 22=4 23=8


1 1 0 0 0
Even parity calculated for each bit position
2 0 1 0 0
P1 (1, 3, 5, 7, 9, 11, 13, 15)
3 1 1 0 0
P2 (2, 3, 6, 7, 10, 11, 14, 15)
4 0 0 1 0
P4 (4, 5, 6, 7, 12, 13, 14, 15)
5 1 0 1 0
P8(8, 9, 10, 11, 12, 13, 14, 15)
6 0 1 1 0
7 1 1 1 0
8 0 0 0 1
9 1 0 0 1
10 0 1 0 1
11 1 1 0 1
12 0 0 1 1
13 1 0 1 1
14 0 1 1 1
15 1 1 1 1
Hamming Code Layout
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 0 1 0 1 1 0 1 0 1 1
P1 P1 P1 P1 P1 P1 P1 P1
P2 P2 P2 P2 P2 P2 P2 P2
P4 P4 P4 P4 P4 P4 P4 P4
P8 P8 P8 P8 P8 P8 P8 P8
1 1 1 0 0 1 0 1 1 1 0 1 0 1 1

P1 = 1
P2 = 1 For code: 10101101011
P4 = 0
P8 = 1
Even parity calculated for each bit position
P1 (1, 3, 5, 7, 9, 11, 13, 15)
P2 (2, 3, 6, 7, 10, 11, 14, 15)
P4 (4, 5, 6, 7, 12, 13, 14, 15)
P8(8, 9, 10, 11, 12, 13, 14, 15)
Hamming Code (1 error)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 0 1 0 1 1 0 1 0 1 1
P1 P1 P1 P1 P1 P1 P1 P1
P2 P2 P2 P2 P2 P2 P2 P2
P4 P4 P4 P4 P4 P4 P4 P4
P8 P8 P8 P8 P8 P8 P8 P8
1 1 1 0 0 1 0 1 1 1 0 1 0 1 1
Xmit 1 1 1 0 0 1 0 1 1 1 0 1 0 0 1
Rec

A S A = Actual Parity
P1 = 1 1 S = Should be Parity
P2 = 1 0
P4 = 0 1
P8 = 1 0 Even parity calculated for each bit position
P1 (1, 3, 5, 7, 9, 11, 13, 15)
2, 4, and 8 incorrect P2 (2, 3, 6, 7, 10, 11, 14, 15)
2 + 4 + 8 = 14 P4 (4, 5, 6, 7, 12, 13, 14, 15)
P8(8, 9, 10, 11, 12, 13, 14, 15)
Hamming Code (2 errors)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 0 1 0 1 1 0 1 0 1 1
P1 P1 P1 P1 P1 P1 P1 P1
P2 P2 P2 P2 P2 P2 P2 P2
P4 P4 P4 P4 P4 P4 P4 P4
P8 P8 P8 P8 P8 P8 P8 P8
1 1 1 0 0 1 0 1 1 1 0 1 0 1 1
Xmit 1 1 1 0 0 1 0 1 0 1 0 1 0 0 1
Rec

A S A = Actual Parity
P1 = 1 0 S = Should be Parity
P2 = 1 0
P4 = 0 1
P8 = 1 1 Even parity calculated for each bit position
P1 (1, 3, 5, 7, 9, 11, 13, 15)
1,2, and 4 incorrect P2 (2, 3, 6, 7, 10, 11, 14, 15)
1+2+4=7 P4 (4, 5, 6, 7, 12, 13, 14, 15)
Fix 7, will still have parity problem P8(8, 9, 10, 11, 12, 13, 14, 15)
Example
• A byte of data: 10011010
• Create the data word, leaving spaces for the parity bits:
__1_001_1010
• Calculate the parity for each parity bit (a ? represents the bit position
being set):
• Position 1 checks bits 1,3,5,7,9,11:
? _ 1 _ 0 0 1 _ 1 0 1 0. Even parity so set position 1 to a 0:
0_1_001_1010
• Position 2 checks bits 2,3,6,7,10,11:
0 ? 1 _ 0 0 1 _ 1 0 1 0. Odd parity so set position 2 to a 1:
011_001_1010
• Position 4 checks bits 4,5,6,7,12:
0 1 1 ? 0 0 1 _ 1 0 1 0. Odd parity so set position 4 to a 1:
0111001_1010
• Position 8 checks bits 8,9,10,11,12:
0 1 1 1 0 0 1 ? 1 0 1 0. Even parity so set position 8 to a 0:
011100101010
• Code word: 011100101010
Finding and Fixing a Bad Bit
123456789012
• Transmitted word: 011100101010
• Received word: 011100101110
• Calculate the parity bits from received word
SB A
• P1 (1, 3, 5, 7, 9, 11) = 0 0 1
• P2 (2, 3, 6, 7, 10, 11) = 0 1 2
• P4 (4, 5, 6, 7, 12) = 1 1 4
• P8 (8, 9, 10, 11, 12) = 1 0 8
• 2 + 8 = 10
• Bit position 10 is incorrect
Finding and Fixing a Bad Bit
123456789012
• Transmitted word:
• Received word: 010101100011
• Calculate the parity bits from received word
SB A
• P1 (1, 3, 5, 7, 9, 11) = 0 0
• P2 (2, 3, 6, 7, 10, 11) = 1 0
• P4 (4, 5, 6, 7, 12) = 0 1
• P8 (8, 9, 10, 11, 12) = 0 0
• Bit positions 2 & 4 are incorrect
2+4=6
• Correct code is 010100100011
Finding and Fixing a Bad Bit
123456789012
• Transmitted word:
• Received word: 111110001100
• Calculate the parity bits from received word
SB A
• P1 (1, 3, 5, 7, 9, 11) = 0 1
• P2 (2, 3, 6, 7, 10, 11) = 1 1
• P4 (4, 5, 6, 7, 12) = 0 1
• P8 (8, 9, 10, 11, 12) = 0 0
• Bit positions 1 & 4 are incorrect
1+4=5
• Correct code is 111100001100
Finding and Fixing a Bad Bit
123456789012
• Transmitted word:
• Received word: 000010001010
• Calculate the parity bits from received word
SB A
• P1 (1, 3, 5, 7, 9, 11) = 1 0
• P2 (2, 3, 6, 7, 10, 11) = 1 0
• P4 (4, 5, 6, 7, 12) = 1 0
• P8 (8, 9, 10, 11, 12) = 0 0
• Bit positions 1, 2 & 4 are incorrect
1+2+4=7
• Correct code is: 000010101010
A (7,4) hamming code is received as 1010111.
Determine the correct code when even parity is there.

Prof. Arathi Boyanapalli 75


Prof. Arathi Boyanapalli 76
Prof. Arathi Boyanapalli 77
ELEMENTARY DATA LINK PROTOCOLS
The protocols are normally implemented in software
by using one of the common
programming languages.
• An Unrestricted Simplex Protocol

• A Simplex Stop-and-Wait Protocol

• A Simplex Protocol for a Noisy Channel

78
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)

79
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

 These assumptions imply that the transmitter cannot send frames at a

rate faster than the receiver can process them.


The problem here is how to prevent the sender from flooding the receiver.
 A general solution to this problem is to have the receiver provide some

sort of feedback to the sender. The process could be as follows: The


receiver send an acknowledge frame back to the sender telling the
sender that the last received frame has been processed and passed to
the host; permission to send the next frame is granted. The sender, after
having sent a frame, must wait for the acknowledge frame from the
receiver before sending another frame.
80
STOP & WAIT PROTOCOL

The sender sends one frame and waits for feedback from the
receiver. When the ACK arrives, the sender sends the next
frame

81
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.

82
 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.

 The receiver needs to distinguish only 2 possibilities: a new frame or a


duplicate; a 1-bit sequence number is sufficient. At any instant the
receiver expects a particular sequence number. Any wrong sequence
numbered frame arriving at the receiver is rejected as a duplicate. A
correctly numbered frame arriving at the receiver is accepted, passed to
the host, and the expected sequence number is incremented by 1 67
(modulo 2).
Flow diagram of stop and wait protocol

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
69
are
not passed to the network layer.
SLIDING WINDOW
PROTOCOLS

87
DATA FRAME TRANSMISSION
 Unidirectional in previous elementary
assumption protocols
 Not general

 Full-duplex - approach 1
⚫ Two separate communication channels(physical circuits)
 Forward channel for data
 Reverse channel for acknowledgement

 Problems: 1. reverse channel bandwidth wasted


2. cost 88
Data Frame Transmission
 Full-duplex - approach 2
⚫ Same circuit for both
directions
⚫ Data and
acknowledgement
are intermixed
⚫ How do we tell
acknowledgement from
data?
"kind" field telling data or
acknowledgement
⚫ Can it be improved?
 Approach 3
⚫ Attaching acknowledgement
to outgoing data frames 72

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
 Piggybacking
73
⚫ If no new packet arrives after a receiver ack timeout
 Sending a separate acknowledgement frame
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 efficiency,
of 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 and 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

⚫ Receiver maintains a set of sequence numbers of frames permitted


to accept
 These frames fall within receiving 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
75
 When an acknowledgement arrives
⚫ Lower edge of window advanced by 1
 If the maximum window size is n, the sender needs n buffers to hold the
unacknowledged frames. If the window ever grows to its maximum
size, the sending data link layer must forcibly shut off the network layer
until another buffer becomes free.

 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.

• The size of the window is


at most 2m -1 where m is
the number of bits for the
sequence number.

• Size of the window can be


variable, e.g. TCP.

• The window slides


include
to new unsent frames
77
when the correct ACKs are
received
RECEIVER SLIDING WINDOW
• Size of the window at the
receiving site is always 1
in this protocol.
• Receiver is always looking
for a specific frame to
arrive in a specific order.
• Any frame arriving out of
order is discarded and
needs to be resent.
• Receiver window slides
as
shown in fig.
• Receiver is
waiting for frame 0
78
in part a.
CONTROL VARIABLES
• Sender has 3 variables: S, SF, and SL
• S holds the sequence number of recently sent frame
• SF holds the sequence number of the first frame
• SL holds the sequence number of the last frame
• Receiver only has the one variable, R, that holds the sequence
number of the frame it expects to receive. If the seq. no. is the
same as the value of R, the frame is accepted, otherwise rejected.

79
80
A sliding window of size 1, with a 3-bit sequence number.
(a) Initially.
(b) After the first frame has been sent.
81
(c) After the first frame has been received.
(d) After the first acknowledgement has been received.
(a) Case 1: Normal case. (b) Case 7: Abnormal case.
The notation is (seq, ack, packet number). An asterisk 82
indicates
where a network layer accepts a packet.
ONE BIT SLIDING WINDOW PROTOCOL
 Case 1: no error  Case 2: data lost
A B
A B
Time (0,1,A0) Exp=0 Time Exp=0 (0,1,A0) Exp=0
Exp=0

83
X
* Timeout
(0,0,B0) Exp=1

* (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

*
ONE BIT SLIDING WINDOW PROTOCOL

 Case 3: data error  Case 4: ack.


lost A B A B
Time Exp=0 Exp=0 Time Exp=0
(0,1,A0) (0,1,A0)

84
Exp=0
Timeout Error Timeout (0,0,B0) *
Exp=1
X

(0,1,A0) (0,1,A0)

* duplicate,
(0,0,B0) Exp=1 (0,0,B0)
discarded

* *
Exp=1 Exp=1
ONE BIT SLIDING WINDOW PROTOCOL

 Case 5: early timeout  Case 6: outgoing


A B frame timeout
Time Exp=0 Exp=0 Time
(0,1,A0)
A B

85
Timeout * Exp=0 (0,1,A0) Exp=0
(0,0,B0) Exp=1
*
(0,1,A0) Exp=1
*
duplicate, ACK 0
Exp=1 (1,0,A1) Timeout
*discarded
Exp=0 (1,1,A1)
(1,1,B1)

* *
Exp=0 (0,1,B0) Exp=0

*
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 round-trip propagation delay: 500

86
270
⚫ msec
Time: t=0 start to send 1st bit in
t=20 msec frame frame sent
t=270 msec completely frame arrives
520
t=520 best case of ack. Received
msec
 Sender blocked 500/520 = 96% of time
 Bandwidth utilization 20/520 = 4%

Conclusion:
Long transit time + high bandwidth + short frame length 
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:
⚫ Allowing w frames sent before blocking
 Problem: errors
 Solutions

Acknowledge n means frames n, n-1, n-2,… are 87

acknowledged (i.e., received correctly)


 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

89
Frames 0 and 1 are correctly received and acknowledged. Frame
2, however, is damaged or lost. The sender, unaware of this
problem, continues to send frames until the timer for frame 2
expires. Then it backs up to frame 2 and starts all over with it,
sending 2, 3, 4, etc. all over again.
GO-BACK-N ARQ WITH WINDOW=4

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
Selective Repeat Protocol
 Receiver stores correct frames following the bad one
 Sender retransmits the bad one after noticing

 Receiver passes data to network layer and acknowledge with


the highest number
 Receiving window > 1 (i.e., any frame within the window may
be accepted and buffered until all the preceding one passed to
the network layer. Might need large memory
 ACK for frame n implicitly acknowledges all frames ≤ n

 SRP is often combined with NAK

 When error is suspected by receiver, receiver request


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
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

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

99
 Solution
⚫ Window size=(MAX_SEQ+1)/2
⚫ E.g., if 4-bit window is used, MAX_SEQ = 15
•  window size = (15+1)/2 = 8
 Number of buffers needed
• = window size
SELECT REPEAT PROTOCOL

100
(a) Initial situation with a window size seven.
(b) After seven frames sent and received, but not acknowledged.
(c) Initial situation with a window size of four.
(d) After four frames sent and received, but not acknowledged.
ACKNOWLEDGEMENT TIMER
 Problem
⚫ If the reverse traffic is light, effect?
If there is no reverse traffic, effect?

101

 Solution
⚫ Acknowledgement timer:
If no reverse traffic before timeout send
separate acknowledgement
⚫ Essential: ack timeout < data frame
timeout Why?
Contents

• Multiple Access Protocols


• ALOHA
• Carrier Sense Multiple Access Protocols
• Collision-Free Protocols
The Channel Allocation Problem
• In broadcast networks the key issue is how to
determine how gets to use the channel when
there is competition for it
• Static Channel Allocation in LANs and MANs
• FDM or TDM allocation
• Problems when there is a large number of users, since spectrum
will be wasted
• Dynamic Channel Allocation in LANs and MANs
• A number of assumptions are in place
Dynamic Channel Allocation (1)
• Station Model.
• The model consists of N independent stations
• Single Channel Assumption.
• A single channel is available for all communications
• Collision Assumption.
• If two frames are transmitted simultaneously , they
overlap in time and the resulting signal is garbled. This
event is called a collision.
• All station can detect collisions
• A collided frame must be transmitted again latter
• There are no errors other than those generated by
collisions
Dynamic Channel Allocation (2)

• (a) Continuous Time


• Frame transmission can begin at any time
• There is no master clock dividing the time into discrete intervals
(b) Slotted Time
• Time is divided into discrete intervals called slots.
• Frame transmission begins at the beginning of the slot
• A slot may be idle, may have one frame (legal) and may have multiple frames
(collision)
• (a) Carrier Sense
• Stations can tell if the channel is in use before trying to use it
• If channel is in use, no station will attempt to use it before goes idle
(b) No Carrier Sense
• Stations can’t sense the channel before trying to use it
• They go ahead and transmit … only later they can say it was an error
Multiple Access Protocols
• ALOHA
• Carrier Sense Multiple Access Protocols
• Collision-Free Protocols
• Wireless LAN Protocols
Pure ALOHA (1)
In pure ALOHA, frames are transmitted at completely
arbitrary times.
Figure 12.3 Frames in a pure ALOHA network

12.126
Pure ALOHA (2)
• Frame time – the amount of time needed to transmit
the standard fixed length frame
• An infinite population of users generates new frames
according to a Poisson distribution, with mean N
frames per time frame.
• If N >1 than more frames than the channel can handle
• 0<N<1 for reasonable throughput
Pure ALOHA (3)

• In addition to new frames, stations generate


retransmissions. The probability of k transmission
attempts per frame time, old and new combined, is
also Poisson, with mean G per frame
• G >= N (equal when there are no retransmissions)
• Throughput of a channel is:
• S = G P0, where P0 is the probability that a frame
doesn’t suffer collisions
Pure ALOHA (3)
Vulnerable period for the shaded frame.
Figure 12.5 Vulnerable time for pure ALOHA protocol

12.130
Pure ALOHA (4)
• The probability that k frames are generated during a given
frame time is given by Poisson distribution:

• So the probability of zero frames is just e-G


• In the vulnerable interval, the mean number of frames
generated is 2G, so the probability that there is no frame is
therefore P0 = e-2G
• Using the formula S = G P0, we obtain:

• The maximum throughput occurs at G = 0.5.


• For G = 0.5 we get S = 1/2e = 0.184
Slotted ALOHA
Assumptions Operation
• all frames same size • when node obtains fresh frame,
• time is divided into equal size it transmits in next slot
slots, time to transmit 1 • no collision, node can send new
frame frame in next slot
• nodes start to transmit • if collision, node retransmits
frames only at beginning of frame in each subsequent slot
slots with prob. p until success
• nodes are synchronized
• if 2 or more nodes transmit in
slot, all nodes detect collision

DataLink Layer 2-132


Slotted ALOHA

Pros Cons
• single active node can • collisions, wasting slots
continuously transmit at full • idle slots
rate of channel
• nodes may be able to
• highly decentralized: only
detect collision in less than
slots in nodes need to be in time to transmit packet
sync
• clock synchronization
• simple

DataLink Layer 2-133


Figure 12.6 Frames in a slotted ALOHA network

12.134
Figure 12.7 Vulnerable time for slotted ALOHA protocol

12.135
Slotted ALOHA
• The time is divided into discrete intervals, each interval
corresponding to one frame.
• The users will need to be synchronized with the beginning of
the slot
• Special station can emit a pip at the start of each interval
• A computer is not allowed to send data at any arbitrary times,
it will be forced to wait until the next valid time interval
• Since the vulnerable period is now halved, the throughput of
this method would be:
• Slotted ALOHA peaks at G=1 :: so S=1/e=.368 (i.e. 37 %
success)…..a small increase in channel load will drastically
reduce its performance.
Pure ALOHA vs. Slotted ALOHA
Throughput versus offered traffic for ALOHA systems.
CSMA Protocols

• Are protocols in which stations listen for a carrier


(i.e. transmission) and act accordingly
• Networks based on these protocols can achieve
better channel utilization than 1/e
• Protocols
• 1 persistent CSMA
• Non persistent CSMA
• p persistent CSMA
• CSMA CD
1 Persistent CSMA
• 1 persistent CSMA
• When a station has data to send, it first listens to the
channel
• If channel is busy, the station waits until the channel is
free. When detects an idle channel, it transmits the frame
• If collision occurs, it will wait an random amount of time
and starts again
• The protocol is called 1 persistent, because the station
sends with probability of 1 when finds the channel idle,
meaning that is continuously listening
• Propagation delay
Non Persistent CSMA
• Before sending a station senses the channel. If no
activity, it sends its frame
• If channel is busy, then will not continue to sense
the channel until it becomes idle, but it will retry at
a latter time (waiting a random period of time and
repeating the algorithm)
• With this algorithm, fewer collisions will happen;
thus better channel utilization but with longer
delays than 1 persistent CSMA algorithm
12.141
p Persistent CSMA
• It applies to slotted channels
• When a station becomes ready to send, it senses the
channel. If it is idle will transmit with a probability of p.
With a probability of q it defers to the next slot.
• If next slot is also idle, it transmits or it defers again with
probabilities of p and q
• This process is repeated until the frame gets either
transmitted or another station it began transmission
• For latter case, the unlucky station acts the same as it
would have been a collision (waits a random time and
starts again)
Persistent and Non-persistent
CSMA
Comparison of the channel utilization versus
load for various random access protocols.
Carrier Sense Multiple Access
(CSMA) Protocols
- The main advantage of persistent and non-
persistent over ALOHA is that they ensure
no station begins to transmit when it
senses the channel busy.

Computer Networks 144


CSMA with Collision Detection
- It is important that stations should
terminate transmission as soon as they
detect a collision.
- This protocol is called CSMA/CD.
- It is widely used on LANs in the MAC
sublayer.
- It is the basis of the popular Ethernet LAN.

Computer Networks 145


CSMA with Collision Detection

CSMA/CD can be in one of three states: contention,


transmission, or idle.
CSMA with Collision Detection
- A collision can be detected by looking at
the power or pulse width of the received
signal and comparing it to the transmitted
signal.
- After a station detects a collision it
terminates its transmission, waits a random
period of time, and then tries again,
assuming that no other station has started
transmitting in the meantime.

Computer Networks 147


CSMA with Collision Detection
- Collision detection is an analog process.
Therefore, special encoding is commonly
used.
- A sending station must continually monitor
the channel, listening for noise bursts that
might indicate a collision. For this reason,
CSMA/CD with a single channel is
inherently a half-duplex system.

Computer Networks 148

You might also like