Upload
miller
View
24
Download
0
Embed Size (px)
DESCRIPTION
Chapter 4 Data Link Layer. Framing Error control Flow control Multiplexing Link Maintenance Security. Services. Transfers frames across direct connections Directly connected (can be wireless), wire-like Losses & errors, but no out-of-sequence frames More detailed services - PowerPoint PPT Presentation
Citation preview
1
Chapter 4 Data Link Layer
Framing
Error control
Flow control
Multiplexing
Link Maintenance
Security
2
Services
Transfers frames across direct connections Directly connected (can be wireless), wire-like Losses & errors, but no out-of-sequence frames
More detailed services Framing (bits ↔ frames) Error control (protection from impairment) Flow control Multiplexing Link Maintenance Security: Authentication & Encryption
3
Data Link Protocols
Examples PPP HDLC Ethernet LAN IEEE 802.11 (WiFi) LAN
Data linklayer
Physicallayer
Physicallayer
Data linklayer
A B
Packets Packets
Frames
4
Framing (Chapter 5.4 in Leon-Garcia)
5
Framing
Bit stream - frames Frame boundaries can
be determined using:1. Character Counts
2. Control Characters
3. Framing Bits
4. Framing by illegal code
0110110111
Framing
receivedframes
0111
1101
01transmitted
frames
6
Data to be sent
A DLE B ETX DLE STX E
After stuffing and framing
DLE DLE B ETX DLE DLE STXDLE STX A E DLE ETX
Control Characters
What about transmission of data (including non-printable characters)? Introduce DLE (data link escape) = 0x10 DLE STX (DLE ETX) used to indicate beginning (end) of frame Insert extra DLE in front of occurrence of DLE STX (DLE ETX) in frame All DLEs occur in pairs except at frame boundaries.
Transmission of printable characters using ASCII Octets with HEX value < 0x20 are nonprintable Use control characters: STX (start of text) = 0x02; ETX (end of text) = 0x03.
7
Bit Stuffing
Frame delineated by flag character HDLC uses bit stuffing to prevent occurrence of flag
01111110 inside the frame Transmitter inserts extra 0 after each consecutive
five 1s inside the frame Receiver checks for five consecutive 1s
if next bit = 0, it is removed if next two bits are 10, then flag is detected If next two bits are 11, then frame has errors
Flag FlagAddress Control Information FCS
HDLC frame
any number of bits
8
0110111111111100
Data to be sent
After stuffing and framing
0111111001101111101111100001111110
(a)
*000111011111-11111-110*
Data received
After destuffing and deframing
01111110000111011111011111011001111110
(b)
Example: Bit stuffing
9
Example: Framing in Ethernet
Ethernet complies to standard IEEE 802.3 An illegal manchester coding is used for
framing. A character count is also included in the
header. All frames have an integral number of bytes.
If not, the frame is considered to be received in error.
10
Error Control Coding(Chapter 3.9 in Leon-Garcia)
11
Error Control Two approaches
Forward error correction (FEC) Error detection & retransmission (ARQ)
Add redundancy (admit only codewords with a certain pattern) Blindspot: when channel transforms a codeword into another
codeword (n,k) block code There are capacity-achieving codes
Usually with somewhat high complexity; When bandwidth is abundant it suffices to use simpler codes.
ChannelEncoderb1…bk Decoder
c1…cn
12
Single Parity Check
Information bits: b1, b2, b3, …, bk
Check Bit: bk+1= b1+ b2+ b3+ …+ bk modulo 2
Codeword: (b1, b2, b3, …, bk,, bk+!)
All codewords have even # of 1s All error patterns that change an odd number of bits are
detectable Others undetectable
Redundancy: overhead = 1/(k + 1)
n=k+1
13
Example
Information (7 bits): (0, 1, 0, 1, 1, 0, 0)
14
Probability of Error
Example: Evaluate above for n = 6, p = 0.01
P[error detection failure]= P[undetectable error pattern] = P[all error patterns with even number of 1s]
= p2(1 – p)n-2 + p4(1 – p)n-4 + …n2
n4
P[undetectable error] = 0.0014
15
Two-Dimensional Parity Check
1 0 0 1 0 0
0 1 0 0 0 1
1 0 0 1 0 0
1 1 0 1 1 0
1 0 0 1 1 1
column check bit
row check bits
16
1 0 0 1 0 0
0 0 0 1 0 1
1 0 0 1 0 0
1 0 0 0 1 0
1 0 0 1 1 1
1 0 0 1 0 0
0 0 0 0 0 1
1 0 0 1 0 0
1 0 0 1 1 0
1 0 0 1 1 1
1 0 0 1 0 0
0 0 0 1 0 1
1 0 0 1 0 0
1 0 0 1 1 0
1 0 0 1 1 1
1 0 0 1 0 0
0 0 0 0 0 1
1 0 0 1 0 0
1 1 0 1 1 0
1 0 0 1 1 1
Arrows indicate failed check bits
Two errorsOne error
Three errors Four errors
(undetectable)
Error-detecting capability
1, 2, or 3 errors can always be
detected; Not all patterns >4 errors can be detected
17
Hamming Codes
Class of linear block codes Capable of correcting all single-error patterns For each m > 2, there is a (2m–1, n-m) Hamming code
m n = 2m–1 k = n–m Code rate k/n
3 7 4 4/7
4 15 11 11/15
5 31 26 26/31
18
m = 3 Hamming Code
Information bits are b1, b2, b3, b4
Parity checks (binary addition/multiplication)
Linearity 24 = 16 codewords
b5 = b1 + b3 + b4
b6 = b1 + b2 + b4
b7 = + b2 + b3 + b4
19
Hamming (7,4) codeInformation Codeword Weight
b1 b2 b3 b4 b1 b2 b3 b4 b5 b6 b7 w(b)
0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 1 0 0 0 1 1 1 1 4
0 0 1 0 0 0 1 0 1 0 1 3
0 0 1 1 0 0 1 1 0 1 0 3
0 1 0 0 0 1 0 0 0 1 1 3
0 1 0 1 0 1 0 1 1 0 0 3
0 1 1 0 0 1 1 0 1 1 0 4
0 1 1 1 0 1 1 1 0 0 1 4
1 0 0 0 1 0 0 0 1 1 0 3
1 0 0 1 1 0 0 1 0 0 1 3
1 0 1 0 1 0 1 0 0 1 1 4
1 0 1 1 1 0 1 1 1 0 0 4
1 1 0 0 1 1 0 0 1 0 1 4
1 1 0 1 1 1 0 1 0 1 0 4
1 1 1 0 1 1 1 0 0 0 0 3
1 1 1 1 1 1 1 1 1 1 1 7
20
Parity Check Equations Rearrange parity check equations:
All codewords must satisfy these equations
Note: each nonzero 3-tuple appears once as a column in check matrix H
In matrix form:
0 = b1 + b3 + b4 + b5
0 = b1 + b2 + b4 + b6
0 = + b2 + b3 + b4 + b7
b1
b2
0 = 1 0 1 1 1 0 0 b3
0 = 1 1 0 1 0 1 0 b4 = H bt = 0
0 = 0 1 1 1 0 0 1 b5
b6
b7
21
0010000
s = H e = =101
Single error detected
0100100
s = H e = = + =011
Double error detected100
1 0 1 1 1 0 01 1 0 1 0 1 00 1 1 1 0 0 1
1110000
s = H e = = + + = 0 110
Triple error not detected
011
101
1 0 1 1 1 0 01 1 0 1 0 1 00 1 1 1 0 0 1
1 0 1 1 1 0 01 1 0 1 0 1 00 1 1 1 0 0 1
111
Hamming Code: Error Detection
22
Minimum distance Undetectable error pattern must have 3 or more bits At least 3 bits must be changed to convert one codeword
into another codeword
b1 b2o o
o
o
oo
o
o
Set of n-tuples within
distance 1 of b1
Set of n-tuples within
distance 1 of b2
Spheres of distance 1 around each codeword do not overlap
If a single error occurs, the resulting n-tuple will be in a unique sphere around the original codeword
Distance 3
23
General Hamming Codes
For m > 2, the Hamming code is obtained through the check matrix H: Each nonzero m-tuple appears once as a column The resulting code corrects all single errors
P[undetectable error]= P[ error is a codeword]≈ (# of codewords with dmin) x pdmin
Animated example http://www.systems.caltech.edu/EE/Faculty/rjm/SAMPLE_20040708.html
24
Hamming Codes: Error-correction
Compute syndrome: s = HR = H (b + e) = Hb + He = He If s = 0, then the receiver accepts R as the transmitted
codeword, find the corresponding k-bit message If s is nonzero, then an error is detected
Hamming decoder assumes a single error has occurred Each single-bit error pattern has a unique syndrome The receiver matches the syndrome to a single-bit error
pattern and corrects the appropriate bit
b
e
R+ (Receiver)(Transmitter)
Error pattern
25
Hamming Codes: Performance
Assume bit errors occur independent of each other and with probability p
s = H R = He
s = 0 s = 0
No errors intransmission
Undetectableerrors
Correctableerrors
Uncorrectableerrors
(1–p)7 7p3
1–3p 3p
7p
7p(1–3p) 21p2
26
Other Error Control Codes
Good practical codes for error detection: Internet Check Sums CRC Polynomial Codes
They can detect the vast majority of errors.
Good codes for error “correction”: Turbo codes Low-density parity-check (LDPC) codes
27
Internet Checksum
Several Internet protocols (e.g. IP, TCP, UDP) use check bits to detect errors in the header
A checksum is calculated for header contents and included in a special field.
Treating each 16-bit word in data as an integer, find
x = b0 + b1 + b2+ ...+ bL-1 modulo 216-1 The checksum is then given by:
bL = - x modulo 216-1
Thus, the headers satisfy the following pattern:
0 = b0 + b1 + b2+ ...+ bL-1 + bL modulo 216-1
28
Polynomial Codes
Convenient mathematical formulation of coding Polynomials as codewords Implemented using shift-register circuits Called cyclic redundancy check (CRC) codes Excellent for detecting burst errors
Reg 0 ++
Encoder for g(x) = x3 + x + 1
Reg 1 Reg 20,0,0,i0,i1,i2,i3
g0 = 1 g1 = 1 g3 = 1
29
Automatic Repeat Request (ARQ)
(Chapter 5 in Leon-Garcia)
30
n – 1 n – 1
n n
n + 1 n + 1
Peer-to-Peer Protocols
Each layer provides a service to the layer above.
It does so by executing a peer-to-peer protocol.
The protocol uses the the services of the layer below.
31
Service Models
The service model specifies the manner in which information is transferred. Connection-oriented Connectionless
32
Connection setup Message transfer Connection release Example: TCP, PPP
Connection-Oriented
n + 1 peer processsend
n + 1 peer processreceive
Layer n connection-oriented serviceSDU SDU
33
No setup Each message sent independently Must provide all address information per message Simple & quick Example: UDP, IP
Connectionless Transfer Service
n + 1 peer processsend
n + 1 peer processreceive
SDU Layer n connectionless service
34
Purpose: To pass to the receiver every frame correctly, only once, in order.
Bad things can happen: Error, arbitrary delay, out-of-order arrival, or loss. Aim at very high reliability.
Assume if frames arrive, they arrive in-order for now. We save the out-of-order problem for later.
Basic elements: Error-detecting code ACKs (positive acknowledgments) NAKs (negative acknowledgments) Timeout mechanism
Automatic Repeat Request (ARQ)
35
PacketError-free
packet
Information frame
Control frame
Transmitter Receiver
Stop-and-Wait ARQ
Timer set after each frame
transmission
Transmit a frame, wait for ACK
36
In cases (a) & (b) the transmitting station A acts the same way But in case (b) the receiving station B accepts frame 1 twice Question: How is the receiver to know the second frame is also frame 1? Need a sequence number: Slast=SN of most recent transmitted frame.
Need for Sequence Numbers(a) Frame 1 lost
A
B
Frame 0
Frame1
ACK
Frame1
ACK
TimeTime-out
Frame2
(b) ACK lost
A
B
Frame 0
Frame1
ACK
Frame1
ACK
TimeTime-out
Frame2
ACK
37
Sequence Numbers
The transmitting station misinterprets duplicate ACKs Question: How is the receiver to know second ACK is for frame 0?
(c) Premature Time-out
A
B
Frame 0 Frame
0ACKFrame
1ACK
TimeTime-out
Frame2
Need SN in ACK: Rnext=SN of next frame expected by the receiver. Implicitly acknowledges receipt of all prior frames. What if ACK only if Slast=Rnext?
38
Transmitter A
Receiver B
SlastRnext
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
Timer
Rnext
Slast
How many bits for SN?
1-Bit SN Suffices
39
Transmitter A
Receiver B
Rnext
Slast
Finite State Machine
(0,0) (0,1)
(1,0) (1,1)
Global State:(Slast, Rnext)
Error-free frame 0arrives
ACK 0arrives
ACK 1arrives
Error-free frame 1arrives
Frame 0lost/error
Frame 1lost/error
ACK 0lost/error
ACK 1lost/error
40
S/W Efficiency
A
B
First frame bit enters channel
Last frame bit enters channel
Transmitter waits for ACK
Last frame bit arrives at receiver
Receiver processes frame
and prepares ACK
ACK arrives
First frame bit arrives at receiver
t
t
41
frametf time
A
B
tproptack tproc
tprop
tproc
t0 = total time to transmit 1 frame if no error
S/W Transmission Time
R
n
R
ntt
ttttt
afprocprop
ackfprocprop
22
220bits/info frame
channel transmission rate
bits/ACK frame
42
Efficiency on Error-free channel
.)(2
1
1
0
0
0
f
procprop
f
a
f
o
ofeff
n
Rtt
nn
nn
Rt
nn
R
R
Overhead bits (header, CRC)
, timetotal
bitsn informatio of #
0
0
t
nnR ofeff
Effect offrame overhead
Effect ofACK frame
Effect ofDelay-Bandwidth Product
Effective transmission rate:
Transmission efficiency:
43
Delay-Bandwidth Product
nf=10,000 bits, na=no=200 bits
2xDelayxBW
Efficiency 1 ms
200 km
10 ms
2000 km
100 ms
20,000 km
1 sec
200,000 km
1 Mbps 103
88%
104
49%
105
9%
106
1%
1 Gbps 106
1%
107
0.1%
108
0.01%
109
0.001%
S/W inefficient for very high speeds or long delays
44
Average Transmission Number
Proposition: Let Pf be the frame error probability. Then the average number of transmissions per successful frame is 1/ (1–Pf ).
Proof: The number of transmissions to first correct arrival has geometric distribution.
E.g., if 1-in-10 gets through, then in average 10 tries to success.
.1
1
1
11
1
1
)1()1(
][][
11
1
1
ffff
i
if
ff
i
iff
i
PPdP
d
P
PdP
dPPPi
iniPNE
45
Efficiency in Channel with Errors
)1()(2
1
1
)1/(0f
f
procprop
f
a
f
o
f
ofeffSW P
n
Rtt
nn
nn
PRt
nn
R
R
Effect of frame loss
pnepP fpnn
fff small and largefor )1(1
If bit-error-rate is p, then
Assuming time-out is equal to t0 (it should be larger)
46
Go-Back-N
A sliding-window protocol. Keep channel busy by continuing to send frames Allow a window of up to Ws outstanding frames If ACK for oldest frame arrives before window is
exhausted, we can continue transmitting If window is exhausted, pull back and retransmit all
outstanding frames
47
Frame transmission are pipelined to keep the channel busy Frame with errors and subsequent out-of-sequence frames are ignored
Go-Back-N ARQ
A
B
fr0
Timefr1
fr2
fr3
fr4
fr5
fr6
fr3
ACK1
out of sequence frames
Go-Back-4: 4 frames are outstanding; so go back 4
fr5
fr6
fr4
fr7
fr8
fr9
ACK2
ACK3
ACK4
ACK5
ACK6
ACK7
ACK8
ACK9
Rnext 0 1 2 3 3 4 5 6 7 8 9
48
A
B
fr0
Timefr1
fr2
fr3
fr0
Receiver is looking for
Rnext=0
Out-of-sequence
frames
If window exhausted, go back N
fr2
fr3
fr1
fr4
fr5
fr6
Go-Back-N ARQ
ACK1
ACK2
ACK3
ACK4
ACK5
ACK6
A
B
Timefr0
fr0
Time-outfr1
ACK1
Stop-and-Wait ARQ
Receiver is looking for
Rnext=0
Choose Window Size > RTT
49
Go-Back-N with Timeout
Problem with Go-Back-N as presented: If frame is lost and source does not have frame to
send, then window will not be exhausted and recovery will not commence
Use a timeout with each frame When timeout expires, resend all outstanding
frames
50
Receiver
Receive Window (size 1)
Rnext
Framesreceived
Receiver will only accepterror-free frame with SN Rnext.
When the frame arrives Rnext is incremented by 1, so the receive window slides forward by 1.
Timer Slast
Slast+1
Srecent
Slast+Ws-1
Timer
Timer
Transmitter
...
Buffers
Slast Slast+Ws-1
...Send Window (size Ws)
Srecent
Framestransmittedand ACKed
...
most recent transmission
oldest un-ACKed frame
max SN allowed
Go-Back-N Transmitter & Receiver
51
Example: M = 22 = 4, Go-Back – 4 is not good.
Example: Go-Back-3 is good.
A
B
fr0
Timefr1
fr2
fr0
fr1
fr2
ACK1
ACK2
ACK3
Receiver has Rnext= 3 , so it rejects the old frame 0
Rnext 0 1 2 3
Maximum Window Size Ws = 2m-1
A
B
fr0
Timefr1
fr2
fr3
fr0
fr1
fr2
fr3
ACK1
ACK0
ACK2
ACK3
Transmitter goes back 4
Receiver has Rnext= 0, but it does not know whether this is the old frame 0 or a new frame 0
Rnext 0 1 2 3 0
Transmitter goes back 4
52
ACK Piggybacking in Bidirectional GBN
Transmitter Receiver
TransmitterReceiver
SArecent RA next
SBrecent RB next
In bi-directional communication, ACKs are often piggybacked on data frames to reduce overhead.
53
Tf Tf
Tproc
TpropTprop
Tout
Choice of Timeout & Window Size
Timeout value should allow for: 2 Tprop + Tproc
A frame begins transmission right before the first frame arrives Tf
Next frame carries the ACK, Tf (piggy-back) Thus, timeout > 2 Tprop + 2 Tf + Tproc
Ws should be large enough to keep channel busy for Tout
54
Efficiency of Go-Back-N
if channel is error-free and Ws is large enough to keep channel busy
Assume Pf frame loss probability, time to deliver a frame is: tf if first attempt succeeds Tf + Wstf /(1-Pf) otherwise go back Ws and try again
)1()1(1
1
1
1
)1(
ffs
f
o
GBN
of
GBN
f
fsfff
f
fsfffGBN
PPW
n
n
R
t
nn
P
tWPtP
P
tWtPtt
Delay-bandwidth product determines Ws
1GBN
55
Improvement over Go-Back-N?
Go-Back-N repeats multiple frames when a few errors or losses occur
How about retransmitting only an individual frame? Selective Repeat ARQ
Timeout pinpoints individual frame Receiver maintains a window of acceptable SN Error-free, but out-of-sequence frames with SN within the
receive window are buffered Arrival of Rnext causes window to slide forward by 1 or more NAK causes retransmission of oldest un-acked frame
56
A
B
fr0
Timefr1
fr2
fr3
fr4
fr5
fr6
fr2
ACK1
fr8
fr9
fr7
fr10
fr11
fr12
ACK2
NAK2
ACK7
ACK8
ACK9
ACK10
ACK11
ACK12
ACK2
ACK2
ACK2
Selective Repeat ARQ
57
Transmitter
Buffers
Slast Slast+ Ws-1
...Send Window
Srecent
Framestransmittedand ACKed
Timer Slast
Slast+ 1
Srecent
Slast+ Ws - 1
Timer
Timer
...
...
Selective Repeat ARQ
Framesreceived
Receiver
Receive Window
Rnext Rnext + Wr-1
Rnext+ 1
Rnext+ 2
Rnext+ Wr- 1
...
Buffers
max Seq # accepted
58
Send & Receive WindowsTransmitter Receiver
01
2
i
i + Ws – 1
2m-1
Slast
sendwindow
i + 1
Moves k forward when ACKarrives with Rnext = Slast + k
k = 1, …, Ws-1
01
2
i
j + Wr – 1
2m-1
Rnext
receivewindow
j
Moves forward by 1 or more when frame arrives with
Seq. # = Rnext
59
What size Ws and Wr allowed?
Example: M=22=4, Ws=3, Wr=3
A
B
fr0Time
fr1 fr2 fr0
ACK1 ACK2 ACK3
Frame 0 resent
{0,1,2} {1,2} {2} {.}Send
Window
{0,1,2} {1,2,3}Receive Window
{2,3,0} {3,0,1}
Old frame 0 accepted as anew frame because it fallsin the receive window
60
Ws + Wr = 2m is maximum allowed
Example: M=22=4, Ws=2, Wr=2
A
B
fr0Time
fr1 fr0
ACK1 ACK2
Frame 0 resent
{0,1} {1} {.}Send
Window
{0,1} {1,2}Receive Window
{2,3}
Old frame 0 rejected because it falls outside the receive window
61
Why Ws + Wr = 2m works
The number of bits, m, is enough to label all outstanding frames.
Usually, Ws = Wr = 2m-1
01
2
Ws-1
2m-1
Slast
sendwindow
01
2Ws +Wr-1
2m-1
Rnextreceivewindow
Ws
62
Efficiency of Selective Repeat
# of transmissions required to deliver a frame is:tf / (1-Pf)
)1(1)1/(
ff
off
of
SR Pn
n
R
Pt
nn
63
Example: Impact Bit Error Rate on Selective Repeat
Efficiency 0 10-6 10-5 10-4
S&W 8.9% 8.8% 8.0% 3.3%
GBN 98% 88.2% 45.4% 4.9%
SR 98% 97% 89% 36%
GBN >> S&W for large delay-bandwidth product GBN becomes inefficient as error rate increases SR is the best. Efficiency drops as error rate increases
nf=10,000 bits, na=no=200 bitsp = 0, 10-6, 10-5, 10-4 and R = 1 Mbps & 100 ms
1 Mbps x 100 ms = 100000 bits = 10 frames → Use Ws = 11
64
Selective-Repeat:
Go-Back-N:
Stop-and-Wait:
L
P
n
Rtt
n
n
P f
f
procprop
f
a
fSW
1
1
)(21
)1(
f
f
fS
fGBN LP
P
PW
P
1
1
)1(1
1
)1(1)1( ff
ofSR P
n
nP
Comparison of ARQ Efficiencies
Assume na, no << nf, and L = 2(tprop+tproc)R/nf =(Ws-1).
For Pf≈0, SR & GBN same
For Pf→1, GBN & SW same
65
ARQ Efficiency Comparison
0
0.5
1
1.5
-9 -8 -7 -6 -5 -4 -3 -2 -1
- LOG(p)
Eff
icie
ncy
SelectiveRepeat
Go Back N 10
Stop and Wait100
Go Back N 100
Stop and Wait10
10-9 10-8 10-7 10-6 10-5 10-4 10-3 10-2 10-1
p
Delay-Bandwidth product = 10, 100
ARQ Efficiencies
66
Standard Data Link Layer Protocols:
PPP & HDLC (Chapter 5.5-6 in Leon-Garcia)
67
Physicallayer
Data linklayer
Networklayer
“Packet”
“Frame”
DLL
Physicallayer
Data linklayer
Networklayer
68
PPP: Point-to-Point Protocol
A data link layer protocol. Encapsulating IP packets over point-to-point links.
Router-router; Dial-up to router (PC to Internet service provider (ISP))
Functions: Provides Framing and Error Detection Link Control Protocols
Set up, configure, testing, maintain, terminate; Authentication: Password Authentication Protocol, etc.
Network Control Protocols Configure network layer protocols E.g., IP, IPX (Novell), Appletalk
69
• Can support multiple network protocols simultaneously• Specifies what kind of packet is contained in the payload
PPP Frame Format
Flag FlagAddress Control Information FCSProtocol01111110 011111101111111 00000011
CRC 16 or CRC 32
1 or 2 variable 2 or 4
All stations are toaccept the frame
HDLC Unnumbered frame
70
High-Level Data Link Control (HDLC)
Bit-oriented data link control Derived from IBM Synchronous Data Link
Control (SDLC)
71
Normal Response Mode Used in polling multidrop lines
Asynchronous Balanced Mode Used in full-duplex point-to-point links
HDLC Data Transfer Modes
PrimaryCommands
Responses
Secondary Secondary Secondary
Primary
Secondary
Commands Responses
Primary
Secondary
CommandsResponses
Mode is selected during connection establishment
72
HDLC Frame Format
Control field gives HDLC its functionality Codes in fields have specific meanings and uses
Flag: delineate frame boundaries Address: identify secondary station (1 or more octets) Control: purpose & functions of frame (1 or 2 octets) Information: user data; length not standardized Frame Check Sequence: 16- or 32-bit CRC
Flag FlagAddress Control Information FCS
73
Control Field Format
0 N(S) N(R)P/F
1 2-4 5 6-8Information Frame
N(R)P/F
Supervisory Frame
1 0 S S
Unnumbered Frame
P/F1 1 M M M M M
S: Supervisory Function Bits N(R): Receive Sequence Number N(S): Send Sequence Number M: Unnumbered Function Bits P/F: Poll/final bit used in interaction
between primary and secondary
Note: The information frames and supervisory frames allow HDLC to implement Stop-and-Wait, Go-Back-N, and Selective Repeat ARQ.
Note: The unnumbered frames implement control functions.
74
Primary A Secondaries B, C
B, RR, 0, P
B, I, 0, 0B, I, 1, 0B, I, 2, 0,F
X
B, SREJ, 1
C, RR, 0, P
C, RR, 0, F
B, SREJ, 1,P
B, I, 1, 0B, I, 3, 0B, I, 4, 0, F
B, I, 0, 5
Time
Example: HDLC Using Polling
A polls BRR=receive ready B sends 3 info
frames
A rejects fr1
A polls C
C nothing to send
A polls B, requestsselective retrans. fr1
B resends fr1Then fr 3 & 4
A send info fr0to B, ACKs up to 4
N(R)
N(S) N(R)
Address of secondary
75
I3 I4 I5 I6RNR5 RR6
HDLC Flow Control
Flow control prevents transmitter from overrunning receiver buffers.
Receiver can control flow by delaying acknowledgement messages.
Receiver can also use supervisory frames to explicitly control transmitter Receive Not Ready (RNR) & Receive Ready (RR)