Wednesday, August 14, 2013

SIGCOMM2013: FCP: A Flexible Transport Framework for Accommodating Diversity

Presenter: Dongsu Han


The talk was about the flexible framework for network resource allocation, called FCP, that accommodates diversity by exposing a simple abstraction for resource allocation.  
Congestion control is concerned about resource allocation, which requires coordination among all participants to ensure high utilization and fairness.  Two different styles of congestion control cannot co-exist as they interfere with each other’s resource allocation.  There are two congestion control policies: end-to-end based (TCP) and router-assisted (XCP, RCP).  End-point based systems like TCP provides flexibility to deploy different algorithms and the notion of TCP friendliness provides a mechanism for co-existence between different algorithms and behaviors.  But router-assisted congestion control is more efficient than TCP in achieving high utilization, small delays and faster flow completion times.  So, the presenter presents the congestion control protocol – FTP, which combines the best of both the worlds.

They designed a protocol, which allows each domain to allocate resources (budget) to a host and make networks explicitly signal the congestion price. To ensure safe co-existence of different end-point resource allocation strategies, the system maintains a key invariant that the amount of traffic a sender can generate is limited by its budget, which is the maximum amount it can spend per unit time.
Each sender (host) is assigned a budget ($/sec), the amount, which it can spend per unit time. At the start of the flow, sender allocates part of its budget to the flow taking into account the traffic demands and application objectives.  The rate of each flow generated by the sender is equal to the budget allocated to it divided by the price for the path that the flow is traversing.  The network determines the congestion price ($/bit) for the each flow in the form of the feedback. The price of the path traversed by a flow is the sum of link prices. 
The also talked about preloading which helps in increasing or decreasing the budget amount per flow on a packet-by-packet basis.  

They compared FCP with other schemes (XCP and RCP) using packet level simulations. FCP convergence is faster than the other two for long running flows.  Average bottleneck link utilization was 99% with FCP, 93% with XCP and 97% in case of RCP. FCP handles mixed flow sizes much more gracefully and efficiently than RCP.

FCP accommodates diverse behaviors in resource allocation while utilizing explicit feedback. FCP maximizes end-point flexibility by simplifying the mechanism of coexistence. FCP’s explicit feed-back and feed-forward provides a generic interface for efficient resource allocation.

Q:  How do you allocate budget to a new flow?
A: We take from the existing flows and allocate to the new flow.

Q:  If you are aware of RUCN? And how is your approach different than them?
A: We use the similar idea where we attach the previous price to the packet header and the routers extract the price.  But the difference is that they are allocating budget over a long period of times like a month or billion periods but we allocate it for shorter duration. And here the unit is $/sec, with every second you get this budget, the constant streaming rate of budget, that’s the difference!

Q: Why can’t you achieve coexistence using multiple queues?
A: Because that is not scalable.