Lecture 11

27
1 CMPE 150- Introduction to Computer Networks CMPE 150 Fall 2005 Lecture 11 Introduction to Computer Networks

description

lecture...

Transcript of Lecture 11

Page 1: Lecture 11

1CMPE 150- Introduction to Computer Networks

CMPE 150

Fall 2005Lecture 11

Introduction to Computer Networks

Page 2: Lecture 11

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.

Page 3: Lecture 11

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.

Page 4: Lecture 11

4CMPE 150- Introduction to Computer Networks

Reading Assignment• Tanenbaum Chapter 3.

Page 5: Lecture 11

5CMPE 150- Introduction to Computer Networks

Today• Layer 2 (cont’d)

Page 6: Lecture 11

6CMPE 150- Introduction to Computer Networks

Error Control

Page 7: Lecture 11

7CMPE 150- Introduction to Computer Networks

Error Control• Reliable delivery.

– Hop-by-hop!• Detecting errors.• Detecting and correcting errors.

Page 8: Lecture 11

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?

Page 9: Lecture 11

9CMPE 150- Introduction to Computer Networks

Reliable Delivery• Timers.• Retransmission.• Duplicate detection.

Page 10: Lecture 11

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.

Page 11: Lecture 11

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

Page 12: Lecture 11

12CMPE 150- Introduction to Computer Networks

Why?• Error detection versus error correction.• Cost-efficiency?

– Environment.– Application.

Page 13: Lecture 11

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

Page 14: Lecture 11

14CMPE 150- Introduction to Computer Networks

Hamming Distance: Examples

Page 15: Lecture 11

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.

Page 16: Lecture 11

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.

Page 17: Lecture 11

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.

Page 18: Lecture 11

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.

Page 19: Lecture 11

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.

Page 20: Lecture 11

20CMPE 150- Introduction to Computer Networks

Hamming Code: Example7-bit

. Hamming codes can only correct single errors.

.

Page 21: Lecture 11

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

Page 22: Lecture 11

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.

Page 23: Lecture 11

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!

Page 24: Lecture 11

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

Page 25: Lecture 11

25CMPE 150- Introduction to Computer Networks

Cyclic Redundancy CheckAt the Receiver, compute:

Note remainder = 0 no errors detected

Page 26: Lecture 11

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…

Page 27: Lecture 11

27CMPE 150- Introduction to Computer Networks

More on CRC