High-Level Languages for Low-Level Protocols

Iain Oliphant · 2008

Network protocols are often implemented in languages such as C which provide high efficiency but are difficult to maintain or extend. This project aims to show that by using a high-level language to develop a network protocol an implementation is more readable and modular and therefore is more maintainable and easier to extend. To demonstrate this an implementation of the Transmission Control Protocol (TCP) has been created in the high-level language Scala. TCP is a highly complex transport level protocol that is generally implemented in C inside operating system kernels. Scala is a relatively new programming language which allows programmers to code in either the functional or object-oriented style, or a combination of the two. The implementation relies heavily on the Actors model of concurrency, that Scala provides, to create a highly concurrent TCP. Scala offers a rich type system which has been utilised to represent the structures of TCP in a more accessible way and in a manner that provides encapsulation at each layer, improving the overall understandability of the system. This implementation is compared with the existing Linux and FreeBSD implementations to demonstrate the ways in which development of network protocols can be enhanced by using a high-level language.

Read the paper · More papers on PaperTik