510 likes | 834 Views
Data Link Layer Design Issues. Services Provided to the Network LayerFramingError ControlFlow Control. Functions of the Data Link Layer. Provide service interface to the network layerDealing with transmission errorsRegulating data flowSlow receivers not swamped by fast senders. Functions of th
E N D
1. Adapted from Tanenbaum's Slides for Computer Networking, 4e The Data Link Layer Chapter 3
2. Data Link Layer Design Issues Services Provided to the Network Layer
Framing
Error Control
Flow Control
3. Functions of the Data Link Layer Provide service interface to the network layer
Dealing with transmission errors
Regulating data flow
Slow receivers not swamped by fast senders
4. Functions of the Data Link Layer (2) Relationship between packets and frames.
5. Services Provided to Network Layer (a) Virtual communication.
(b) Actual communication.
6. Services Provided to Network Layer (2) Placement of the data link protocol.
7. Framing A character stream. (a) Without errors. (b) With one error.
8. Framing (2) (a) A frame delimited by flag bytes.
(b) Four examples of byte sequences before and after stuffing.
9. 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 receiver’s memory after destuffing.
10. Error Detection and Correction Error-Correcting Codes
Error-Detecting Codes
Key idea: redundant (additional) bits (use only 2m out of 2n code words)
Key metrics:
how many errors can be corrected/detected;
what burst length
11. Hamming Distance Some codes words are valid; others are invalid
Hamming distance between two code words is number of bits that must be flipped to change from one to the other
If Hamming distance is d then d single bit errors needed to change one word to the other
Hamming distance of a code is the minimum Hamming distance between two valid code words
Detecting one single-bit error requires a distance 2 code; how does this generalize?
Correcting one single-bit error requires a distance 3 code; how does this generalize?
12. Parity Schemes Parity bits: choose a rule
Even parity – each codeword has even number of 1’s
Odd parity – each codeword has odd number of 1’s
Always transmit according to the rule
On receipt, if rule is violated, word is invalid
Can also do “vertical parity” over whole block to achieve single-bit error correction
13. CRC Schemes CRC – Cyclic Redundancy Check or polynomial code
Consider bits of a message to be coefficients of a polynomial M(x)
1011 – 1x3 + 0x2 + 1x1 + 1x0
Of course real messages will be much longer and hence of higher degree
Agree on a small-degree generator polynomial G(x) of degree r
Note: G(x) has r digits to the right of the leading 1, hence r+1 total
Divide xrM(x) by G(x) using modulo 2 division (no carries or borrows) getting the remainder polynomial R(x)
Transmit T(x) = xrM(x) - R(x); note that this has remainder 0 when divided by G(x)
Receiver rejects frame if the remainder it computers is not 0
14. Error-Detecting Codes
15. CRC Properties Easily computed with feedback shift register hardware
Detects any single-bit error
Proper choice of G(x) gives detection of any two bit errors
Proper choice of G(x) gives detection of any odd number of bit errors
Detects any burst error of length <= r; Why?
Received message is T(x)+E(x) for some error polynomial E(x)
If E(x) represents a burst of length <= r then it can be written as xi(F(x)) where the degree of F(x) is < r
If G(x) has an x0 term it can’t divide xi and no degree r polynomial divides a polynomial of degree < r
16. Elementary Data Link Protocols Important to read pp. 200-204 – set up the coding conventions used in what follows
An Unrestricted Simplex Protocol
No buffer limits, no errors
A Simplex Stop-and-Wait Protocol
Add buffer limits
A Simplex Protocol for a Noisy Channel
Add channel errors
17. Protocol Definitions
18. Protocol Definitions(ctd.)
19. Unrestricted Simplex Protocol
20. Simplex Stop-and-Wait Protocol
21. A Simplex Protocol for a Noisy Channel
22. A Simplex Protocol for a Noisy Channel (ctd.)
23. Sliding Window Protocols Why?
Efficiency – bandwidth*delay product
Efficiency – when errors occur
A One-Bit Sliding Window Protocol
A Protocol Using Go Back N
A Protocol Using Selective Repeat
24. Sliding Window Protocols (2) A sliding window of size 1, with a 3-bit sequence number.
(a) Initially.
(b) After the first frame has been sent.
(c) After the first frame has been received.
(d) After the first acknowledgement has been received.
25. A One-Bit Sliding Window Protocol
26. A One-Bit Sliding Window Protocol (ctd.)
27. A One-Bit Sliding Window Protocol (2) Two scenarios for protocol 4. (a) Normal case. (b) Abnormal case. The notation is (seq, ack, packet number). An asterisk indicates where a network layer accepts a packet.
28. A Protocol Using Go Back N Pipelining and error recovery. Effect on an error when
(a) Receiver’s window size is 1.
(b) Receiver’s window size is large.
29. Sliding Window Protocol Using Go Back N
30. Sliding Window Protocol Using Go Back N
31. Sliding Window Protocol Using Go Back N
32. Sliding Window Protocol Using Go Back N
33. Sliding Window Protocol Using Go Back N (2) Simulation of multiple timers in software.
34. A Sliding Window Protocol Using Selective Repeat
35. A Sliding Window Protocol Using Selective Repeat (2)
36. A Sliding Window Protocol Using Selective Repeat (3)
37. A Sliding Window Protocol Using Selective Repeat (4)
38. A Sliding Window Protocol Using Selective Repeat (5) (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.
40. Protocol Verification Finite State Machine Models
Petri Net Models
41. Goals of FSM & Petri Net modeling Detect incomplete specifications
Detect deadlocks – no progress (in this case meaning no packets delivered to the network layer)
Detect errors – frames delivered out of order for example or frames lost
What is a state: program counter and all significant variables of each component state machine along with state of the channel.
42. Finite State Machine Models (a) State diagram for protocol 3. (b) Transitions
State: 000 means 0 sender state 0 rcvr state 0 packet on wire; A means “ack”; - means “empty”
43. Petri Net Models A Petri net with two places and two transitions.
44. Petri Net Models (2) A Petri net model for protocol 3.
45. Example Data Link Protocols HDLC – High-Level Data Link Control
The Data Link Layer in the Internet
46. High-Level Data Link Control Frame format for bit-oriented protocols.
47. High-Level Data Link Control (2) Control field of
(a) An information frame.
(b) A supervisory frame.
(c) An unnumbered frame.
48. The Data Link Layer in the Internet A home personal computer acting as an internet host.
49. PPP – Point to Point Protocol The PPP full frame format for unnumbered mode operation.
50. PPP – Point to Point Protocol (2) A simplified phase diagram for bring a line up and down.
51. PPP – Point to Point Protocol (3) The LCP frame types.