Upload
cally-willis
View
45
Download
0
Tags:
Embed Size (px)
DESCRIPTION
The Data Link Layer. Sending Data Over a Communications Link. Schemes for Doing This --- Protocol. Need For Data Link Control: Frame Synchronization Use of a variety of Line Configuration Flow Control Error Control Addressing Control and Data on Same Link Link Management. - PowerPoint PPT Presentation
Citation preview
1
The Data Link Layer
Sending Data Over a Communications Link. Schemes for Doing This --- Protocol.
Need For Data Link Control:• Frame Synchronization• Use of a variety of Line Configuration• Flow Control• Error Control • Addressing• Control and Data on Same Link• Link Management
2
The Data Link Layer (cont.)
Format of a Frame:
KIND SEQ ACK Information
Control Info.
3
Two different representations of the service primitives
The Data Link Layer (cont.)
Networklayer
Datalink
layer
Physicallayer
RequestConfirm
ResponseIndication
(a)
Request
Indication
ResponseConfirm
A B
Service user(network layer)
Serviceprovider
datalink
layer
Service user(network layer)
A B(b)
4
Data Link Layer (cont.)
Services Provided to Network Layer:
• Unacknowledged connectionless service.
• Acknowledged connectionless service.
• Connection-oriented service.
5
6
Data Link Layer (cont.)
•Note: Data are Transmitted One Char At a Time and Timing or Synchronization Must Be Maintained Within Each Char. Overhead 2-3 Bits/Char, Not Good.
7
Data Link Layer (cont.)
(b) Bit-oriented frame
SYN SYN
One or moreSYN character
Controlcharacter
Datacharacter
Controlcharacter
(a) Character-oriented frame
8-bitflag
F
Control fields Data field Control field
8-bitflag
8
Data Link Layer (cont.)
•Note: Blocks of Chars or Bits are Transmitted
Without Start and Stop Codes. Clocks Must be
Synchronized. Preamble Bit Patterns and
Postamble Used.
9
Framing
Beginning and End?
• Character count
• Starting and ending characters, with
character stuffing
• Starting and ending flags, with bit stuffing
• Physical layer coding violations.
10
Framing (cont.)
5 1 2 3 4 5 6 7 8 9 8 0 1 2 3 4 5 6 9 7 8 9 0 1 2 3 4
5 1 2 3 4 7 6 7 8 9 8 0 1 2 3 4 5 6 9 7 8 9 0 1 2 3 4
Character countOne
character
Frame 15 character
Frame 25 character
Frame 38 character
Frame 49 character
Error
Frame 1 Frame 2 (Wrong) Now a Character count
A character stream (a) Without error (b) With one error
(a)
(b)
11
Framing (cont.)
(a) Data sent by the network layer
(b) Data after being character stuffed by the data link layer(c) Data passed to the network layer on the receiving side
DLE A DLE B DLE ETXSTX
DLE STX A DLE DLE B
DLE A DLE B DLE ETXSTX
DLE ETX
(A)
(B)
(C)
Stuffed DLE
12
Framing (cont.)
(a) 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0
(b) 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 1 0
(c) 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0Stuffed bits
Bit stuffing.
(a) The original data.
(b) The data as they appear on the line.
(c) The data as they are stored in the receiver's memory after destuffing.
13
Error Detection/Correction
Include enough redundant information along with data to use:
•Error correcting codes
•Error Detecting Codes
Parity checks (error detecting)
14
Error Detection/Correction (cont.)
• Example: 7-bit ASCII character -- If 1110001 is transmitted using odd parity, then 1 is appended. 11100011 If an odd number of bits is erroneously inverted during transmission, then the receiver will detect an error. However, if an even number of bits is inverted, an undetected error occurs.
• Note: Even parity may also be used. Problem with parity: noise impulses maybe long enough to destroy more than 1 bit, particularly at high data rates. (eg 1200bps)
15
Parity Checks (cont.)
• Use 2 sets of parity bits for blocks of characters arranged in 2 dimensions. Parity bits are obtained by performing exclusive OR operation on row and column bits (even parity).
• Example:Char1 1 0 1 1 0 1 1 1Char2 1 1 0 1 0 1 1 1Char3 0 0 1 1 1 0 1 0Char4 1 1 1 1 0 0 0 0Char5 1 0 0 0 1 0 1 1Char6 0 1 0 1 1 1 1 1
0 1 1 1 1 1 1 0 LRC
VRC
VRC: Vertical Redundancy Checks
LRC: Longitudinal Redundancy Checks
16
Parity Checks (cont.)
Note: This scheme is 2-4 orders of magnitude better than simple VRC.
Also, some patterns of even number of errors remain undetected (e.g., bits 1 and 3 of Char1 and bits 1 and 3 of Char5)
17
Parity Checks (cont.)
Consider:Message with m message bits and r redundant bits,
then the total length n = m + r. Referred to as an n-bit codeword. Given 2 codewords say, 110100 and 110111, we can tell how many corresponding bits differ by performing an exclusive OR on the 2 codewords. In this case, 2 bits differ, so, the Hamming distance = 2.
Error-detection/error correction of a code depends on its Hamming distance of the complete code.
18
Parity Checks (cont.)
Note: from the complete list of the legal codewords, the 2 whose Hamming distance is minimum defines the Hamming distance of the complete code.
Example:1001 1000 1100 1011
This code has a distance = 1
19
Format of a Frame
• To detect d errors, you need a distance of d+1. • To correct d errors, you need a distance of 2d+1.
Example: 111100 010111 100011 000000• Can detect 2-single bit errors, since its Hamming
distance = 3.Suppose the code 000011 arrives, then an error occurs.
• Can correct 2d+1 = 3 or d = 1 error. Suppose the code 000011 arrives, then the code is corrected to 100011.Could this corrected code still be an error?
20
Format of a Frame
Picture code space as vertices of a hypercube.
Use majority rule: –1. If 0 or 1 one bit decide 000–2. If 2 or 3 one bits decide 111
So, we can overcome single errors, but not double errors.
000
001011 111
110100
010
101
21
Error Code Correcting
• Example: (4 codewords)
0000000000, 0000011111,1111100000, 1111111111
Hamming distance = 5 2d+ 1=5 or d = 2
Suppose 0000000111 arrives, the receiver knows that the original must have been 0000011111.
• Note: if triple error changes 0000000000 into 0000000111, the error will not be corrected properly.
22
Design a code with m message bits and r check bits that will allow all single bit errors to be corrected.
Each of the 2m legal messages has n (n = m + r) illegal codewords a distance 1 from it. So, each of the 2m messages requires n+1 bit patterns dedicated to it. Thus we have
2m(n+1) 2n
==> 2m(1+m+r) 2m+r , note n = m + r
==> 1+m+r 2r
Error Code Correcting (cont.)
23
Example: Given m = 4, find the smallest r satisfying the above ineq.
Solution: start with r=1, substitute the values for r+m.1 + 4 + 1 21 r = 1)
6 21 False1 + 4 + 2 22 r = 2)
7 22 False1 + 4 + 3 23 r = 3)
8 23 TRUESo, at least 3 check bits are needed to correct a single
bit error.
Error Code Correcting(cont.)
24
Error Code Correcting (cont.)
Char ASCII Check bits
Hamming
code
100100011000011101101110110111010011101110110011101000001100011110111111001001100101
001100100001011100100111101010101111010101010110101100101101010110111110011111001100000011111000011001010111111111100110000111000101
Orderof bittrans-mission
Use of a Hamming code to correct burst error
25
Cyclic Redundancy Checks (CRC)
Given a m-bit frame or message, the transmitter generates an r-bit sequence, knows as frame check sequence (FCS), so the resulting frame consists of m+r bits, exactly divisible by some predetermined number. The receiver then divides the incoming frame by the same number, and if there is no remainder, assume that no error occurred.
Ways of presenting this procedure:– Module arithmetic– Polynomials– Shift registers and exclusive OR
26
Cyclic Redundancy Checks (CRC) (cont.)
We will use polynomials.Consider the Following Message:
10011 x4 + x + 1, 01001 x3 + 1Note:
Addition and subtraction -- mod2
Example:1 0 0 1 1 x4 + x + 10 1 0 0 1 x3 + 11 1 0 1 0 x4 + x3 + x
27
Polynomial Method
Sender and receiver must agree on a generator polynomial, G(x). Both the high-order and low- order bits of the polynomial must be 1.
Let
M(x): polynomial of degree m-1, (m bit message)
G(x): polynomial of degree r, (r+1 bit), where m > r
28
Polynomial Method (cont.)
Step 1. Form xr M(x)Step 2. Compute
{xr M(x)}/{G(x)} = Q(x) + {R(x)}/{G(x)}, where R(x) is the remainder or xr M(x) = Q(x)G(x) + R(x).
Step 3. Create the r-bit string (ck-bits) corresponding to R(x), and append it to the message string. T(x) = xr M(x) + R(x). This is the message transmitted.
Note: degree R(x) < degree G(x)
29
Polynomial Method (cont.)
Example:Let
G(x) = x3 + x2 + 1; r = 3 1101M(x) = x5 + x2 + x + 1; m = 6 100111
Find check bits:1. x3M(x) = x8 + x5 + x4 + x3 1001110002. Find Q(x), R(x)
30
Polynomial Method (cont.)
x3 + x2+1 x8 + x5+ x4 + x3 1101 1001110001101 1001 1101 1001 1101 1000 1101 1010 1101 1110 1101 011
111111
x + 1 CK-Bit
31
Polynomial Method (cont.)
Example: (cont.)3. Transmitted message: 100111011 x8+x5+x4+x3+x+1
In general: T(x) = xr M(x) + R(x)However, xr M(x) = G(x) Q(x) + R(x), T(x) = G(x) Q(x) + R(x) + R(x) = G(x) Q(x)
32
Polynomial Method (cont.)
Example: 1. Given
message M = 110011 (6 bits)generator G = 11001 (5 bits)FCS R = To be calculated (4 bits)
2. The message is multiplied by 24, yielding 1100110000.
33
Polynomial Method (cont.)
3. The product is divide by G: 4. The remainder is added to 2n M to give
T = 1100111001, which is transmitted.
100001110011000011001 10000 11001 1001
11001
Q
2M
R
G
34
Polynomial Method (cont.)
Example(cont.): 5. If there are no errors, the receiver receives T
intact. The received frame is divided by G.
Note: Since the remainder = 0, it is assumed that there have been no errors.
100001110011100111001 11001 11001 0
11001
35
Polynomial Method (cont.)
T(x) = G(x)Q(x) T(x) is divisible by G(x).
Received Message: T(x) + E(x), where E(x) is error polynomial.
{T(x) + E(x)} / {G(x)} must test for divisibility.
If remainder = 0, decide no error was made, otherwise error.
36
Polynomial Method (cont.)
Suppose the error pattern is 100100000 (2 errors), the received message is 000011011 (x4 + x3 + x + 1).
So, an error was made (non-zero)
x4 + x3 + x + 1x4 + x3 + x
1
x3 + x2 + 1x
1 1 0 1 11 1 0 1
1
1 1 0 11
37
Error Analysis
How to choose G(x) to detect as many errors as possible? Must consider several cases.
38
Case 1: Single Errors
Suppose E(x) = xi (i.e. 1 bit flipped). How can G(x) be selected to detect a single bit error?
Ans: Choose G(x) with at least 2 terms We will get a remainder from {Xi} / {G(x)} Error will be detectedExample: n=6, error pattern = 001000 (E(x) = x3) If G(x) = x + 1, then {E(x)} / {G(x)}
has a remainder.
39
Case 2: Double Errors
Note: (xk+1) = (x+1)(x{k-1} + x{k-2} + + 1)
e.g.,: (x4+1) = (x+1)(x3 + x2 + x1 + 1)
Suppose G(x) = x3 + x2 + x + 1 and E(x) = x4 + 1,
then {E(x)} / {G(x)} = x + 1, (no remainder)
So, error is not detected unless G(x) does not divide xk + 1, 1 k n
40
Case 3: Odd Number of Errors
Suppose the error pattern has either 1 or 3 or 5, etc. Then E(x) is not divisible by (x+1).
Proof: contradiction
If E(x) has an odd number of terms, and is divisible by x+1, we can write
E(x) = (x+1) E1(x)
E(1) = (1+1) E1 (1) = 0
41
Case 3: Odd Number of Errors(cont.)
However, E(1)=0 E(x) has an even number of terms (contradiction). Therefore, if G(x) has the factor (x+1), all error patterns of odd weight will be detected.
Example: E(x) = x6 + x3 + 1, G(x) = (x+1)(x2+1)
= x3 + x2 + x + 1
So, the error pattern is detected.
42
Case 4: Burst Errors
Burst errors -- string of bits in an error pattern delimited by 1's.
Example: 000110100100
To analyze burst errors; let bit i be the degree of the lowest bit in the burst (2 above) and write E(x) = xi E1(x) , so E1 (x) has a 1 in the 0th position.
Example: x8 + x7 + x5 + x2 = x2 (x6 + x5 + x3 + 1)
E(x) = xi E1(x)Now, E(x) will not be detected iff E1(x) is divisible by
G(x).
burst of length 7
43
Case 4: Burst Errors (cont.)
We know that G(x) does not divide xi (from Case 1).
Also, the degree of G(x) is r and contains (r+1) bits.
If the burst contains r or fewer errors, E1(x) is of
degree (r-1) or less.
So, {E1(x)} / {G(x)} will have a remainder, E1(x), and
the burst errors will be detected.
44
Case 4: Burst Errors (cont.)
Example: suppose r=7 and
G(x) = (x5+1) (x2+1) = x7 + x5 + x2 + 1
Now, E(x) = x2 (x6+x5+x3+1) = x2 E1(x)
so, {E1 (x)} / {G(x)} has remainder E1 (x) 0.
Conclude: All burst of length r or less are detected
if:
1. G(x) is of degree r (r+1 bits)
45
Case 4: Burst Errors (cont.)
If the length of the burst is r+1, then the burst polynomial, E1(x) must have a 1 in positions r and
0; so does G(x).
The chance of not detecting this burst is the chance of a perfect match between E1 (x) and G(x) in the
remaining (r-1) positions or (1/2)r-1.
46
Three polynomial are international standards
• CRC-12 = x12 + x11 + x3 + x2 + x + 1 (C.H. 6 bits)
• CRC-16+ = x16 + x15 + x2 + 1 (C.H. 8 bits)
• CRC-CCITT+ = x16 +x12 + x5 + 1 (C.H. 8 bits)
+: catch all single and double errors, all errors with an odd number of bits, all burst errors of length 16 or less.
47
Protocols
Set of rules governing the exchange of data between 2 entities.
• Elements of a Protocol– Syntax -- Include such things as data format, coding,
and signal levels.
– Semantics -- Includes control information for coordination and error handling.
– Timing -- Includes speed matching and sequencing.
48
Protocols (cont.)
• 2 major classes of protocols – Character oriented (old)
Example: IBM's BISYNC
– Bit oriented (newer)Example: IBM's SDLC, HDLC developed by
ISO. Note: Transmission via Frames.
– We will emphasize.
49
Protocols (cont.)
• Example: Unrestricted Simplex Protocol
Sender:
Receiver:
Go get something to send (buffer)Copy it into info. field for transmissionSend information
Do until doomsday
Frame arrivalGet the inbound framePass data to host
Do until doomsday
50
Protocols (cont.)
Note: Simplest possible situation
• Send information in one direction only
• No control fields
• Channel assumed to be perfect
• Receiver can process information infinitely fast
51
Protocols (cont.)
• Example: A Simplex Stop-And-Wait ProtocolSender:
Receiver:
Fetch info. from hostCopy it into info. field for transmissionSend information
Do not proceed until given go ahead
Frame arrivalGet the inbound framePass data to host
Do until doomsday
Send dummy frame signal
52
Protocols (cont.)
Note:
Same as previous example except, the sender must wait until an acknowledgment frame arrives before fetching the next message.
53
Protocol 3-- Simplex Protocol For A Noisy Channel
State Diagram X Y ZSender: X = 0: Send frame 0
= 1: Send frame 1Receiver: Y = 0: Get frame 0
= 1: Get frame 1Channel: Z = 0: Frame 0 in transit
= 1: Frame 1 in transit = A: Frame Ack in transit = --: Empty
54
Protocol 3-- Simplex Protocol For A Noisy Channel (cont.)
(a) State diagram for protocol 3. (b) Transitions.
55
A Petri netmodel forProtocol 3
56
Sliding Window Protocol 4
• Bidirectional -- All IMPs run the same program.• Three functions
– Receive – Send– Pack
• Piggyback acknowledgment
57
Sliding Window Protocol 4 (cont.)
A sliding windowof size 1, with a 3-bit sequencenumber
(a) Initially(b) After first frame has been sent(c) After the first frame has been received(d) After the first acknowledgement has been received
58
One bit Sliding Window
59
3 42 5 6 7 8 9 101 20 3 4 5 6 7 8
10 2 3 4 5 6 7 8E D DD D D D
Timeout intervalA
ck 0
Ack
1
Ack
2A
ck 3
Ack
4A
ck 5
Ack
6A
ck 7
Error
Frames Discarded by data link layer
Time
Sliding Window Protocol 4 (cont.)
(a) Effect of an error when the receiver window size is 1
60
Sliding Window Protocol 4 (cont.)
9 102 11 12 13 14
9 10
1 20 3 4 5 6 7 8
10 23 4 5 6 7 8E
Timeout interval
Error Time
11 12
Buffered by data link layer Packets 2-8 Passedto network layer
Ack
0A
ck 1
Ack
1A
ck 1
Ack
1A
ck 1
Ack
1A
ck 1
Ack
8A
ck 9
Ack
10
(b) Effect of an error when the receiver window size is large
61
Data Link ControlHDLC frame structure
(a) Frame Format
(b) Control field format
62
Data Link ControlHDLC frame structure
(c) Extended address field (d) Extended control field
63
Error Control
Automatic Repeat Request (ARQ)
• Stop-and-Wait ARQ
• Go-Back-N ARQ*
• Selective Repeat ARQ*
* Sliding window protocols
64
Effect of Propagation Delay and Transmission Rate
d = max distanceV = propagation velocity
2 108 m/s or 3 108 m/s speed of light d/V = & max propagation delay in seconds
R = data rate (bits/second) 1/R = 1 bit time{d / V} / {1 / R} = {Rd / V} max number of bits in
transit = cable length in bits
65
Cable Length Example
(1) 500m baseband LAN (107 bits/second)
{500 1072 108bits in flight at a time
(2) 5000m broadband LAN (5 108 bits/second)
{(2 62 108bits
* Note: Signal passes thru headend and back, so 2. Not including headend delay (7-8 bits)
66
Cable Length Example
L = Length of frame (or packet)
Length of data path in bitsa =
Length of frame in bits
or Fraction of frame in transit
Max propagation delay or
Transmission time
67
Cable Length Example
d/V Rd (bits/sec) (meters)a = = = L/R VL (meters/sec) bits)
Data rate Distanceor
(Prob. Velocity) (Msg Length)
Note: Assuming medium admits one msg at a time
“a” Limits efficiency (Smaller Better)
68
Cable Length Example
a < 1 Bit length of link is less than that of the frame.
Example: Satellite Link
270 ms round trip propagation delay,Digital transmission service is 56 kbps,4k bit frame, soTransmission time = 4K/56K = 71ms
a = 270/71 = 3.8u = 1 /{1+2(3.8)} or 0.12 (poor)
69
0.1 0.5 0.9 1.0
0.1
0.5
0.9
1.0 a = 0
a = 0.1
a = 1
a = 10
G, offered load
Thruput
Effect of “a”on ideal zero overhead LAN
70
Total Time To Send Data
TD = TI + n TF, where
TI = Time to initiate Seq.
TF = Time to send one frameNote:
TI = tprop + tpoll + tproc (drop)
TF = tprop + tframe + tproc + tprop + tack + tproc (drop)
We ignore a few terms and write:
TD = n (2 tprop + tframe)
Of that time, only n tframe is actually spent
71
Total Time To Send Data
transmitting data and the rest is overhead
n tframe u =
n (2 tprop + tframe)
Now, let a = tprop / tframe
u = 1 / (1 + 2a)
72
The effect of a on utilization
73
Efficiency of the channel depends on both N, the window size, and a
Case 1: N > 2a + 1.Frame ACK reaches station A before it has exhausted its window. Thus A can transmit without pause u = 1
Case 2: N < 2a + 1Station A exhaust its window at t0 + N and
cannot send additional frames until t0 + 2a + 1. Thus, the utilization is N time units out of a period of (2a + 1) time units. u = N / (2a + 1)
Sliding Window
74
Line Utilization as a function of window size
0.1 1 10 100 1000
0.0
0.2
0.4
0.6
0.8
1.0
N=127
N=7
N=1
Utilization
a