Thursday, August 25, 2016

Virtualized Congestion Control

Bryce Cronkite-Ratcliff (VMware / Stanford)
Aran Bergman (Technion)
Shay Vargaftik (Technion)
Madhusudhan Ravi (VMware)
Nick McKeown (Stanford)
Ittai Abraham (VMware)
Isaac Keslassy (VMware / Stanford / Technion)

Network operators are facing challenges to deploy new congestion control algorithms in a datacenter network. In particular, it is not trivial to deploy new algorithms such as DCTCP, TIMELY into a multi-tenant datacenter network where legacy tenants are not always able to upgrade to use new algorithms.

Instead of upgrading tenants, implementing a translation algorithm between legacy algorithms and new algorithms inside a vSwitch of a hypervisor can solve the problem. Hypervisor can easily modify flows from VMS by changing a bit in TCP header,  buffering packets, faking ACK packets, or implementing TCP proxy.

Enabling ECN (Explicit Congestion Notification) bit is not always possible in legacy VMs. As a result, legacy non-ECN flows perform poorly because non-ECN packets can be dropped at a switch when competing with ECN packets. By translating non-ECN packets to ECN packets can solve the problem. On transmit path, hypervisor marks packets to be ECN enabled. On receive path, upon receiving ECE packet, the hypervisor changes the window size accordingly.  Further, vCC also enables application-specific congestion control algorithms to be applied to particular flows.

Q: There are companies that do TCP header modifications. How is this work different from middleboxes?
A: We are proposing several techniques just other than TCP header modifications for congestion control translation.

Q: Could be done outside the server as a middlebox.
A: With middle boxes, you can only to TCP header modifications. You can do more with hypervisors

Q: Is there a cleaner way to do this?
A: Yes, there could be. But, it might not get too complicated if you do this way.

Q: Overhead against Open vSwitch (OVS)?
A: We don't use OVS, and we don't have any numbers for OVS yet.

Q: What are the limitations of header modifications. What can't you do?
A: Causing the guests to send if you go more aggressively than normally you would.

Q: What about UDP flows?
A: You might be able to. But requires different techniques.