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 (I come from a region whose inhabitants are known to be stubborn).
This page collects my efforts in this direction.
- For some explanations and technical ideas, see these slides: part 1: part 2:
- 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: 29. August 2013
Back to Michael's page