Upload
jola
View
18
Download
0
Embed Size (px)
DESCRIPTION
Data Link Layer. Objective: to achieve reliable and efficient communication between 2 adjacent machines Data link layer design issues services provided to the network layer unacknowledged connectionless service acknowledged connectionless service acknowledged connection-oriented service - PowerPoint PPT Presentation
Citation preview
5-1
Data Link Layer
Objective: to achieve reliable and efficient communication between 2 adjacent machines
Data link layer design issues services provided to the network layer
– unacknowledged connectionless service
– acknowledged connectionless service
– acknowledged connection-oriented service call set-up transmission call release
5-2
Data Link Layer (cont’d)
Framing character count
– use a field in the header to indicate the number of characters in the frame
– e.g. 51234 56789 80123456
– unreliable and rarely used
starting & ending characters, with character stuffing– STX and ETX are used for frame synchronization
– DLE and DLE insertion are used for data transparency
5-3
Data Link Layer (cont’d) Framing
starting & ending characters/flags, with bit stuffing– 01111110 as flag byte (flag pattern) for frame and character sync. (for
beginning and end)
– zero bit insertion (bit stuffing) to achieve data transparency -- to insert a 0 after 5 contiguous 1’s
– e.g. original data 011011111111111111110010
data sent 011011111011111011111010010
data stored 011011111111111111110010
physical layer (bit) encoding violation hybrid methods (char. count with one of the others)
5-4
Data Link Layer (cont’d)
Error control error detection ACK’s and NACK’s time-out mechanism sequence numbers
Flow control for speed mismatch (sender faster than receiver), finite
receiver buffer or occasional unavailability of the receiver feedback mechanism is typically required
5-5
Data Link Layer (cont’d)
Error detection and correction causes of errors random vs. bursty errors error-correcting codes vs. error-detecting codes
Error-correcting codes codeword (m data-bits + r check bits; let n=m+r) Hamming distance (H.D.) between 2 codewords Hamming distance of the complete code: the min. Hamming
distance between any 2 distinct codewords
5-6
Data Link Layer (cont’d)
Error-correcting codes (cont’d) to detect d errors required a distance d+1 code (e.g. d =1
for parity check where H.D.=2) to correct d errors requires a distance 2d +1 code
e.g. 0000000000 0000011111
1111100000 1111111111 a lower bound on r to correct any single-bit error:
Each of the 2m legal messages has n illegal codewords at
a distance of 1 from it. Then 2m(n+1) 2n, and
2m(m+r+1) 2m+r. Consequently, m+r+1 2r.
5-7
Data Link Layer (cont’d)
Error-correcting codes (cont’d) Hamming code (corrects only single-bit errors)
e.g. m = 7. Then 7 + r + 1 2r, and consequently r 4.
Consider an ASCII code 1001000, where even
parity is adopted.
Then, arrange the data and error-correcting bits
as follows.
20 21 22 23
X X 1 X 0 0 1 X 0 0 0
r1 r2 m1 r3 m2 m3 m4 r4 m5 m6 m7
5-8
Data Link Layer (cont’d) Error-correcting codes (cont’d)
Hamming code (cont’d) 20 21 22 23 (position)
r1 r2 r3 r4 (check bits)
(3) m1 1 1
(5) m2 0 0
(6) m3 0 0
(7) m4 1 1 1
(9) m5 0 0
(10) m6 0 0
(11) m7 0 0 0
Consequently, r1= 0, r2 = 0, r3 = 1 and r4 = 0.
5-9
Data Link Layer (cont’d)
Error-correcting codes (cont’d) Hamming code (cont’d)
– to correct at most k consecutive bit errors
n
k
order of transmission
If each row contains at most 1 bit error, then the error(s) can be corrected.
5-10
Data Link Layer (cont’d)
Error-detecting codes parity check block sum check cyclic redundancy code (CRC)
– using methods based upon polynomial codes which is more efficient to detect error bursts
a set of check digits is generated and appended to the end of each frame to be transmitted
the receiver performs a similar computation on the message and the check bits
if an error is found, then claim error(s); otherwise, claim correctness (true with a high probability)
5-11
Data Link Layer (cont’d)
Error-detecting codes (cont’d) cyclic redundancy code (cont’d)
– theory behindM(x) = an m-bit number (message)
G(x) = an (r+1)-bit number (generator/divisor)
R(x) = an r-bit number (remainder based on modulo-2 arithmetic)
Q(x) = quotient
Property: If M(x)*xr/G(x) = Q(x) + R(x)/G(x), then
[M(x)*xr + R(x)]/G(x) = Q(x).
Proof: [M(x)*xr + R(x)]/G(x) = Q(x) + R(x)/G(x) + R(x)/G(x)
= Q(x)
5-12
Data Link Layer (cont’d)
Error-detecting codes (cont’d) cyclic redundancy code (cont’d)
– algorithm sender
append r zeros to M(x) (M(x) is multiplied by xr) divide M(x)*xr (using modulo-2 arithmetic/bit-wise XOR) by
G(x) to calculate R(x) append R(x) to M(x) and transmit
receiver divide the received info. (M(x)*xr+R(x)) by G(x) if the remainder is 0, OK; otherwise, report error(s)
5-13
Data Link Layer (cont’d) Error-detecting codes (cont’d)
cyclic redundancy code (cont’d)– example
(Fig. 3-7, p. 189)
5-14
Data Link Layer (cont’d)
Error-detecting codes (cont’d) cyclic redundancy code (cont’d)
– G(x) of K bits should detect all single-bit errors all double-bit errors all odd number of bit errors all error bursts with length < K most error bursts with length K
– example CRC CRC-16 CRC-CCITT CRC-32