Oppgaven er ikke lenger tilgjengelig

Improvement of the Linux SCTP API

Like TCP, the Stream Control Transmission Protocol (SCTP) is a general-purpose Transport Layer protocol. However, it also 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. Today, SCTP is supported by almost all major operating systems. Programming with SCTP is very similar to TCP, since it also provides a sockets API. This API has been published by the Internet Engineering Task Force (IETF) as RFC 6458, i.e. as Internet standard, recently.

The development of RFC 6458 shows a quite long history. Within more than 10 years, 33 draft versions have been published. Clearly, the large amount of draft versions has somewhat discouraged SCTP implementation developers to keep their APIs up to date. The FreeBSD SCTP implementation, developed mostly by the authors of the RFC, is obiously quite up to date. However, the largest deployment of SCTP is clearly by Linux distributions. Therefore, after having a "final" version of the API published as RFC, it would be quite useful to also have an up-to-date Linux SCTP implementation.

The subject of this masteroppgave will be to identify the out-of-date API functions in the Linux SCTP API. Mainly, this API is provided by a userland library, with some small parts also affecting the Linux kernel itself. Then, the goal is to update the API to become compatible to RFC 6458, i.e. programs written in an RFC-compliant way should work without changes also under Linux. Some SCTP applications are available for that purpose; they can be used in the NorNet testbed for evaluations. Also, contact to the main SCTP developers, to the RFC authors, as well as to the SCTP application developers is available. Due to the interest in having an up-to-date SCTP API available for Linux, a further goal is to contribute the updates to Linux SCTP. That is, it is supposed that in the future your work will be part of almost every Linux system!

This project is *your* chance to get involved into Linux SCTP 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 (dreibh@simula.no).



What you should know:

  • You should have some programming experience, preferably in C.


What you will do:

  • Identify the out-of-date parts of the Linux SCTP API.
  • Update the Linux SCTP API to RFC 6458.
  • Run some performance evalulations with existing SCTP software.
  • Contribute an interesting improvement to Linux SCTP.


What you will learn:

  • You will get to know the SCTP protocol, a state of the art transport protocol.
  • You will obtain an understanding of network programming in C.
  • You will learn about working with the SCTP protocol. 



Emneord: Linux, Kernel, Network, SCTP, Sockets API
Publisert 19. sep. 2012 16:08 - Sist endret 7. jan. 2013 14:19

Omfang (studiepoeng)