You are on page 1of 60

Peer-to-Peer Protocols

Peer-to-Peer Protocols
Peer-to-Peer Protocols and Service Models
ARQ Protocols and Reliable Data Transfer
Overview
 Peer-to-Peer protocols: many protocols involve the
interaction between two peers
 Service Models are discussed & examples given
 Detailed discussion of ARQ provides example of
development of peer-to-peer protocols
 Data Link Layer
 HDLC protocols
Peer-to-Peer Protocols and
Service Models
Peer-to-Peer Protocols



 Peer-to-Peer processes
execute layer-n protocol
to provide service to
n + 1 peer process n + 1 peer process layer-(n+1)

 Layer-(n+1) peer calls


SDU SDU layer-n and passes
PDU Service Data Units
n peer process n peer process (SDUs) for transfer

 Layer-n peers exchange


Protocol Data Units
(PDUs) to effect transfer
n – 1 peer process n – 1 peer process
 Layer-n delivers SDUs to
destination layer-(n+1)
peer


Service Models
 The service model specifies the information transfer
service layer-n provides to layer-(n+1)
 The most important distinction is whether the service
is:
 Connection-oriented
 Connectionless
 Service model possible features:
 Arbitrary message size or structure
 Sequencing and Reliability
 Timing, Pacing, and Flow control
 Multiplexing
 Privacy, integrity, and authentication
Connection-Oriented Transfer
Service
 Connection Establishment
 Connection must be established between layer-(n+1) peers
 Layer-n protocol must: Set initial parameters, e.g. sequence
numbers; and Allocate resources, e.g. buffers
 Message transfer phase
 Exchange of SDUs
 Disconnect phase
 Example: TCP, PPP

n + 1 peer process n + 1 peer process


send receive

SDU Layer n connection-oriented service SDU


Connectionless Transfer Service
 No Connection setup, simply send SDU
 Each message send independently
 Must provide all address information per message
 Simple & quick
 Example: UDP, IP

n + 1 peer process n + 1 peer process


send receive

SDU Layer n connectionless service


Message Size and Structure
 What message size and structure will a
service model accept?
 Different services impose restrictions on size &
structure of data it will transfer
 Single bit? Block of bytes? Byte stream?
 Ex: Transfer of voice mail = 1 long message
 Ex: Transfer of voice call = byte stream

1 voice mail= 1 message = entire sequence of speech samples


(a)

1 call = sequence of 1-byte messages


(b)
Segmentation & Blocking
 To accommodate arbitrary message size, a layer may
have to deal with messages that are too long or too
short for its protocol
 Segmentation & Reassembly: a layer breaks long
messages into smaller blocks and reassembles these
at the destination
 Blocking & Unblocking: a layer combines small
messages into bigger blocks prior to transfer
1 long message 2 or more short messages

2 or more blocks 1 block


Reliability & Sequencing
 Reliability: Are messages or information
stream delivered error-free and without loss
or duplication?
 Sequencing: Are messages or information
stream delivered in order?
 ARQ protocols combine error detection,
retransmission, and sequence numbering to
provide reliability & sequencing
 Examples: TCP and HDLC
Pacing and Flow Control
 Messages can be lost if receiving system
does not have sufficient buffering to store
arriving messages
 If destination layer-(n+1) does not retrieve its
information fast enough, destination layer-n
buffers may overflow
 Pacing & Flow Control provide backpressure
mechanisms that control transfer according to
availability of buffers at the destination
 Examples: TCP and HDLC
Timing
 Applications involving voice and video generate
units of information that are related temporally
 Destination application must reconstruct temporal
relation in voice/video units
 Network transfer introduces delay & jitter
 Timing Recovery protocols use timestamps &
sequence numbering to control the delay & jitter in
delivered information
 Examples: RTP & associated protocols in Voice
over IP
Multiplexing
 Multiplexing enables multiple layer-(n+1)
users to share a layer-n service
 A multiplexing tag is required to identify
specific users at the destination
 Examples: UDP, IP
Privacy, Integrity, &
Authentication
 Privacy: ensuring that information transferred
cannot be read by others
 Integrity: ensuring that information is not
altered during transfer
 Authentication: verifying that sender and/or
receiver are who they claim to be
 Security protocols provide these services
 Examples: IPSec, SSL
End-to-End vs. Hop-by-Hop
 A service feature can be provided by implementing a
protocol
 end-to-end across the network
 across every hop in the network
 Example:
 Perform error control at every hop in the network or only
between the source and destination?
 Perform flow control between every hop in the network or
only between source & destination?
 We next consider the tradeoffs between the two
approaches
Error control in Data Link Layer
Packets Packets
(a)  Data Link operates
Data link Data link
over wire-like,
layer Frames layer directly-connected
A B systems
Physical Physical
layer layer
 Frames can be
corrupted or lost, but
arrive in order
(b)
 Data link performs
3
error-checking &
12 3 21 12 21
Medium retransmission
2  Ensures error-free
A B 1
packet transfer
1 Physical layer entity between two systems
2 Data link layer entity

3 Network layer entity


Error Control in Transport Layer
 Transport layer protocol (e.g. TCP) sends segments across
network and performs end-to-end error checking &
retransmission
 Underlying network is assumed to be unreliable

Messages Messages

Transport Segments Transport


layer layer
Network Network Network Network
layer layer layer layer
Data link Data link Data link Data link
layer layer layer layer
End system End system
A Physical Physical Physical Physical
layer layer
B
layer layer

Network
 Segments can experience long delays, can be lost, or
arrive out-of-order because packets can follow different
paths across network
 End-to-end error control protocol more difficult

C
1 2 3 2 1

End System
α End System
β
4 3 21 12 3 2 1 1 2 3 2 1 1 2 3 4
Medium
2
A B 1
Network

3 Network layer entity

4 Transport layer entity


End-to-End Approach Preferred
Hop-by-hop
Hop-by-hop
cannot ensure
E2E correctness
Data Data Data Data
1 2 3 4 5 Faster recovery
ACK/ ACK/ ACK/ ACK/
NAK NAK NAK NAK

Simple
End-to-end
ACK/NAK
inside the
network

More scalable
1 2 3 4 5 if complexity at
Data Data Data Data the edge
ARQ Protocols and Reliable
Data Transfer
Automatic Repeat Request (ARQ)
 Purpose: to ensure a sequence of information
packets is delivered in order and without errors or
duplications despite transmission errors & losses
 We will look at:
 Stop-and-Wait ARQ
 Go-Back N ARQ
 Selective Repeat ARQ
 Basic elements of ARQ:
 Error-detecting code with high error coverage
 ACKs (positive acknowledgments
 NAKs (negative acknowlegments)
 Timeout mechanism
Stop-and-Wait ARQ
Transmit a frame, wait for ACK
Error-free
Packet
packet
Information frame
Transmitter Receiver
Timer set after (Process A) (Process B)
each frame
transmission Control frame

Header
CRC
Information Header
packet CRC
Information frame Control frame: ACKs
Need for Sequence Numbers
(a) Frame 1 lost Time-out
Time
A Frame Frame Frame Frame
0 1 1 2
ACK ACK
B

(b) ACK lost Time-out


Time
A Frame Frame Frame Frame
0 1 1 2
ACK ACK ACK
B

 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?
 Answer: Add frame sequence number in header
 Slast is sequence number of most recent transmitted frame
Sequence Numbers
(c) Premature Time-out

Time-out
Time
A Frame
0 Frame Frame Frame
ACK 0 1 2
ACK
B

 The transmitting station A misinterprets duplicate ACKs


 Incorrectly assumes second ACK acknowledges Frame 1
 Question: How is the receiver to know second ACK is for frame 0?
 Answer: Add frame sequence number in ACK header
 Rnext is sequence number of next frame expected by the receiver
 Implicitly acknowledges receipt of all prior frames
1-Bit Sequence Numbering
Suffices
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Slast Rnext
Timer

Transmitter Slast Receiver


A B
Rnext

Global State: Error-free frame 0


(Slast, Rnext) (0,0) (0,1)
arrives at receiver
ACK for
ACK for frame 0
frame 1 arrives at
arrives at transmitter
transmitter Error-free frame 1
arrives at receiver
(1,0) (1,1)
Stop-and-Wait ARQ
Transmitter Receiver
Ready state Always in Ready State
 Await request from higher layer for  Wait for arrival of new frame
packet transfer  When frame arrives, check for errors
 When request arrives, transmit  If no errors detected and sequence
frame with updated Slast and CRC number is correct (Slast=Rnext), then
 Go to Wait State  accept frame,
Wait state  update Rnext,
 Wait for ACK or timer to expire;  send ACK frame with Rnext,
block requests from higher layer  deliver packet to higher layer
 If timeout expires  If no errors detected and wrong
 retransmit frame and reset timer sequence number
 If ACK received:  discard frame
 send ACK frame with Rnext
 If sequence number is incorrect or if
errors detected: ignore ACK  If errors detected
 If sequence number is correct (Rnext  discard frame
= Slast +1): accept frame, go to
Ready state
Applications of Stop-and-Wait
ARQ
 IBM Binary Synchronous Communications
protocol (Bisync): character-oriented data
link control
 Xmodem: modem file transfer protocol
 Trivial File Transfer Protocol (RFC 1350):
simple protocol for file transfer over UDP
Performance Issues
 Stop and Wait ARQ works well on channels that
have low propagation delay.
 Becomes inefficient when the propagation delay is
much greater than the time to transmit a frame.
 Suppose we are transmitting 1000 bits long over a
channel that has a speed of 1.5Mbps and suppose
that the time that elapses from the beginning of the
frame transmission to the receipt of its
acknowledgement is 40ms.
 No. of bits that can be transmitted over the channel in 40ms =
60,000bits
 But Stop and wait protocol can transmit only 1000 bits in this
period of time,
 Efficiency = 1000/60,000 = 1.6%
Stop-and-Wait Efficiency
Last frame bit ACK
First frame bit enters channel arrives
enters channel Channel idle while transmitter
waits for ACK

A t

B t

First frame bit Receiver


arrives at Last frame bit processes frame
receiver arrives at and
receiver prepares ACK
 10000 bit frame @ 1 Mbps takes 10 ms to transmit
 If wait for ACK = 1 ms, then efficiency = 10/11= 91%
 If wait for ACK = 20 ms, then efficiency =10/30 = 33%
Delay Bandwidth Product
 Delay Bandwidth Product is the product of
the bit rate and the delay that elapses before
an action can takes place.
 i.e) the maximum number of bits that can be
transmitted at any given time.
 In Stop and wait protocol the Delay
Bandwidth Product can be viewed as a
measure of lost opportunity in terms of
transmitted bits.
Stop-and-Wait Model
t0 = total time to transmit 1 frame
A
tproc

B
frame
tprop tproc tack tprop
tf time

t0  2t prop  2t proc  t f  t ack bits/info frame

nfna bits/ACK frame


 2t prop  2t proc  
R R

channel transmission rate


S&W Efficiency on Error-free
channel no. of overhead bits
in a frame given by
Effective transmission rate: bits for header & CRC

number of informatio n bits delivered to destination n f  no


R0
eff   ,
total time required to deliver the informatio n bits t0
Effect of
Transmission efficiency: frame overhead
which
n f  no no
1 represents the
Reff t0 nf loss in
0    .
R R na 2(t prop  t proc ) R transmission
1  efficiency due to
nf nf the need to
Effect of ACK frame i.e) loss in
provide headers
efficiency due to the time
and CRC
required for the ack. Message. Effect of
na is the no. of bits in ACL/NAK Delay-Bandwidth Product where
frame Reaction Time = 2(t prop  t proc)
Example: Impact of Delay-
Bandwidth Product
nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits
2xDelayxBW 1 ms 10 ms 100 ms 1 sec
Efficiency

1 Mbps 103 104 105 106


88% 49% 9% 1%
1 Gbps 106 107 108 109
1% 0.1% 0.01% 0.001%

Stop-and-Wait does not work well for very high speeds


or long propagation delays
S&W Efficiency in Channel with
Errors
 Pf = probability frame arrives with error
 Let 1 – Pf = probability frame arrives w/o errors
 Avg. # of transmissions to first correct arrival is then 1/ (1–Pf )
 “If 1-in-10 get through without error, then 1 – Pf = 0.1, then
avg. 10 times has to be transmitted to get success”
 Avg. Total Time per frame is then tsw = t0/(1 – Pf) to a frame
through. n f  no
no
t0 1
Reff 1  Pf nf
 SW    (1  Pf )
R R na 2(t prop  t proc) R
1 
nf nf
Effect of
frame loss
Example: Impact Bit Error Rate
nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits
Find efficiency for random bit errors with p=0, 10 -6, 10-5, 10-4
1  Pf  (1  p)
nf
for large n f and small p

1 – Pf 0 10-6 10-5 10-4


Efficiency
1 Mbps 1 0.99 0.905 0.368
& 1 ms 88% 86.6% 79.2% 32.2%

Bit errors effect the performance of Stop and wait ARQ


dramatically
Go-Back-N
 Improve Stop-and-Wait by not waiting!
 Keep channel busy by continuing to send frames
 Allow a window of up to W s outstanding frames
 Use m-bit sequence numbering
 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
 Alternative: Use timeout
Go-Back-N ARQ
Go-Back-4: 4 frames are outstanding; so go back 4

fr fr fr fr fr fr fr fr fr fr fr fr fr fr Time
0 1 2 3 4 5 6 3 4 5 6 7 8 9
A

B
A A A out of sequence A A A A A A
C C C frames C C C C C C
K K K K K K K K K
1 2 3 4 5 6 7 8 9

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

 Frame transmission are pipelined to keep the channel busy


 Frame with errors and subsequent out-of-sequence frames are ignored
 Transmitter is forced to go back when window of 4 is exhausted
Window size long enough to cover round trip time
Time-out expires
Stop-and-Wait ARQ
fr fr fr Time
0 0 1
A

B
Receiver is A
looking for C
K
Rnext=0
1

Go-Back-N ARQ Four frames are outstanding; so go back 4


fr fr fr fr fr fr fr fr fr fr fr
0
Time
1 2 3 0 1 2 3 4 5 6
A

B A A A A A A
Receiver is Out-of- C C C C C C
looking for sequence K K K K K K
Rnext=0 frames 1 2 3 4 5 6
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
Go-Back-N Transmitter & Receiver
Transmitter Receiver

Send Window
... Receive Window

Frames
transmitted S
last Srecent Slast+W s-1
and ACKed
Frames
Buffers Rnext
received
oldest un-
Timer Slast
ACKed frame
Timer Slast+1 Receiver will only accept
... a frame that is error-free and
that has sequence number Rnext
Timer
Srecent most recent
transmission
When such frame arrives Rnext is
... incremented by one, so the
Slast+Ws-1 max Seq # receive window slides forward by
allowed one
Sliding Window Operation
Transmitter

Send Window m-bit Sequence Numbering


...

Frames
transmitted S 0
and ACKed
last Srecent Slast+W s-1 2m – 1 1

2
Transmitter waits for error-free
ACK frame with sequence
number Slast Slast
send
When such ACK frame arrives,
Slast is incremented by one, and
window i
the send window slides forward i + Ws – 1 i+1
by one
Maximum Allowable Window Size is W s = 2m-1
M = 22 = 4, Go-Back - 4: Transmitter goes back 4
fr fr fr fr fr fr fr fr Time
A 0 1 2 3 0 1 2 3

A A A A
B C C C C Receiver has Rnext= 0, but it does not
K K K K know whether its ACK for frame 0 was
1 2 3 4
received, so it does not know whether
Rnext 0 1 2 3 4 this is the old frame 0 or a new frame 0

M = 22 = 4, Go-Back-3: Transmitter goes back 3


fr fr fr fr fr fr Time
A 0 1 2 0 1 2

A A A
B C C C
K K K Receiver has Rnext= 3 , so it
1 2 3
rejects the old frame 0
Rnext 0 1 2 3
ACK Piggybacking in Bidirectional GBN
SArecent RA next
Transmitter Receiver
Receiver Transmitter
SBrecent RB next

“A” Receive Window “B” Receive Window

RA next RB next
“A” Send Window “B” Send Window
... ...

SA last SA last+WA s-1 SB last SB last+W B s-1


Buffers Buffers
Timer SA last Timer SB last

Timer SA last+1 SBlast+1


Note: Out-of- Timer
... ...
sequence error-free
Timer SArecent Timer SBrecent
... frames discarded
...
A A
after Rnext examined
Timer S last+W s-1 Timer SB last+W B s-1
Applications of Go-Back-N ARQ
 HDLC (High-Level Data Link Control): bit-
oriented data link control
 V.42 modem: error control over telephone
modem links
Required Timeout & Window Size
Tout
Tproc

Tprop Tf Tf Tprop

 Timeout value should allow for:


 Two propagation times + 1 processing time: 2 Tprop + Tproc
 A frame that begins transmission right before our frame arrives
Tf
 Next frame carries the ACK, Tf
 Ws should be large enough to keep channel busy for Tout
Required Window Size for
Delay-Bandwidth Product

Frame = 1250 bytes =10,000 bits, R = 1 Mbps

2(tprop + tproc) 2 x Delay x BW Window

1 ms 1000 bits 1

10 ms 10,000 bits 2

100 ms 100,000 bits 11

1 second 1,000,000 bits 101


Efficiency of Go-Back-N
 GBN is completely efficient, if W s large enough to keep
channel busy, and if channel is error-free
 Assume Pf frame loss probability, then time to deliver a frame
is:
 tf if first frame transmission succeeds (1 – Pf )
 tf + Wstf /(1-Pf) if the first transmission does not succeed Pf

Ws t f Ws t f
tGBN  t f (1  Pf )  Pf {t f  }  t f  Pf and
1  Pf 1  Pf
n f  no no
1
tGBN nf
GBN   (1  Pf )
R 1  (Ws  1) Pf

Delay-bandwidth product determines W s


Example: Impact Bit Error Rate on
GBN
nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits
Compare S&W with GBN efficiency for random bit errors with
p = 0, 10-6, 10-5, 10-4 and R = 1 Mbps & 100 ms
1 Mbps x 100 ms = 100000 bits = 10 frames → Use W s = 11
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%

 Go-Back-N significant improvement over Stop-and-Wait for


large delay-bandwidth product
 Go-Back-N becomes inefficient as error rate increases
Selective Repeat ARQ
 Go-Back-N ARQ inefficient because multiple frames
are resent when errors or losses occur
 Selective Repeat retransmits only an individual frame
 Timeout causes individual corresponding frame to be resent
 NAK causes retransmission of oldest un-acked frame
 Receiver maintains a receive window of sequence
numbers that can be accepted
 Error-free, but out-of-sequence frames with sequence
numbers within the receive window are buffered
 Arrival of frame with Rnext causes window to slide forward by
1 or more
Selective Repeat ARQ

fr fr fr fr fr fr fr fr fr fr fr fr fr fr Time
0 1 2 3 4 5 6 2 7 8 9 10 11 12
A

B
A A N A A A A A A A A A
C C A C C C C C C C C C
K K K K K K K K K K K K
1 2 2 2 2 2 7 8 9 1 1 1
0 1 2
Selective Repeat ARQ
Transmitter Receiver

Send Window Receive Window


...

Frames Frames
transmitted S received Rnext Rnext + W r-1
last Srecent Slast+ W s-1
and ACKed

Buffers Buffers
Timer Slast Rnext+ 1
Timer Slast+ 1 Rnext+ 2
...
Timer
Srecent ...
Rnext+ W r- 1 max Seq #
... accepted
Slast+ W s - 1
Send & Receive Windows
Transmitter Receiver

0 0
2m-1 1 2m-1 1

2 2
Rnext
Slast
send receive j
window i window
i
i + Ws – 1 i+1
j + Wr – 1
Moves k forward when ACK Moves forward by 1 or more
arrives with Rnext = Slast + k when frame arrives with
k = 1, …, W s-1 Seq. # = Rnext
Selective Repeat ARQ
Transmitter Blocking state
Ready state  When the send window is empty Srecent =
Slast +W s -1
 Await request from higher layer for  And the transmitter refuses to accept requests
packet transfer from the higher layers.
 When request arrives, transmit frame  If error free ACK frame is received with
with updated Srecent set to the lowest Rnext in the range between Slast and Srecent
number available in the send window , then the send window slides forward by
and CRC Slast = Rnext then the maximum send
 If Srecent = Slast +W s -1 Go to Blocking window number to Slast +W s -1 and then
State else remains in the ready state. transmitter changing to the ready state
 If error free ACK frame is received  If error free NAK frame is received with
with Rnext in the range between Slast Rnext in the range between Slast and Srecent
and Srecent , then the send window , then the frame with Sequence number
slides forward by Slast = Rnext or is retransmitted and then the send
outside the range between Slast and window slides forward by Slast = Rnext
Srecent , the frame will be discarded then the maximum send window number
 If error free NAK frame is received to Slast +W s -1 and the transmitter
with Rnext in the range between Slast changes to the ready state.
and Srecent , then the frame with  If error free ACK frame is received with
Sequence number is retransmitted Rnext outside the range between Slast and
and then the send window slides Srecent , the frame will be discarded and
forward by Slast = Rnext no further action will takes place.
 The maximum window number is Slast
+W s -1
Selective Repeat ARQ
Receiver
Always in Ready State
 Wait for arrival of new frame
 When frame arrives, check for errors
 If no errors detected and sequence number is in the range
Rnext to Rnext+W R-1, then the frame is accepted and buffered
and an acknowledgement frame is transmitted.
 The received number is Rnext and if Rnext +1 upto Rnext + k -1
have already been received, then the receive sequence
number is incremented to Rnext + k, the receive window slides
forward and the corresponding packets are delivered.
 If no errors detected and outside the range
 discard frame
 send ACK frame with Rnext
 If errors detected
 discard frame
What size Ws and Wr allowed?
 Example: M=22=4, Ws=3, Wr=3
Frame 0 resent
Send
{0,1,2} {1,2} {2} {.}
Window
fr0 fr1 fr2 fr0
A Time

B ACK1 ACK2 ACK3


Receive
{0,1,2} {1,2,3} {2,3,0} {3,0,1}
Window
Old frame 0 accepted as a
new frame because it falls
in the receive window
Ws + Wr = 2m is maximum allowed
 Example: M=22=4, Ws=2, Wr=2
Frame 0 resent
Send
{0,1} {1} {.}
Window
fr0 fr1 fr0
A Time

B ACK1 ACK2
Receive
{0,1} {1,2} {2,3}
Window
Old frame 0 rejected because it
falls outside the receive window
Why Ws + Wr = 2m works
 Transmitter sends frames 0  Receiver window starts at {0, …, W r}
to Ws-1; send window empty
 Window slides forward to
 All arrive at receiver {W s,…,W s+W r-1}
 All ACKs lost
 Receiver rejects frame 0 because it
 Transmitter resends frame 0 is outside receive window

0 0
2m-1 1 2m-1 1

Slast Ws +Wr-1 2
2

receive Rnext Ws
send window
window Ws-1
Applications of Selective Repeat
ARQ
 TCP (Transmission Control Protocol):
transport layer protocol uses variation of
selective repeat to provide reliable stream
service
 Service Specific Connection Oriented
Protocol: error control for signaling
messages in ATM networks
Efficiency of Selective Repeat
 Assume Pf frame loss probability, then number of
transmissions required to deliver a frame is:
 tf / (1-Pf)

n f  no
t f /(1  Pf ) no
 SR   (1  )(1  Pf )
R nf
Example: Impact Bit Error Rate on
Selective Repeat
nf=1250 bytes = 10000 bits, na=no=25 bytes = 200 bits
Compare S&W, GBN & SR efficiency for random bit errors
with p=0, 10-6, 10-5, 10-4 and R= 1 Mbps & 100 ms

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%

 Selective Repeat outperforms GBN and S&W, but


efficiency drops as error rate increases

You might also like