page 1computer networks fall 2002 the data link layer r framing r error control m error correction m...

79
Page 1 Computer Networks Fall 2002 The Data Link Layer Framing Error Control Error Correction Error Detection Flow Control Retransmission with Sliding Window Protocols Protocol Specification and Verification Example Data Link Protocols

Post on 18-Dec-2015

222 views

Category:

Documents


2 download

TRANSCRIPT

Page 1Computer Networks Fall 2002

The Data Link Layer

Framing Error Control

Error Correction Error Detection

Flow Control Retransmission with Sliding Window

Protocols Protocol Specification and Verification Example Data Link Protocols

Page 2Computer Networks Fall 2002

Page 3Computer Networks Fall 2002

DATA LINK LAYER Services

Unacknowledged connectionless service Voice

Acknowledged connectionless service wireless

Acknowledged connection-oriented service no out-of-order

Page 4Computer Networks Fall 2002

Data Link Protocol

Page 5Computer Networks Fall 2002

Framing

To break the bit stream up into discrete frames and compute the checksum for each frame. When a frame arrives at the destination, the checksum is recomputed and validated.

One way to achieve this framing is to insert time gaps between frames. However, networks rarely make any guarantees about timing.

Page 6Computer Networks Fall 2002

Data Framing

Character count Starting and ending characters with

character stuffing Starting and ending flags with bit stuffing Physical layer coding violations

Page 7Computer Networks Fall 2002

Character Count

5 1 2 3 4 5 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3

character count

frame 15 characters

frame 25 characters

frame 38 characters

frame 48 characters

5 1 2 3 4 7 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 2 3

frame 2(wrong)

frame 15 characters

one-bit error

Now a character count

Even if the checksum is incorrect so the destination knows that the frame is bad, it still has no way of telling where the next frame starts.

Page 8Computer Networks Fall 2002

Starting and Ending Characters with Character Stuffing

DLE STX user data DLE ETX

beginningof frame

end offrame

DLE(0x10): Data Link EscapeSTX(0x02): Start of TeXtETX(0x03): End of TeXt

DLE STX A DLE B DLE ETX

user data 0x10

DLE STX A DLE B DLE ETX

DLE stuffed at the sender

DLE destuffed at the receiver

DLE STX A DLE DLE B DLE ETX

Page 9Computer Networks Fall 2002

Starting and Ending Flags with Bit Stuffing

01111110 user data 01111110

beginningof frame

end offrame

flag

011011111111111111110010

011011111111111111110010

011011111011111011111010010

bits stuffed at the sender

bits destuffed at the receiver

original data

Page 10Computer Networks Fall 2002

Physical Layer Coding Violations

V: Violation bit

1 0 0 0 1 1 0

userdata

EndingDelimiter

V V 0 V V 0 0 0

end of frame

StartingDelimiter

beginning of frame

V V 1 V V 0 0 0

Page 11Computer Networks Fall 2002

Error Control

Three types of frames at a receiver’s end Damaged frame : Negative

acknowledgment / retransmission Lost frame : Time-out mechanism Valid frame : Sequence numbering /

discarding for valid but duplicate frames

Page 12Computer Networks Fall 2002

Flow Control

A technique for assuring that a transmitting station does not overwhelm a receiving station with data

Page 13Computer Networks Fall 2002

Error Detection and Correction Error-correcting codes Error-detecting codes

Page 14Computer Networks Fall 2002

Codeword

n-bit codewords with n =m+r and m data bits r redundant or check bits

Not all the 2n codewords are legal. In general, only 2m codewords are legal.

ASCII codes of 7 bits with 1 even parity bit ASCII code for “A”: 1000001 codeword for “A”: 10000010 or 01000001 Codeword 10000011 or 11000001 is illegal.

Page 15Computer Networks Fall 2002

Hamming Distance

The number of bit positions in which two codewords differ is called the Hamming distance between these two codewords.

The Hamming distance of the complete code is the minimum Hamming distance between all pairs of legal codewords.

Page 16Computer Networks Fall 2002

Codeword Space

To detect d-bit errors, a distance d +1 code is needed.

To correct d-bit errors, a distance 2d +1 code is needed.

1-bit error detection 1-bit error correction

Page 17Computer Networks Fall 2002

Codeword Space : 3-bits

Page 18Computer Networks Fall 2002

Error Correction with Codewords: An Example

Page 19Computer Networks Fall 2002

Determine the Number of Check bits To correct single bit errors with m bits mess

age and r check bits (n=m+r) Code space : 2m n-bit legal messages(codewords) For an n-bit legal codeword, all its n neighbors at

a distance 1 from it are illegal n+1 bit patterns are dedicated to each legal mes

sage (n+1)2m <= 2n and consequently (m+r+1)2m <= 2m+r

. we have : (m+r+1) <= 2r

Page 20Computer Networks Fall 2002

Hamming Code

The bits that are powers of 2 (1, 2, 4, 8, 16, etc.) are check or parity bits of some data bits.

For example, m=7 (ASCII) and r=4 (7+4+1 <= 24)

B1 : B3 B5 B7 B9 B11

B2 : B3 B6 B7 B10 B11

B4 : B5 B6 B7

B8 : B9 B10 B11

1 001 000 “H”xx1x001x0000 1 0 1 0 0 01 01 00 1001 000000110010000 codeword

Page 21Computer Networks Fall 2002

Hamming Code : Example

Page 22Computer Networks Fall 2002

To Correct Burst Errors

A sequence of k consecutive codewords are arranged as a matrix, one codeword per row. To correct burst errors, the data should be transmitted one column at a time, i.e., column by column.

If a burst error of length k bits occurs, at most 1 bit in each of the k consecutive codewords will have been affected, but the Hamming code can correct one error per codeword, so the entire block can be restored.

Page 23Computer Networks Fall 2002

To Correct Burst Errors

Page 24Computer Networks Fall 2002

When a Burst Error Occurs

Page 25Computer Networks Fall 2002

To Correct Burst Errors: An Example

ASCII Codeword1001000 001100100001100001 101110010011101101 11101010101

011 001 111 110 011 000 101 010 001 000 0111 2 3 4 5 6 7 8 9 10 11 column

burst error

011 001 111 111 101 000 101 010 001 000 011

Codeword001110100001011000100111111010101

Codeword001100100001011100100111101010101

B1(011100)+B4(1101) => B5

B1(110001)+B4(1000) => B5

B4(1101) => B4

B1 : B3 B5 B7 B9 B11

B2 : B3 B6 B7 B10 B11

B4 : B5 B6 B7

B8 : B9 B10 B11

Page 26Computer Networks Fall 2002

Error Detection

Parity bit low error rate

Longitudinal redundancy check (LRC) and Vertical redundancy check (VRC)

Cyclic redundancy code (CRC code) / Polynomial code Easy hardware implementation Can detect burst errors

Page 27Computer Networks Fall 2002

Parity Bit

block size: 1000 bits Hamming code: 1000+10 bits (m+r+1 <=

2n) parity bit: 1000+1 bits

a message: 106 bits without no error

• Hamming code: 106+10000 bits• parity bit: 106+1000 bits

with a low error rate 10-6

• Hamming code: 106+10000 bits• parity bit: 106+1000+(1000+1) bits ( one error

occurs)retransmitted block

Page 28Computer Networks Fall 2002

Longitudinal Redundancy Check and Vertical Redundancy Check

1 0 1 1 0 1 1 11 1 0 1 0 1 1 10 0 1 1 1 0 1 01 1 1 1 0 0 0 01 0 0 0 1 0 1 10 1 0 1 1 1 1 10 1 1 1 1 1 1 0

VRC

LRC

Page 29Computer Networks Fall 2002

Cyclic Redundancy Code (CRC) / Polynomial Code A m-bit frame is regarded as the coefficient li

st for a polynomial, M(x), with m terms, ranging from xm-1 to x0. For example, 110001 represents a polynomial x5+x4+x0.

Addition and subtraction are identical to EXCLUSIVE OR. For example, 10011011 11110000+ 11001010 -10100110= 01010001 =01010110

Page 30Computer Networks Fall 2002

Computing Cyclic Redundancy Code Both the sender and the receiver must agree

upon a generator polynomial, G(x), with the degree r in advance.

Append r zero bits into M(x) => xrM(x) Divide xrM(x) by G(x) Subtract the remainder from xrM(x) and let t

he result be T(x)

Page 31Computer Networks Fall 2002

CRC Example

Page 32Computer Networks Fall 2002

CRC at Receiver End

T(x) is received with no error. T(x) is divisible by G(x)

When errors represented by error bit pattern E, ( ie. E(x)), occur, (T(x) +E(x)) /G(x) has zero reminder only if E(x) is

divisible by G(x) Carefully selects G(x) such that E(x) is not divisibl

e by G(x)

Page 33Computer Networks Fall 2002

CRC with Single and Double Errors Single-bit error

E(x)= xj

If G(x) contains tow or more terms, it will never divided E(x)

Two isolate single-bits errors E(x)= xi +xj = xj ( xi-j+ 1) ….. i>jAssume G(x) is not divisible by x

• Select G(x) that does not divide xk+1, where 1< k i-j

Page 34Computer Networks Fall 2002

CRC with Odd-Number-bit Errors

Page 35Computer Networks Fall 2002

CRC with Burst Errors

Page 36Computer Networks Fall 2002

Well-Known Generator Polynomials CRC-12: x12+x11+x3+x2+x+1 CRC-16: x16+x15+x2+1 CRC-CCITT: x16+x12+x5+1 CRC-32: x32+x26+x23+x22+x16+x12+x11+x10+

x8+ x7+x5+x4+x2+x+1 CRC-16 and CRC-CCITT

Catch all single and double errors, all errors with an odd number of bits, all burst errors of length 16 or less, 99.997% of 17-bit error burst, 99.998% of 18-bit error and longer bursts

Page 37Computer Networks Fall 2002

Flow Control Techniques

Stop-and-wait The receiver provide feedback to the sender The sender sends one frame and then waits

for an acknowledgement before proceeding

Page 38Computer Networks Fall 2002

Dealing with the Damaged Frames Adding a timer ( on sender )

The receiver would only send an ack if the data were correctly received

After time out, the sender send the frame again

Page 39Computer Networks Fall 2002

Dealing with the Lost Frames

A lost data frame can be resent by using a timer

When an acknowledgement is lost The sender’s timer eventually time-out The sender resends the same data frame After the data frame is received, the receiver

sends acknowledgement again

Page 40Computer Networks Fall 2002

Duplicate Frames : Two Cases

Page 41Computer Networks Fall 2002

Dealing with Duplicate Frames

Page 42Computer Networks Fall 2002

When Sender’s Time-out is Too Short

Page 43Computer Networks Fall 2002

Solution: Put Sequence Number in the Acknowledgement

Page 44Computer Networks Fall 2002

Piggybacking

Page 45Computer Networks Fall 2002

Acknowledgement

Techniques Control Frame Data Frame: Piggybacking

• The technique of temporarily delaying outgoing acknowledgements so that they can be hooked onto the next outgoing data frame is known as piggybacking.

Types Positive Acknowledgement: The received

frame has no error. Negative Acknowledgement: The received

frame has errors.

Page 46Computer Networks Fall 2002

Flow Control

Flow control is a technique for assuring that a transmitting station does not overwhelm a receiving station with data.

Sliding Window Protocols: At any instant of time, the sender maintains a set of sequence numbers corresponding to frames it is permitted to send. These frames are said to fall within the sending window. Similarly, the receiver also maintain a receiving window corresponding to the set of frames it is permitted to accept.

Page 47Computer Networks Fall 2002

Sliding Windows

Each outbound frame contain a sequence number ranging from 0 to 2n-1

Sending window Maintained by the sender A set of sequence numbers corresponding to

frames the sender is permitted to send Receiving window

Maintained by the receiver Corresponds the set of frames the receiver is

permitted to accept

Page 48Computer Networks Fall 2002

Maintain Sliding Windows

Sending window When a frame is sent, the upper edge of the

window is advanced by one When an acknowledgement is received, the

lower edge of the window is advanced by one Receiving window

Any received frame the sequence number outside the window is discarded

When a frame whose sequence number is equal to lower edge of the window is received, the window is rotated by one

Page 49Computer Networks Fall 2002

A Sliding Window Size of One

Page 50Computer Networks Fall 2002

Sliding Window Protocols

One bit sliding window protocol ( Stop-and-Wait)

Go-back-N Protocol Selective Repeat Protocol

Page 51Computer Networks Fall 2002

One Bit Sliding Window Protocol Stop –and-Wait

A protocol in which the sender sends one frame and then waits for an acknowledgement before proceeding.

a sliding window protocol with maximum window size = 1 Sequence number {0, 1} is sufficient

Frame header fields Seq : the sequence number of this frame Ack : the number of the last frame is received

Page 52Computer Networks Fall 2002

Efficiency of Stop-and-Wait

50 kbps data rate500 msec round-trip delay1000 bits per frame

time (msec)t=0 start sendingt=20 completely sentt=250 frame arrivalt=270 completely receivedt=270 acknowledge without delayt=520 acknowledgement arrival

26000 bits could be transmitted in 520 msec.Efficiency: 1000/26000=20/520 < 4% used

Stop-and-Wait

Page 53Computer Networks Fall 2002

Efficiency of Stop-and-Wait

Page 54Computer Networks Fall 2002

Pipelining

50 kbps data rate500 msec round-trip delay1000 bits per frame

time (msec)t=0 start sending the first framet=20 the first completely sentt=250 frame arrivalt=270 the first completely receivedt=270 acknowledge without delayt=520 acknowledgement arrival

To pipeline frames without waiting for acknowledgements.

Page 55Computer Networks Fall 2002

Pipelining

Page 56Computer Networks Fall 2002

Line of Utilization for Stop-and-Wait Capacity : b bits/sec, frame size : l bits, roun

d-trip delay : R seconds Transmission time : l/b Total duration : R + l/b Utilization : (l/b) / (R + l/b) = l / (l+bR)

Page 57Computer Networks Fall 2002

Go-back-N

Sender’s window size is n (n >1) At most n outstanding frames can be sent

After receiving a damaged frame Receiver discards all subsequent frames Sender retransmits the damaged frame and

all its successors after the times out

Page 58Computer Networks Fall 2002

Go-back-N : An Example

Page 59Computer Networks Fall 2002

Selective Repeat

Receiver’s window size is n ( n >1 ) At most n frames can be buffered

Receiver stores all the correct frames following the bad one

The sender retransmits only the bad frame not all its successors

Page 60Computer Networks Fall 2002

Selective Repeat : An Example

Page 61Computer Networks Fall 2002

Retransmission with Sliding Window Protocols ARQ (Automatic Repeat reQuest): When an e

rror is detected, the receiver requests that the frame be retransmitted. Stop-and-wait ARQ Go-back-N continuous ARQ Selective-repeat continuous ARQ

All of them belong to the sliding window protocols.

Both Go-back-N and Selective-repeat ARQs uses the pipelining technique.

Page 62Computer Networks Fall 2002

ARQ

Instead of using positive or negative acknowledgement, the receiver sends back only the frame number of the next frame is expects

On the receipt of each frame (including damaged) It may speed up the transmission of lost or

damaged frames, if the time-out value is “loose”

Page 63Computer Networks Fall 2002

Stop-and-Wait with ARQ

Page 64Computer Networks Fall 2002

Window Size

The optimal sender’s windows size is 1+(round-trip delay / transmission time)

Maximum window size of Go-back-N ARQ is MaxSeq, where the sequence number are 0, 1, ... , MaxSeq.

Maximum window size of Selective-repeat ARQ is (MaxSeq+1)/2.

Page 65Computer Networks Fall 2002

Protocol Specification and Verification Finite State Machine Model Petri Net Model

Page 66Computer Networks Fall 2002

Finite State Machine Model

States Instants that the protocol machine is waiting

for the next event to happen Transitions

Occur when some event occurs Change form some state to another

Page 67Computer Networks Fall 2002

Finite State Machine Model for Bit Destuffing

1 2 3 4 5 6

T

1/

0/100/0

1/1/ 0/1/ 1/ 1/

S E

1/

Bit destuffing

0/1110

0/11111

0/110

0/11110

bit destuffed

end offrame

error beginningof the next

frame

input/output

Page 68Computer Networks Fall 2002

State Digram for Stop-and-Wait

Page 69Computer Networks Fall 2002

Example Data Link Protocols

HDLC bit oriented bit stuffing

SLIP PPP

character oriented character stuffing multiprotocol framing

Page 70Computer Networks Fall 2002

High-level Data Link Control

derived from SDLC (Synchronous Data Link Control) of IBM’s SNA

ADCCP (Advanced Data Communication Control Procedure): ANSI

HDLC: ISO LAP (Link Access Procedure): X.25 of CCITT LAPB: CCITT http://members.tripod.com/~vkalra/hdlc.ht

ml

Page 71Computer Networks Fall 2002

HDLC Frame Format

A frame is delimited with the flag sequence 01111110. On idle point-to-point lines, flag sequences are transmitted continuously.

Address to identify one of multiple terminals for point-to-

multipoint lines to distinguish commands from responses for point-to-

point lines

bits 8 8 8 >=0 16 801111110 Address Control Data Checksum 01111110

Page 72Computer Networks Fall 2002

PDN

HDLC Frame Addressing

DCEDTE

Address B

Address Aaddress=0xC0, response

address=0xC0, command

address=0x80, response

address=0x80, command

Page 73Computer Networks Fall 2002

HDLC Frame Type

Type Command Response 1 2 3 4 5 6 7 8Information I 0 N(S) P N(R)Supervisory RR

REJRNRSR

RRREJRNRSR

1 0 0 01 0 0 11 0 1 01 0 1 1 *

P/FP/FP/FP/F

N(R)N(R)N(R)N(R)

UnnumberedSABMDISC

DM

UAFRMR

1 1 1 11 1 1 11 1 0 01 1 0 01 1 1 0

FPPFF

0 0 01 0 00 1 01 1 00 0 1

Control Field

* not defined in LAPB

Page 74Computer Networks Fall 2002

HDLC P/F Bit

In Command frames: P (POLL) bit In Response frames: F (FINAL) bit Each Command frame with the POLL bit

set to 1 must receive a Response frame with the FINAL bit set to 1.

Page 75Computer Networks Fall 2002

RR (Receive Ready): acknowledgement frame N(R): the next frame expected to be

received REJ (Reject): negative acknowledgement frame

N(R): the first frame in sequence not received correctly (Go-back-N protocol)

RNR (Receive not Ready): same as Type 0 and telling the sender to stop sending

SR (Selective Reject): acknowledgement frame N(R): the frame expected to be

retransmitted (Selective Repeat protocol)

HDLC Supervisory Frame

Page 76Computer Networks Fall 2002

HDLC Unnumbered Frame

DISC

Link Termination

UA

Link Initiation

SABM

DM

SABM

UA

accept

reject UA Unnumbered/AcknowledgementSABM Set Asynchronous Balanced ModeDISC DisconnectDM Disconnected Mode

Page 77Computer Networks Fall 2002

Serial Line IP

SLIP (Serial Line IP): to connect SUN workstations to the Internet over a dial-up line using a modem in 1984

RFC 1055 Sending IP packets over the line, with a

special flag byte at the end for framing. Using character stuffing.

Many problems: no error detection, supporting only IP, no authentication, etc.

Page 78Computer Networks Fall 2002

Point-to-Point Protocol

PPP: RFC 1661, RFC 1662, RFC 1663 A multiprotocol framing mechanism suitable

for use over modems, HDLC lines, SONET , and other physical layers.

Supports error detection, option negotiation, header compression, and optionally, reliable transmission using HDLC framing.

Character-oriented

Page 79Computer Networks Fall 2002

Homework

#2, #3, #6, #9,#11