Towards multipath TCP
Sun, 08/09/2009 - 22:24 by Olivier Bonaventure • Categories:
The Transmission Control Protocol (TCP) is one of the oldest and most important protocols used in today's Internet. TCP was designed as the same time as IPv4 and the basics of TCP are still the same as when RFC793 was published. Since 1981, TCP has been modified slowly in a backward compatible manner. These modifications include :
- some clarifications in RFC1122
- the timestamp and large windows extensions in RFC1323
- the TCP congestion control scheme, proposed by Van Jacobson in his seminal SIGCOMM88 paper and implemented in BSD and later documented by the IETF in RFC2001
- Explicit Congestion Notification, initially proposed and implemented for Decbit in 1988 and still not deployed on today's Internet
- different types of selective acknowledgementsvarious extensions defined by the TCPM IETF working group
When work on IPv6 started, the IETF chose to only change IP and leave TCP as it is and only changed the computation of the TCP checksum when running over IPv6. Later, several protocols of the transport layer have been designed :
- the Stream Control Transmission Protocol (SCTP) initially designed to transport signalling messages for VoIP protocols. Its potential usages are much broader and SCTP has been implemented in several operating systems. However, the lack of support for SCTP in middleboxes such as NAT or firewalls make it difficult to deploy SCTP
- the RealTime Transport Protocol(RTP) which is mainly used by multimedia applications
- the Datagram Congestion Control Protocol (DCCP) provides different types of congestion control schemes suitable for datagram flows
During the last IETF meeting in Stockholm, a BoF on multipath TCP was successfully organised. This BoF builds on results obtained within the TRILOGY FP7 project that show that performance can be significantly improved in network where multiple paths exist between a source and a destination by allowing TCP to pool the resources available on these different paths. There are several ways to have multiple paths between a source and a destination. The simplest case is when one of the communicating hosts has several interfaces (e.g. an Ethernet and a Wifi or 3G interface) and thus different IP addresses. However, host-based IPv6 multihoming (shim6) is also a very interesting scenario for a multipath TCP. Work is ongoing within the Trilogy project to design this new TCP. Some prototypes are already being tested on the Internet.
For updates concerning mptcp, subscribe to the IETF mptcp mailing list