Course Name Advanced Networked Systems
Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
Assessed Coursework
Course Name Advanced Networked Systems – ANS(H)
COMPSCI 4091
% Contribution to final
course mark
20%
Solo or Group Solo ✓ Group
Anticipated Hours 20 hours per person
Submission Instructions
See ‘What to submit’ on page 3
Please Note: This Coursework cannot be Re-Done
Code of Assessment Rules for Coursework Submission
Deadlines for the submission of coursework which is to be formally assessed will be published in course
documentation, and work which is submitted later than the deadline will be subject to penalty as set out below.
The primary grade and secondary band awarded for coursework which is submitted after the published deadline will
be calculated as follows:
(i) in respect of work submitted not more than five working days after the deadline
a. the work will be assessed in the usual way;
b. the primary grade and secondary band so determined will then be reduced by two secondary bands
for each working day (or part of a working day) the work was submitted late.
(ii) work submitted more than five working days after the deadline will be awarded Grade H.
Penalties for late submission of coursework will not be imposed if good cause is established for the late submission.
You should submit documents supporting good cause via MyCampus.
Penalty for non-adherence to Submission Instructions is 2 bands
2 Continued Overleaf/
Advanced Networked Systems – ANS(H)
Assessed Exercise: 2021-22
Date issued 07/02/22
Final submission deadline 18/03/2022
This is the main exercise for the ANS(H) module; it is worth 20% of the assessment for the course
(the remaining 80% is for the Spring examination).
Description
You are asked to demonstrate and measure the effects of congestion occurring in the below networked
topology using Mininet. Having multiple paths leading to the same destination offers redundancy and
the possibility of exploring load balancing capabilities. However, a generic controller will not use such
features if simply following the default flow rule installation. You need to modify the controller to
achieve load-balancing through using all the available paths between s1 and s6.
The links should be configured with a maximum bandwidth of 10Mbps, a 2ms latency, and a queue size
of 8. The above values will help demonstrate what would happen in links with limited capacity, as
expected in a real network. The host IP and MAC addresses should be allocated according to their id
with the prefix being 10.0.0.X and 00:00:00:00:00:0X, respectively, where X reflects the host id number
(e.g., for host h5: 10.0.0.5, 00:00:00:00:00:05). The controller will be implemented using Ryu and
OpenFlow1.3 to install/modify rules to the switches. You should use NetworkX to calculate paths and
other routing decisions.
During the first stage of this assessment, you need to deploy the above topology and install the
corresponding flow rules using the material from labs 5 and 6. Generate TCP and UDP traffic in separate
experiments, initially with varying rates from one host, and then by simultaneously using more than
one host. Multiplexing different types of traffic is not required. You can obtain the measurements either
through using standard tools (e.g., iperf3, tc, tcpdump) or Ryu’s API. Report your findings on traffic
patterns, losses, buffer overflows, and other statistics you think are important/interesting. The number
of hosts and links that are tested does not need to be exhaustive, just enough to demonstrate congestion.
ANS(H) 2021-2022 Assessed Exercise
3 END/
Once you have identified certain shortcomings stemming from the controller in-use, you need to re-
write parts of the controller (or start from scratch, if you prefer) in order to mitigate the issues that
impact performance. This is the second stage of the assessment. More specifically, you should use built-
in load-balancing features that are enabled using specific OpenFlow tables and actions. Consult the
documentation of Ryu API, the OpenFlow Specification, OvS, and NetworkX, as well as any official
documentation publicly available from these sources.
You will need to write a brief report (2000 words max) which will include your findings, reasoning,
how your code works, and the achieved results.
Hint
You should start from small-scale experiments before deploying your controller in the above topology.
Installing CLI rules in the beginning can help you identify what is/isn’t working and will help you
develop the controller with fewer launches of the entire setup and topology which can take time. When
your controller is configured to enable load balancing, some measurements might not be impacted as
much as you might have expected. You should provide an explanation of why this happens in the report.
Assessment
Implementation (70%):
Marks will be awarded based on the variety of the tools you have used to test and measure different
aspects of congestion (losses, overflows, etc). Your controller will be marked based on whether it
achieves load-balancing, how efficiently it calculates and subsequently installs the rules, and how it can
handle network changes and different topologies. Marks will also be awarded for professionally written
code with comments, etc.
Report (30%): Marks will be awarded for coherent reports that address the main points of the relevant
sections outlined above. Specifically, the issues that have been identified for the first/default controller
configuration and the rationale behind your experiments. Explanations of how each tool was used to
achieve the outcome are also expected. You should include measurements of the controller you
developed and reflections on behaviour and performance. Report any omissions and incomplete
implementations.
What to submit
Coursework will be submitted electronically via Moodle no later than 16.30 on Friday, 18th March
2022. Submission links will be provided on Moodle ANS page for the following items:
• Softcopy version of your system – all of the source code for your system (Python files, launch
scripts, etc.) should be produced as a single .zip file, called .zip. The archive should also
contain a text file describing how your system should be tested starting from executing the source
code included in the submitted .zip file, etc.
• Softcopy version of your report – a single .pdf file called GUID.pdf.