In the grand effort to make Windows Server 2012 scale above and beyond the call of duty Microsoft has been addressing (potential) bottle necks all over the stack. CPU, NUMA, Memory, storage and networking.
Data Center TCP (DCTCP) is one of the many improvements by which Microsoft aims to deliver a lot better network throughput with affordable switches. Switches that can mange large amounts of network traffic tend to have large buffers and those push up the prices a lot. The idea here is that a large buffer creates the ability to deal with burst and prevents congestions. Call it over provisioning if you want. While this helps it is far from ideal. Let’s say it a blunt instrument.
To mitigate this issue Windows Server 2012 is now capable dealing with network congestion in a more intelligent way. It does so by reacting to the degree & not merely the presence of congestion using DCTCP. The goals are:
- Achieve low latency, high burst tolerance, and high throughput, with small buffer switches (read cheaper).
- Requires Explicit Congestion Notification (ECN, RFC 3168) capable switches. This should be no showstopper you’d think as it’s probably pretty common on most data center / rack switches but that doesn’t seem to be the case for the real cheap ones where this would shine …
- Algorithm enables when it makes sense to do so (low round trip times, i.e. it will be used inside the data center where it makes sense, not over a world wide WAN or internet).
To see if it is applied run Get-NetTcpConnection:
As you can see this is applied here on a DELL PC8024F switch for the CSV and LM networks. The internet connected NIC (connection of the RDP session) shows:
Yup, it’s East-West traffic only, not North-South where it makes no sense.
When I was prepping a slide deck for a presentation on what this is, does and means I compared it to the green wave traffic light control. The space between consecutive traffic lights is the buffer and the red light are stops the traffic has to deal with due congestion. This leaves room for a lot of improvement and the way to achieve this is traffic control that intelligently manages the incoming flow so that at every hop there is a green light and the buffer isn’t saturated.
Windows Server 2012 in combination with Explicit Congestion Notification (ECN) provides the intelligent traffic control to realize the green wave.
The result is very smooth low latency traffic with high burst tolerance and high throughput with cheaper small buffer switches. To see the difference look at the picture below (from Microsoft BUILD)of what this achieves. Pretty impressive. Here’s a paper by Microsoft Research on the subject
Hi, do you know if there are any benchmarks tests that can actually show the benefit using DCTCP ? (Except the one from Microsoft ofc 🙂
There are a couple to be found, but not that much data. I have it in production on my DELL PC8024F switches but what that contributes in particular along with all other enhancements is hard to say. I do notice that the Windows Server 2012 Networks stack rocks! The down side of ECN/DCTCP is that it’s not on the real cheap switches but otherwise very well performing switches like the PC5524/48 etc.
http://www.extremenetworks.com/libraries/whitepapers/WPCongestionManagementandBuffering_1856.pdf
http://www.ietf.org/proceedings/80/slides/iccrg-3.pdf
http://www.stanford.edu/~balaji/papers/11analysisof.pdf