Implementation of UDP tunnelling to restructure the Internet protocol stack
Generic UDP Encapsulation (GUE) has been proposed by Google and Facebook to make data flows and a virtual network identifier visible within data centre networks so that diverse routing can be applied for robustness. Previously we had proposed a very similar protocol, called Generic UDP Tunnelling (GUT), to enpsulate useful new protocols so they could traverse the public Internet without being blocked by various "middleboxes" in the Internet, e.g. home routers, performance enhancers, firewalls, etc.
A new minimalist protocol called GUT-less has been designed that draws on both of the above and solves other enduring problems such as extensibility of the Internet Protocols (IPv4 and IPv6) themselves. This work also contributes to efforts to restructure Internet protocols to enable more co-operation between end-hosts and the network.
The primary aim is to implement GUT-less. The protocol is extremely simple but also extremely powerful. Most programming will be user-level, but some kernel programming (in Linux) will be necessary to slightly modify UDP checksum behaviour. Code can be based on the pre-existing open source implementation of GUT.
The project builds in stages, so that some success can be assured at each step, while more capable students can still be stretched. Step #1: Implementation of base protocol and functional testing; Step #2: Design of application programming interface (API) to control extensibility. Step #3: implementation and functional testing of extensibility; Step #5: Middlebox traversal testing (step #5 is likely to be undertaken by colleagues).
Whatever stage is reached, a write-up as a research paper submission is expected as well as the thesis write-up. After the project, there may be continuing opportunities to downstream the code into mainline Linux and/or to standardise the protocol at the IETF.
- Best practice in Linux kernel and user-level programming
- Deeper understanding of operating systems, particularly networking
- API design
- Internet protocol design and extensibility: UDP, IPv4, IPv6, SCTP, etc
- Writing a top-flight research paper
- Good programming skills
- Good grounding in operating systems
- Good grounding in Internet protocols
- Interest in protocol architecture and research