Lecture 11
-
Upload
john-brix-balisteros -
Category
Documents
-
view
212 -
download
0
description
Transcript of Lecture 11
1CMPE 150- Introduction to Computer Networks
CMPE 150
Fall 2005Lecture 11
Introduction to Computer Networks
2CMPE 150- Introduction to Computer Networks
Announcements• No labs this week!
– Except for make-up sessions.• Homework 2 is up.
– Due 10.24.• Graded homework 1 is back.• Midterm on 10.28.
3CMPE 150- Introduction to Computer Networks
Last Class• Started DLL (layer 2).
– Functionality.– Error control.– Flow control.
• Framing.– Different approaches.– Counters.– Flag byte.
• Byte stuffing.• Bit stuffing.
4CMPE 150- Introduction to Computer Networks
Reading Assignment• Tanenbaum Chapter 3.
5CMPE 150- Introduction to Computer Networks
Today• Layer 2 (cont’d)
6CMPE 150- Introduction to Computer Networks
Error Control
7CMPE 150- Introduction to Computer Networks
Error Control• Reliable delivery.
– Hop-by-hop!• Detecting errors.• Detecting and correcting errors.
8CMPE 150- Introduction to Computer Networks
Acknowledgments• Special control info (in the case of the DLL,
control frame) acknowledging receipt of data.• Positive and negative ACKs.
– ACKs.– NACKs.
• Are ACKs sufficient?
9CMPE 150- Introduction to Computer Networks
Reliable Delivery• Timers.• Retransmission.• Duplicate detection.
10CMPE 150- Introduction to Computer Networks
Flow Control• Handles mismatch between sender’s and
receiver’s speed.– Receiver’s buffer limitation.
• Feedback-based flow control.– Explicit permission from receiver.
• Rate-based flow control.– Implicit mechanism for limiting sending rate.
• DLL typically uses feedback-based flow control.
11CMPE 150- Introduction to Computer Networks
Error Detection and Correction• Add control information to the original data
being transmitted.• Error detection: enough info to detect error.
– Need retransmissions.• Error correction: enough info to detect and
correct error.– A.k.a., forward error correction (FEC).
12CMPE 150- Introduction to Computer Networks
Why?• Error detection versus error correction.• Cost-efficiency?
– Environment.– Application.
13CMPE 150- Introduction to Computer Networks
What’s an error?• Frame = m data bits + r bits for error control.
– n = m + r.• Given the original frame f and the received
frame f’, how many corresponding bits differ?– Hamming distance (Hamming, 1950).
14CMPE 150- Introduction to Computer Networks
Hamming Distance: Examples
•
15CMPE 150- Introduction to Computer Networks
Hamming Distance• If f and f’ are Hamming distance of d apart,
there needs to be d single-bit errors to convert f to f’.
• Error detecting/correcting properties of a code depend on the code’s Hamming distance.– To detect d errors, need code with Hamming
distance d+1.• Need d+1 single-bit errors to change a valid f to
a valid f’.• If receiver sees invalid f’, it knows an error
occurred.
16CMPE 150- Introduction to Computer Networks
Parity Bit• Simple error detecting code.• Even- or odd parity.• Example:
– Transmit 1011010.– Add parity bit 1011010 0 (even parity) or
1011010 1 (odd parity).• Code with single parity bit has Hamming
distance of 2!– Any single bit error produces frame with wrong
parity.
17CMPE 150- Introduction to Computer Networks
Error Correcting Codes• To correct d errors, need 2d+1distance code.
– Code words are 2d+1 apart.– With d changes, original frame is closer than
any other valid frame.
18CMPE 150- Introduction to Computer Networks
Error Correction: Example• Suppose code with 4 valid words:
0000000000, 0000011111, 1111100000, 1111111111.– Hamming distance is 5.– Possible to correct double errors.– Example: If 0000000111 arrives at receiver,
receiver assumes original must have been 0000011111.
– But if triple error changes 0000000000 into 0000000111, not able to correct it properly.
19CMPE 150- Introduction to Computer Networks
Hamming Code• Bits in positions that are power of 2 are check
bits. The rest are data bits.• Each check bit used in parity (even or odd)
computation of collection of bits.– Example: check bit in position 11, checks for
bits in positions, 11 = 1+2+8. Similarly, bit 11 is checked by bits 1, 2, and 8.
20CMPE 150- Introduction to Computer Networks
Hamming Code: Example7-bit
. Hamming codes can only correct single errors.
.
21CMPE 150- Introduction to Computer Networks
Error Detecting Codes• Typically used in reliable media.• Examples: parity bit, polynomial codes (a.k.a.,
CRC, or Cyclic redundancy Check).
22CMPE 150- Introduction to Computer Networks
Polynomial Codes• Treat bit strings as representations of
polynomials with coefficients 1’s and 0’s.• K-bit frame is coefficient list of polynomial
with k terms (and degree k-1), from xk-1to x0.– Highest-order bit is coefficient of xk-1, etc.– Example: 110001 represents x5 + x4 +x0.
• Generator polynomial G(x).– Agreed upon by sender and receiver.
23CMPE 150- Introduction to Computer Networks
CRC• Checksum appended to frame being
transmitted.– Resulting polynomial divisible by G(x).
• When receiver gets checksummed frame, it divides it by G(x).– If remainder, then error!
24CMPE 150- Introduction to Computer Networks
Cyclic Redunancy Check
At Transmitter, with M = 1 1 1 0 1 1, compute 2rM= 1 1 1 0 1 1 0 0 0 with G = 1 1 0 1
T = 2rM + R [note G starts and ends with “1” ]
R = 1 1 1 Transmit T= 1 1 1 0 1 1 1 1 1
25CMPE 150- Introduction to Computer Networks
Cyclic Redundancy CheckAt the Receiver, compute:
Note remainder = 0 no errors detected
26CMPE 150- Introduction to Computer Networks
CRC Performance
• Errors go through undetected only if divisible by G(x)
• With “suitably chosen” G(x) CRC code detects all single-bit errors.
• And more…
27CMPE 150- Introduction to Computer Networks
More on CRC
•