The assignment deadline has passed. I hope everyone has completed it and enjoyed the experience. However, you can submit it after the deadline, subject to the late penalty outlined in the specification.
Please complete the myExperience surveys . The response rate so far is low (only 26% ). I am sure we can do better. We would appreciate your feedback.
The final exam is scheduled as follows:
The exam is in-person, invigilated and closed-book. You must bring your own laptop and install the Safe Exam Browser on it . Please check all the information for the exam here . There is a practice exam available that uses the safe exam browser. Make sure you try it out. Details are here .
I have created a final exam information page . Please read all the information provided here carefully, and be sure to check which content is examinable and which is excluded.
A practice final exam is available in Inspera. The Moodle link is posted on the Final Exam page. You can only sit this exam once, which will close in 2 hours + 15 minutes after you start the attempt. Please keep this in mind before attempting the exam. You should be able to view the correct answers in Inspera after you submit your attempt. I strongly encourage you to try the practice exam in Inspera to ensure that you are comfortable with the Inspera platform so that there are no surprises in the final exam.
I have also posted 2 PDF files of the exam (one with just questions, the other with questions and answers) on the Final Exam page.
Everyone is strongly encouraged to solve all the homework questions and engage in discussions on the forum.
I have arranged 5 exam consultation slots leading up to the exam dates. The schedule is here .
Have a good weekend, and good luck with your exam preparation.
Here are a few important announcements for next week, which will be the last teaching week of this term:
I know next week will be busy for everyone, but don't overwhelm yourself. Good luck with everything.
We've made a proxy available on the CSE servers to simulate UDP packet loss.
To run the proxy, the basic usage is:
3331 lossy_proxy <request_port> <forward_port>
Here’s what those ports mean:
Important: These two ports must be different — the proxy needs to sit between the clients and the server so it can forward (or drop!) messages appropriately — and the proxy must be running on the same host as your server and clients.
Say you run:
3331 lossy_proxy 49283 54923
That means:
By default, the proxy simulates a 10% chance of dropping messages in both directions (client → server and server → client). You can change this using the `-f` (forward drop rate) and `-r` (reverse drop rate) flags:
3331 lossy_proxy 49283 54923 -f 0.0 -r 1.0
This configures the proxy to:
Don't worry too much — the marking won't aggressively test extreme loss scenarios. As long as your system can handle the occasional dropped packet (1–2 per interaction), you’ll be fine.
The proxy also tunnels TCP connections , so you can still use it to test commands like `UPD` and `DWN`. Note that TCP traffic is not made unreliable — the proxy passes it through without simulating loss.