The Assignment

There will be only one assignment this semester. The submission deadline is 5 pm, Thursday 28th March, 2024.

Topic

The assignment concerns how easy it is to make changes to the network stack in Linux.

You are asked to look at an evolving protocol implementation in Linux (by which I mean code which is being regularly changed because the protocol is new to Linux), namely Multipath TCP.

In your report, you will discuss whether the evolving code for implementing this new feature of the Linux network stack would be better maintained using the conventional approach (as used for “regular” TCP) of including the code in the monlithic kernel (e.g., this file) or by using newer methods.

Description

Briefly describe MPTCP and its current implementation status in the Linux kernel.

Discuss the options for adding protocol features in the Linux kernel

  • “hardcoded” additions to the monolithic kernel

  • Protocol handlers loaded as loadable modules

  • use of eBPF

  • any other techniques? (Rust?)

Then discuss which of these approaches would be best suited to maintaining the MPTCP implementation, and which would be suitable for implementing a completely new layer 4 protocol (say multipath UDP).

Your report should include illustratory fragments of code or pseudocode or lists of procedures to follow showing how new functionality can be added to the kernel using the various approaches.

Optionally, if you have root access to a Linux box used exclusively for development (so not your main laptop!), you can demonstrate running such code on that box, and comment on build times, etc. This is not manadatory - an entirely ‘paper-based’ approach to the assignment is equally valid.

Example Report Layout

A possible report layout might be as follows. The angle brackets (<>) are placeholders for specific text. Use IEEE citation style for your references, please,

  1. Introduction

  2. Multipath TCP
    1. Protocol Features

    2. Status in Linux

  3. Kernel Modification in Linux
    1. <Approach 1>

  4. Maintaining MPTCP in the kernel
    1. Strengths and weakness of approaches
      1. <Approach 1>

  5. Recommended Approach
    1. <Defence of Recommendation>

    2. <Comments on ots suitability for beand new projects (e.g., MPUDP)

  6. Conclusions

Appendix A

Appendix B

References

Bear the marking scheme in mind when deciding how to spend your time on the assignment - don’t spend too much time chasing marks in any one category.

You are invited to discuss approaches to solving the problem on the blog but your work and your report must be your own. If you are unclear on the boundary between appropriate discussion of general principles and excessive collaboration on what is supposed to be a solo assignment, ask me for clarification of the specific issue via the blog.

DO not paste graphics into your report without attribution. That constitutes plagiarism. Any figures should be your own work.

Report

Maximum 15 A4 pages, not inluding the list of references, or any appendices containing code or algorithm descriptions. A short but well-written report will score highly on writing style - do not feel compelled to write that many pages if you can write a more concise report. The document structure (section titles, etc.) is your own choice, but bear the marking scheme in mind.

Marking Scheme

Mark Distribution

Element

Mark (%)

Background Knowledge and Literature Survey

20%

Quality of Referencing and Citations

20%

Level of Understanding of Protocols Demonstrated.

20%

Quality of Defence of Approach Recommended

20%

Conclusions

10%

Writing Style and Report Quality

10%

Total

100%

Assistance

Seek assistance via the blog (and offer assistance if you can) but remember that your report and (except where clearly cited) any code, algorithms you include must be your own work.

Submission

Submission instructions:

Reports must be submitted electronically using Loop. See link at the foot of this page.

  • Your report must be uploaded in PDF format.

  • Make sure that the name of the file includes your name and student number (e.g., “S2 Assignment - Joe Bloggs - 12345678.pdf”).

  • Ensure that any fonts used by your report are embedded in the PDF file.
    • (In Word, if saving as PDF, you need to verify that the option “ISO 19005-1 compliant (PDF/A)” is enabled

    • Google how to do this for your particular version of Word).

  • Do NOT zip, tar, or otherwise compress files before uploading.

  • A copy of each of your source code files (if any) in plain text format should also be uploaded.
    • Make sure that your name appears in the comments at the start of each file

    • Information should be provided on how to compile, link or otherwise produce executable code from your source code.

All reports must be accompanied by a signed cover page. No marks will be awarded to any unsigned report.

Resit Assignment¶

Details to follow