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