Presentation for Stanford seminar "The Future of TCP: Train-Wreck or Evolution?"
Raises the issue of buffer-bloat in servers (before the "buffer-bloat" term was used)
by Tom Lyon of Nuova Systems
“The Internet” Essentially all network software relies on TCP/IP semantics “The network is the data center” In the data center, gigabits are “free” 105 times cheaper than WAN bandwidth Terabit class switches 10Gb endpoints TCP needs: High bandwidth Low Latency Predictability & Fairness
Data Center Ethernet Choice of congestion classes Lossy vs lossless Choice of storage transports TCP or F.C. (FCOE) Choice of hardware or software transport TOE w TCP, software FCOE, ...
Joint TCP was standardized in a much slower world ½ Second minimum retransmit timeout 20 micro-second RTT achievable today! Fast re-transmit algorithm only works for streams – more data being sent Most data center traffic is request/response – often single packets Packet loss hurts because TCP won't (not can't) respond fast enough
Center Gigantic, non-blocking switches are the norm Hundreds of ports, terabits of throughput Buffers and buffer management are the most costly part of the switch Link based flow control (“pause”) allows switch to push congestion back to its upstream neighbors If the upstream neighbor is the source server, then the congestion “Goes away” Or does it?
Any current x86 server can easily saturate a 1Gb Ethernet link with TCP traffic Many current servers can saturate 10Gb Ethernet links! Lossless classes cause the pipe to fill faster What happens when the first hop, the server's own Ethernet link, is the point of congestion?
Pipe If TCP doesn't “see” congestion (loss or ECN) then it will continue to increase its window to try to get more bandwidth in the network Lossless network => high throughput But... a single streaming connection will consume all available buffers Newer connections will have a hard time getting buffers => extreme unfairness The server needs good congestion management
“Everyone” knows that big, simple FIFO queues are a bad idea in routers What do servers have today? - big, simple FIFO queues! The queues are owned and maintained by the Ethernet NIC hardware Horrible unfairness can be demonstrated with only 2 TCP connections Many servers deal with 1000s of TCP connections
Place? With lossy Ethernet, TCP bandwidth can collapse due to stupidly high timeouts => Unpredictable performance With lossless Ethernet, TCP fairness can collapse due to stupid queuing policies => Unpredictable performance Data Center Managers hate unpredictability Ethernet standards have evolved, TCP needs to catch up TCP and Ethernet implementations must improve
The Earth is being paved by data centers Google, Microsoft, NSA, Walmart, Facebook, ... Improving TCP means more overall efficiency in the data center Heat, CO 2 , and radioactive waste are becoming measurable by-products of TCP inefficiency Fix TCP => Save the World!