Presented by Rajan Includes slides presented by Andrew Sprouse, Northeastern University

Presented by Rajan
Includes slides presented by Andrew Sprouse, Northeastern University
CISC 856 TCP/IP and Upper Layer Protocols
Date:May 03, 2011
References
 Low Extra Delay Background Transport (LEDBAT)
draft-ietf-ledbat-congestion-04.txt
 LEDBAT: the new BitTorrent congestion control
protocol - Dario Rossi, Luca Muscariello, Computer
Communications and Networks (ICCCN), 2010
Proceedings of 19th International Conference
Peer to peer computing
• Tasks or workloads
partitioned between peers.
• Peers are both suppliers and
consumers of resources.
BitTorrent
• A peer-to-peer file transfer protocol
• Very popular today.
[2009]
BitTorrent mechanism:
• Files are broken into pieces.
– Users each download different pieces from the
original uploader (seed).
– Users exchange the pieces with their peers to
obtain the ones they are missing.
• This process is organized by a centralized
server called the Tracker.
 1. Seeder generates a
torrent file
 Uploads torrent to a
web server.
 Seeder – A client
sharing 100% of the
shared file.
 2. The seeder notifies
the tracker that it is
sharing the file
described in the
torrent file.
 3. A bitTorrent user
downloads the torrent
file from the web
server
 bitTorrent user – client
downloading the
shared file from the
seeder.
 4. The bitTorrent user
connects to the
tracker specified in the
torrent file.
 The tracker returns a
list of other peers who
are sharing the file.
 5. The bitTorrent user
connects to its peers
to retrieve pieces of
the files.
{1,2,3,4,5,6,7,8,9,10}
Seeder:
A
{}{1,2,3}
{1,2,3,5}
{}
{1,2,3}
{1,2,3,4}
{1,2,3,4,5}
Downloader
Downloader
B
C
Motivation
User
A
downloading
files
Send buffer of
modem
Modem
User
B
checking
email
Motivation
• Fair?
– BitTorrent traffic - background transfers.
– Need higher priority than checking mail.
• Why such unfairness?
– BitTorrent uses multiple TCP connections.
– More connections, the larger share of the bandwidth
BitTorrent gets.
• Problems:
– Apart from priority, TCP fills buffer, increasing delay.
Motiivation
• Traditional solution
– Cap the upload rate of the BitTorrent client to 80%
of the up-link capacity.
• Disadvantage:
– Only 20% for interactive traffic.
– 20% wasted if no interactive traffic.
Goals
LEDBAT Overview
A
B
Timestamp
Ack. delay
Ack. delay
•base_delay
•queuing_delay
•off_target
•cwnd
One way delay:
• LEDBAT use one-way delay to estimate
queuing delay.
• Why one way delay?
– Avoid reverse path congestion.
Base delay & Queuing delay:
A
Remote_timestamp
=Time.now()
Current_delay =
Ack delay
base_delay =
min(current
delay ,
base_delay)
Queuing delay=
current delay base delay
B
Ack delay =local timestamp
– remote timestamp
Base delay estimate
• End-to-end delay:
– Transmission delay
– Propagation delay
– Processing delay
– Queuing delay
Barring noise,
these 3 delays
are constant
Initial estimate of base delay:
A
Router
B
• Initial base_delay = infinity
• No queuing delay.
– Acknowledgement Delay = Transmission delay +
Propagation delay + Processing delay
– Base_delay = min(infinity, Acknowledgement delay)
TARGET, off_target and cwnd
• TARGET is the maximum queuing delay that LEDBAT
tolerates.
• Off_target = TARGET - queuing delay.
– For example if TARGET = 20 ms
– If queuing delay > 20, then sender rate is decreased
– If queuing delay < 20, then sender rate is increased
• off_target < 0 , decrease sender rate.
• off_target > 0, increase sender rate.
• cwnd += GAIN * off_target / cwnd
– Where GAIN = the rate at which the congestion window
responds to changes in queuing delay.
Max Rampup rate
• fastest increase if and only if queuing = 0
• Sender rate is 1 MSS per RTT as in TCP.
Halves on congestion
• in case of loss, LEDBAT should behave like TCP
• halve its congestion window
Controller
• A proportional-integral-derivative (PID) is used
to govern dynamic of the congestion window.
• Controller is characterized by 2 parameters:
– TARGET set to 25 ms
– GAIN = 1/TARGET
• queuing > target → slower sender rate
• queuing < target → faster sender rate
• queuing ≈ target → steady (stability)
TCP
A
B
A
B
LEDBAT
ssthreshold
=4
Additive
Increase
starts
TARGET =4
Example
• Settings:
– Packet size = 1500 bytes
– All flows have same RTT = 50ms. (one way base
delay = 25ms)
– Link capacity = 10 Mbps
– Buffer size = 40 packets.
– TARGET = 20 packets
LEDBAT
source
Modem
TCP source
LEDBAT performance
LEDBAT against TCP:
at t =0
In both case, the flow starts in
the same time.
LEDBAT vs LEDBAT
0 2
4
6
8 10 12
time
14
Micro Transport Protocol
• UDP-based variant of the bitTorrent peer to
peer file sharing protocol.
• congestion control algorithm used by µTP,
known as Ledbat
ver
type
extension
Connection_id
Timestamp_microseconds
Timestamp_difference_microseconds
Wnd_size
Seq_nr
Ack_nr