Multipath TCP

Introduction

In a bid to make networks more redundant, we’ve traditionally thrown more paths in to the mix so should one of them go down, traffic can still flow. In a basic layer 2 network, this would utilise Spanning Tree Protocol (STP) to ensure a loop free topology,meaning some links went unused, wasting available bandwidth. Etherchannels using stacked switches, VSS or vPC on pairs of Nexus switches allow all links to be used. Equal Cost Multipath (ECMP) can do a similar thing at layer 3, allowing multiple equal cost paths to be selected for routing.

Multipath TCP is a backwards compatible modification to TCP that allows multiple connections between hosts at layer 4. Because this is at the transport layer, these connections can be sourced from different IP addresses e.g. your wired and wireless NICs simultaneously.

Multipath TCP

A key benefit of this approach is that you can have multiple links being used for the same TCP connection, increasing overall throughput for the same TCP flow. Links can be added or removed without affecting the overall TCP connection, which makes it ideal for mobile use, combining a Wi-Fi and mobile network.

It has uses elsewhere too. As opposed to an Etherchannel, which will only allow a TCP flow across a single link, Multipath TCP will allow a single flow across multiple interfaces, so this will likely become more popular in the data centre.

Summary

Multipath TCP is one of those “why didn’t we always do it that way” technologies but it will also be interesting to see if it sees wider adoption than the use cases outlined above.

See here for the RFC.

Till the next time.

Please let me know your thoughts!