Improving the Internet's Transport Layer
The Internet's transport layer is now almost impossible to change; this is at least partially due to its lack of abstraction, which makes application designers choose protocols instead of services. Several years ago, I rather vaguely described a better approach in:
Michael Welzl: "A Case for Middleware to Enable Advanced Internet Services", Proceedings of Next Generation Network Middleware workshop (NGNM'04), co-located with Networking 2004, Athens, Greece, 14 May, 2004.
As a more prominent example, Bryan Ford and Jana Iyengar's "Breaking Up the Transport Logjam" paper also provides some more details about what a better Internet transport layer could look like; however, neither my old paper nor this one (nor any other one that I know of) explains how to make the move from today's Internet to such a new, better design.
I want to make that move, because I just can't accept that it should really be impossible to achieve a change. Note that I come from a region whose inhabitants are known to be stubborn... for some explanations and technical ideas, see these slides: part 1: part 2:
In a nutshell, I think that we must first of all get new protocols such as SCTP and DCCP deployed, for which we must make it as attractive and easy as possible to use these two protocols. This page collects my efforts in this direction.
- Stefan Jörer's master thesis proposes a new transport API design for the Internet. An abbreviated version is:
Michael Welzl, Stefan Jörer, Stein Gjessing: "Towards a Protocol-Independent Internet Transport API", FutureNet IV workshop in conjunction with of IEEE ICC 2011, 5-9 June 2011, Kyoto, Japan.
- Florian Niederbacher's master thesis has shown that significant performance gains can be attained by transparently mapping multiple TCP connections between the same host pair onto streams of a single SCTP association underneath the socket interface. An abbreviated version is:
Michael Welzl, Florian Niederbacher, Stein Gjessing: "Beneficial Transparent Deployment of SCTP: the Missing Pieces", IEEE GlobeCom 2011, 5-9 December 2011, Houston, Texas.
- Florian's master thesis has also shown that, using default parameters, the Linux SCTP implementation usually performs much worse than TCP. We have begun to fix this in a project called "A Better Linux SCTP", funded by the NL.Net foundation. The first outcome of this project is code for SCTP auto-buffer tuning, and the second is a (not yet 100% working) implementation of pluggable congestion control for SCTP. Also note that the Linux SCTP implementation has generally
improved (bugfixed, ..) since
- MulTFRC could be used to make DCCP more attractive.
- When using DCCP to stream video, Michael Schier has found some issues with the Linux implementation, which he fixed. These fixes are documented in his thesis, and in this paper:
Michael Schier, Michael Welzl: "Using DCCP: Issues and Improvements", accepted for publication, IEEE ICNP 2012, 30 October - 2 November 2012, Austin, Texas, USA.
Specifically, he extended the socket layer, improved the look-up table that is used in the implementation of the TCP equation, and incorporated history discounting. The first two changes are available here, as a patch against kernel 3.4.0-rc. The code for the third was unfortunately lost, but it was only a standard conformant implementation of an optional part of the DCCP spec.
Last update: 3. September 2012
Back to Michael's page