View
217
Download
0
Tags:
Embed Size (px)
Citation preview
1CMPE 150- Introduction to Computer Networks
CMPE 150
Fall 2005Lecture 10
Introduction to Computer Networks
2CMPE 150- Introduction to Computer Networks
Announcements
• No labs next week!– Except for make-up sessions.
• Homework 2 is up.• Graded homework 1 should be back next
week.
3CMPE 150- Introduction to Computer Networks
Today
• Layer 2!!!!• Tanenbaum chapter 3.
4CMPE 150- Introduction to Computer Networks
Data Link Layer
Application
Transport
Network
PHY
DLL
5CMPE 150- Introduction to Computer Networks
What does it do?
• What functions it performs?• Typically:– Handling transmission errors, a.k.a., error
control.
– Flow control.
– Framing.
6CMPE 150- Introduction to Computer Networks
Framing
7CMPE 150- Introduction to Computer Networks
DLL and the Stack
• (a) Virtual communication• (b) Actual communication
8CMPE 150- Introduction to Computer Networks
DLL Between Routers
9CMPE 150- Introduction to Computer Networks
The DDL and PHY
• The PHY delivers raw sequence of bits.– Unreliable service.
• The DLL must detect and, in some cases, correct errors.
10CMPE 150- Introduction to Computer Networks
DLL’s Error Control
• Break bit stream into frames.• Check if frames arrived correctly.• If not:– Discards frame.
– In some cases also request retransmisssion.
11CMPE 150- Introduction to Computer Networks
Framing (Revisited)
• Not trivial.• Different methods.
12CMPE 150- Introduction to Computer Networks
Framing: Using Counters
(a) Without errors. (b) With one error.
13CMPE 150- Introduction to Computer Networks
Character Counter
• Main problem?
14CMPE 150- Introduction to Computer Networks
Framing: Flag Byte
• Each frame starts and ends with special bytes: flag bytes.
• Two consecutive flag bytes indicate end of frame and beginning on new frame.
• Problem?
15CMPE 150- Introduction to Computer Networks
Framing: Flag Byte
• Each frame starts and ends with special bytes: flag bytes.
• Two consecutive flag bytes indicate end of frame and beginning on new frame.
• Problem?– What if flab bit pattern occurs in data?
16CMPE 150- Introduction to Computer Networks
Byte Stuffing
• (a) A frame delimited by flag bytes.• (b) Four examples of byte sequences before and after stuffing.
17CMPE 150- Introduction to Computer Networks
Byte Stuffing (Cont’d)
• Single ESC: part of the escape sequence.• Doubled ESC: single ESC is part of data.• De-stuffing.
• Problem: – What if character encoding does not use 8-bit
characters?
18CMPE 150- Introduction to Computer Networks
Bit Stuffing
• Allows character codes with arbitrary bits per character.
• Each frames begins and ends with special pattern.
• Example: 01111110.• When sender’s DLL finds 5 consecutive 1’s in
data stream, stuffs 0.• When receiver sees 5 1’s followed by 0, de-
stuffs.
19CMPE 150- Introduction to Computer Networks
Bit Stuffing: Example
• (a) Original data.• (b) Data as they appear on the line.• (c) Data after de-stuffing.
20CMPE 150- Introduction to Computer Networks
Error Control
21CMPE 150- Introduction to Computer Networks
Error Control
• Reliable delivery.– Hop-by-hop!
• Detecting errors.• Detecting and correcting errors.
22CMPE 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?
23CMPE 150- Introduction to Computer Networks
Reliable Delivery
• Timers.• Retransmission.• Duplicate detection.
24CMPE 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.