Computer Networks

Download Report

Transcript Computer Networks

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
Computer Networks Fall 2002
Page 1
Computer Networks Fall 2002
Page 2
DATA LINK LAYER Services
 Unacknowledged connectionless service
 Voice
 Acknowledged connectionless service
 wireless
 Acknowledged connection-oriented service
 no out-of-order
Computer Networks Fall 2002
Page 3
Data Link Protocol
Computer Networks Fall 2002
Page 4
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.
Computer Networks Fall 2002
Page 5
Data Framing
 Character count
 Starting and ending characters with
character stuffing
 Starting and ending flags with bit stuffing
 Physical layer coding violations
Computer Networks Fall 2002
Page 6
Character Count
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
frame 1
5 characters
frame 2
5 characters
frame 3
8 characters
frame 4
8 characters
one-bit error
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 1
5 characters
frame 2
(wrong)
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.
Computer Networks Fall 2002
Page 7
Starting and Ending Characters
with Character Stuffing
DLE STX
user data
DLE ETX
beginning
of frame
DLE(0x10): Data Link Escape
STX(0x02): Start of TeXt
ETX(0x03): End of TeXt
end of
frame
user data 0x10
DLE STX A DLE
B
DLE ETX
DLE stuffed at the sender
DLE STX A DLE DLE B DLE ETX
DLE destuffed at the receiver
DLE STX A DLE B DLE ETX
Computer Networks Fall 2002
Page 8
Starting and Ending Flags with
Bit Stuffing
flag
01111110 user data 01111110
beginning
of frame
011011111111111111110010
end of
frame
original data
bits stuffed at the sender
011011111011111011111010010
bits destuffed at the receiver
011011111111111111110010
Computer Networks Fall 2002
Page 9
Physical Layer Coding Violations
1 0 0 0 1 1 0
Starting
Delimiter
V V 1 V V 0 0 0
beginning of frame
Ending
Delimiter
user
data
V V 0 V V 0 0 0
end of frame
V: Violation bit
Computer Networks Fall 2002
Page 10
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
Computer Networks Fall 2002
Page 11
Flow Control
 A technique for assuring that a transmitting
station does not overwhelm a receiving
station with data
Computer Networks Fall 2002
Page 12
Error Detection and Correction
 Error-correcting codes
 Error-detecting codes
Computer Networks Fall 2002
Page 13
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.

Computer Networks Fall 2002
Page 14
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.
Computer Networks Fall 2002
Page 15
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
Computer Networks Fall 2002
1-bit error correction
Page 16
Codeword Space : 3-bits
Computer Networks Fall 2002
Page 17
Error Correction with
Codewords: An Example
Computer Networks Fall 2002
Page 18
Determine the Number of
Check bits
 To correct single bit errors with m bits
message 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
message
 (n+1)2m <= 2n and consequently (m+r+1)2m <= 2m+r.
we have : (m+r+1) <= 2r

Computer Networks Fall 2002
Page 19
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)
1 001 000
“H”
B1 : B3 B5 B7 B9 B11
 B2 : B3 B6 B7 B10 B11
 B4 : B5 B6 B7
 B8 : B9 B10 B11

Computer Networks Fall 2002
xx1x001x000
0 1 0 1 0 0
01 01 00
1001
0000
00110010000
codeword
Page 20
Hamming Code : Example
Computer Networks Fall 2002
Page 21
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.
Computer Networks Fall 2002
Page 22
To Correct Burst Errors
Computer Networks Fall 2002
Page 23
When a Burst Error Occurs
Computer Networks Fall 2002
Page 24
To Correct Burst Errors: An
Example
ASCII
Codeword
1001000 00110010000
1100001 10111001001
1101101 11101010101
B1 : B3 B5 B7 B9 B11
B2 : B3 B6 B7 B10 B11
B4 : B5 B6 B7
B8 : B9 B10 B11
1 2
3 4
5 6
7 8 9 10 11
011 001 111 110 011 000 101 010 001 000 011
column
burst error
011 001 111 111 101 000 101 010 001 000
Codeword
00111010000 B1(011100)+B4(1101) => B5
10110001001 B1(110001)+B4(1000) => B5
B4(1101) => B4
11111010101
Computer Networks Fall 2002
011
Codeword
00110010000
10111001001
11101010101
Page 25
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

Computer Networks Fall 2002
Page 26
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
Computer Networks Fall 2002
Page 27
Longitudinal Redundancy Check
and Vertical Redundancy Check
VRC
10110111
11010111
00111010
11110000
10001011
01011111
01111110
Computer Networks Fall 2002
LRC
Page 28
Cyclic Redundancy Code (CRC) /
Polynomial Code
m-bit frame is regarded as the
coefficient list for a polynomial, M(x), with
m terms, ranging from xm-1 to x0. For
A
example, 110001 represents a polynomial
x5+x4+x0.
 Addition and subtraction are identical to
EXCLUSIVE OR. For example,
10011011
+ 11001010
= 01010001
Computer Networks Fall 2002
11110000
-10100110
=01010110
Page 29
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
the result be T(x)
Computer Networks Fall 2002
Page 30
CRC Example
Computer Networks Fall 2002
Page 31
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
divisible by G(x)

Computer Networks Fall 2002
Page 32
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)
 Assume
….. i>j
G(x) is not divisible by x
• Select G(x) that does not divide xk+1,
where 1< k  i-j
Computer Networks Fall 2002
Page 33
CRC with Odd-Number-bit
Errors
Computer Networks Fall 2002
Page 34
CRC with Burst Errors
Computer Networks Fall 2002
Page 35
Well-Known Generator
Polynomials
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-12:
 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
Computer Networks Fall 2002
Page 36
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

Computer Networks Fall 2002
Page 37
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

Computer Networks Fall 2002
Page 38
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

Computer Networks Fall 2002
Page 39
Duplicate Frames : Two Cases
Computer Networks Fall 2002
Page 40
Dealing with Duplicate Frames
Computer Networks Fall 2002
Page 41
When Sender’s Time-out is Too
Short
Computer Networks Fall 2002
Page 42
Solution: Put Sequence Number
in the Acknowledgement
Computer Networks Fall 2002
Page 43
Piggybacking
Computer Networks Fall 2002
Page 44
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.
Computer Networks Fall 2002
Page 45
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.
Computer Networks Fall 2002
Page 46
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
Computer Networks Fall 2002
Page 47
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
Computer Networks Fall 2002
Page 48
A Sliding Window Size of One
Computer Networks Fall 2002
Page 49
Sliding Window Protocols
 One bit sliding window protocol ( Stop-and-
Wait)
 Go-back-N Protocol
 Selective Repeat Protocol
Computer Networks Fall 2002
Page 50
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
Computer Networks Fall 2002
Page 51
Efficiency of Stop-and-Wait
Stop-and-Wait
50 kbps data rate
500 msec round-trip delay
1000 bits per frame
time (msec)
t=0 start sending
t=20 completely sent
t=250 frame arrival
t=270 completely received
t=270 acknowledge without delay
t=520 acknowledgement arrival
26000 bits could be transmitted in 520 msec.
Efficiency: 1000/26000=20/520 < 4% used
Computer Networks Fall 2002
Page 52
Efficiency of Stop-and-Wait
Computer Networks Fall 2002
Page 53
Pipelining
50 kbps data rate
500 msec round-trip delay
1000 bits per frame
time (msec)
t=0 start sending the first frame
t=20 the first completely sent
t=250 frame arrival
t=270 the first completely received
t=270 acknowledge without delay
t=520 acknowledgement arrival
To pipeline frames without waiting for acknowledgements.
Computer Networks Fall 2002
Page 54
Pipelining
Computer Networks Fall 2002
Page 55
Line of Utilization for Stopand-Wait
b bits/sec, frame size : l bits,
round-trip delay : R seconds
 Capacity :
Transmission time : l/b
 Total duration : R + l/b
 Utilization : (l/b) / (R + l/b) = l / (l+bR)

Computer Networks Fall 2002
Page 56
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
Computer Networks Fall 2002
Page 57
Go-back-N : An Example
Computer Networks Fall 2002
Page 58
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
Computer Networks Fall 2002
Page 59
Selective Repeat : An Example
Computer Networks Fall 2002
Page 60
Retransmission with Sliding
Window Protocols
 ARQ (Automatic Repeat reQuest): When an
error 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.
Computer Networks Fall 2002
Page 61
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”
Computer Networks Fall 2002
Page 62
Stop-and-Wait with ARQ
Computer Networks Fall 2002
Page 63
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.
Computer Networks Fall 2002
Page 64
Protocol Specification and
Verification
 Finite State Machine Model
 Petri Net Model
Computer Networks Fall 2002
Page 65
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
Computer Networks Fall 2002
Page 66
Finite State Machine Model for
Bit Destuffing
Bit destuffing
input/output
0/11110
0/110
1/
S
0/0
1/
1
0/10
1/
2
0/1110
1/
3
4
bit destuffed
0/11111
Computer Networks Fall 2002
1/
1/
5
0/
6
end of
E frame
1/
T
beginning
error
of the next
frame
Page 67
State Digram for Stop-andWait
Computer Networks Fall 2002
Page 68
Example Data Link Protocols
 HDLC
 bit oriented
 bit stuffing
 SLIP
 PPP
 character oriented
 character stuffing
 multiprotocol framing
Computer Networks Fall 2002
Page 69
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
Computer Networks Fall 2002
Page 70
HDLC Frame Format
bits
8
8
8
>=0
16
8
01111110 Address Control Data Checksum 01111110
 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-tomultipoint lines
to distinguish commands from responses for point-to-point
lines
Computer Networks Fall 2002
Page 71
HDLC Frame Addressing
DTE
DCE PDN
address=0xC0, command
Address A
address=0xC0, response
address=0x80, command
Address B
Computer Networks Fall 2002
address=0x80, response
Page 72
HDLC Frame Type
Control Field
Type
Information
Supervisory
Command
I
RR
REJ
RNR
SR
Unnumbered
SABM
DISC
Response 1 2 3 4
0 N(S)
RR
1000
REJ
1001
RNR
1010
SR
1011*
DM
1111
1111
1100
UA
1100
FRMR
1110
5
P
P/F
P/F
P/F
P/F
F
P
P
F
F
678
N(R)
N(R)
N(R)
N(R)
N(R)
000
100
010
110
001
* not defined in LAPB
Computer Networks Fall 2002
Page 73
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.
Computer Networks Fall 2002
Page 74
HDLC Supervisory Frame
 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)

Computer Networks Fall 2002
Page 75
HDLC Unnumbered Frame
Link Initiation
Link Termination
SABM
DISC
accept
UA
UA
SABM
reject
DM
Computer Networks Fall 2002
UA
SABM
DISC
DM
Unnumbered/Acknowledgement
Set Asynchronous Balanced Mode
Disconnect
Disconnected Mode
Page 76
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.
Computer Networks Fall 2002
Page 77
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
Computer Networks Fall 2002
Page 78
Homework
 #2, #3, #6, #9,#11
Computer Networks Fall 2002
Page 79