Concurrent Multipath Transfer for the Linux Kernel SCTP
The Stream Control Transmission Protocol (SCTP) is a general-purpose transport protocol like TCP. However, unlike TCP, it provides support for so-called multi-homing. That is, endpoints (e.g. PCs, mobile devices, etc.) may be connected to multiple networks simultaneously. SCTP uses this property for redundancy purposes, i.e. transmissions only utilise one of the paths and maintain the others as backup paths.
Clearly, when you have multiple paths available -- and also pay for them -- it seems to be useful to utilise all of them simultaneously to maximise data throughput. An extension providing this feature for SCTP is denoted as Concurrent Multipath Transfer for SCTP (CMT-SCTP). It is currently under discussion for standardisation within the Internet Engineering Task Force (IETF) as RFC. To support this standardisation process, the IETF relies on "running code". That is, there should be multiple independently-developed and interoperable implementations -- in order to show that the new standard is actually useful and working. Currently, there is only a kernel implementation for FreeBSD as well as an up-to-date simulation model in OMNeT++.
The subject of this masteroppgave will be to implement CMT-SCTP into the Linux Kernel and run some basic performance evaluations. As reference, you will have access to the two existing implementations. Also, contact to the main CMT-SCTP developers of both implementations is available. Particularly, this implementation is intended to be used in the context of the IETF standardisation process as well as for research on multi-homed transport protocol performance in the NorNet project. Therefore, a further goal is to contribute this protocol extension to Linux kernel SCTP. That is, it is supposed that your work will in the future be included in almost every Linux system!
This project is *your* chance to get involved into Linux kernel development and worldwide IETF protocol standardisation as well as into international, top-level research at the Simula Research Laboratory in Fornebu! Are you interested in this challenge? Do not hesitate to contact us!
For more information, please contact Thomas Dreibholz (firstname.lastname@example.org)
What you should know:
- You should have programming experience, preferably in C.
What you will do:
- Implement CMT-SCTP into the Linux kernel.
- Run initial performance tests with existing evaluation tools.
- Contribute an interesting extension to the Linux kernel.
What you will learn:
- You will get to know the SCTP protocol, a state of the art transport protocol.
- You will learn about the CMT-SCTP extension.
- You will obtain a understanding of kernel-level network programming in C.
- Dreibholz, Thomas: ``Evaluation and Optimisation of Multi-Path Transport using the Stream Control Transmission Protocol´´
- Dreibholz, Thomas et al: ``Implementation and Evaluation of Concurrent Multipath Transfer for SCTP in the INET Framework´´
- Iyengar, Janardhan et al: ``Concurrent Multipath Transfer using SCTP Multihoming over Independent End-to-End Paths´´
- NorNet -- A Programmable Testbed for Measurements and Experimental Networking Research