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