Home Page > > Details

COSC473 AssignmentHelp With ,Systems AssignmentGhostwriter ,Python Programming AssignmentDebug ,Python AssignmentHelp With Ghostwriter R Programming|Help With Processing

School of Science, RMIT University
COSC473 Introduction to Computer Systems
Semester 1, 2020
Assignment Two
Due Date: Friday, May 29th 2020 at 23:59PM
This is an individual assignment (200 marks) that contributes 20% of the total assessment.
Assignment modified on May 9 to allow tasks to be implemented separately.
All assignments will be checked with plagiarism-detection software; any student found to have
plagiarised would be subject to disciplinary action. Plagiarism includes submitting code that is not
your own or submitting text that is not your own. Allowing others to copy your work is also
plagiarism. All plagiarism will be penalised, there are no exceptions and no excuses. You have been
Referencing and EndNote
You must acknowledge all the sources of information you have used in your assignments and
research papers using an appropriate referencing style. Please find the instructions at
Before you submit anything, please read through the assignment specifications again carefully.
Check that you have followed all instructions. Also check that you have attempted all parts of all
Prepare the answers to this assignment in a single zip file for submission. Ensure your file is named
using a file naming convention that allows the marker to identify to whom it belongs. Failure to use
an acceptable file naming convention will result in a penalty of 10 marks for this assignment.
A penalty of 10% per day of the total marks will apply for each day late, including weekend. After
five days, you will receive zero marks.
What to submit and how to prepare the zip file
1. Create a folder and name it using your student number. For example, if your student number is
S1234567, please name your folder as 1234567 (without “S”).
2. Add the following files (one .pdf file and two .py per task files named 1234567_senderN.py
and 1234567_receiverN.py, where N is the number of the task) into the folder, please do NOT
use subfolders.
1) Report in a PDF file — 1234567.pdf, including
• Protocol design: Provide diagrams which should the structure of your packets and
Page 2 of 5
frames, list the codes that you use to designate various states or action, and provide a
list of rules governing each action and response, as well as a state diagram.
• Description: A brief description of what you have done, including any choices/tradeoffs
you have made, and how you have used the LEDs to indicate progress and status. This
should be no more than 1 page of text.
• A link to the demo video stored in your RMIT OneDrive: The demo video should be no
more than 6 minutes long. You may edit it if you wish, to delete non-relevant material,
such as waiting for a time out.
Please save your demo video in your RMIT OneDrive and share this video with your
tutor. The tutors’ emails can be found at
To find out more about how to give access only to the people you specify:
For the purposes of late penalties, the date of submission will be regarded as the latter of
the two — the submission date on Canvas and the last modification date on the video in
your OneDrive.
2) Python source code files, including any test drivers which have the code for the sender
(1234567_senderN.py) and the receiver (1234567_receiveNr.py) for each task you have
3. Compress the folder 1234567 into a .zip file — 1234567.zip
4. Now you can upload this zip file to Project Submission (Due in Week 12).
5. KEEP A COPY — Ensure you have a backup copy of the assignment lodged.
What Happens Next
You will receive your results by June 18th 2020 in Canvas. If you didn’t receive your marks or you
have questions after you received your marks, please contact your tutor.
Page 3 of 5
Task Description
This assignment involves designing and implementing low level internet protocols, and testing them
using two BBC:micros.
There are a number of different options for this assignment, ranging from fairly easy to very
advanced. Your maximum grade will be determined by which tasks you complete, and how well
you do them. If you are planning on selecting the more advanced tasks it is recommended that you
start with the easier tasks and work your way up.
• If you complete task one satisfactorily, you will receive a pass grade.
• If you complete task two satisfactorily, you will receive a credit grade.
• If you complete task three satisfactorily, you will receive a distinction grade.
• If you complete task four satisfactorily, you will receive a high distinction grade.
“Satisfactorily” in this context means that everything is working, and you are able to demonstrate
that it is working.
Tasks 3 and 4 are more difficult. In addition to being a strong student, you will need to start early
and work regularly on the assignment in order to complete either or both of these tasks.
In order to do this assignment you need to understand data link layer and network layer protocols.
Information about these is contained in the lecture notes and in the recommended reading and
videos. You will not be connecting your devices to the actual internet but simulating internet
protocols on your BBC micro:bit. This means that you can use simpler protocols and do not need to
implement the full functionality of the real protocols.
You can use the Grok online platform to develop your code, but you will need to download it to the
BBC micro:bit to test it. As programs rarely work correctly the first time, you need to give some
thought to how you test your system, such as using the LEDs to indicate the progress of
transmission, or the status of your system, so that you can narrow down the problem area.
To test your system(s) you will need to write driver programs the purpose of the programs is to
generate packets to be transmitted across your system and to collect statistics, such as packet loss,
packet error rate etc. When testing your system in this way, you should transmit a minimum of 20
packets. You will need to have the ability to simulate data errors and packet loss. This can be
simulated by pressing the buttons on the microbit.
Note: As there is a limited amount of memory in the micro:bits you should aim for simple solutions
which satisfy the requirements. Avoid using large arrays or tables as much as possible, as these
take up space.
You may implement each task as a separate set of programs in order to reduce the amount of
code required in each case, although tasks 1 & 2 will share a lot of the code.
Page 4 of 5
Protocol Design
You need to design your own protocols for the parts that you wish to attempt. There are two major
aspects to the design:
A. The structure of the packets and the codes used. How do you know the start and end of the
packet, if you have different types of packets (data, acknowledgement), how do you
distinguish? Where is the sequence number, the error information? Note that in real protocols,
arbitrary binary codes are used to denote things such as frame sequence number, frame type etc.
Since this is a prototype system in which saving space is not of critical importance, you may
decide to use ASCII characters for these things in order to make them easier to understand and
B. The rules of communication. How does your acknowledgement system work. For example if
the receiver receives a frame with errors, what happens?
For the protocol you design, you should do the following:
1) Provide diagrams which show the structure of your packets and frames
2) List the codes that you use to designate various states or action
3) Provide a list of rules governing each action and response, as well as a state diagram.
1. Basic System
A basic system consists of two nodes, and implements data link layer (OSI level 2) type protocols.
They should be able to send messages between them and recover from lost messages. This could be
something simple, like stop and wait using one of the acknowledgement systems appropriate for
this type of protocol, such as ARQ, or timeout. You should use the LEDs on the BBC to indicate
the progress and status of your data transmissions. Your system should report on packet loss. You
should also include a connectivity test with a threshold. For example if the packet error rate is
greater than 90%, or there has been no acknowledgement for longer than a certain time period, the
sender should determine that the network connection is no longer usable. You can test this by
moving the receiver increasingly further away from the sender.
2. Improved System
An improved system send messages as in task 1, but use a more sophisticated acknowledgement
system such as a sliding window, and incorporate “go back n”, or request selective retransmission.
Your messages will need a sequence number, which you can start at 1. It is only necessary to
implement sending in one direction, ie the sender does not need to keep track of or acknowledge the
receivers acknowledgements.
Page 5 of 5
3. More Advanced – Error checking
Note: This is now a standalone task in which a sender sends messages in a loop to the receiver
– no acknowledgement is required.
In this task you need to implement an error checking system, which can be either something
simple, like parity bits, or more complex, such as hamming. The sender sends message to the
receiver and the receiver should be able to determine if the message contains an error or not. If
you are using an error correcting method such as Hamming, then the receiver should be able to
correct the error. You only need to send 1 message at a time, which can always be the same.
There should be some way of introducing errors, for example by a button press on the sender.
The receiver should indicate if the message is (a) error free (b) contains and error or (c) contains
an error but has been corrected, (if your system is able to do that).
4. Most Advanced - ARP
Note: This is now a standalone task – you just send a message and response required to set up
an entry in th sender ARP table.
In this task you will implement a simple version of Address Resolution Protocol (ARP). A
button press on one micro will send a request to the other micro for its “MAC” address. The
micro should respond with its IP number and “MAC address” which you add to a table. The IP
number will be a string which represents an IP address, eg “” and the MAC address
is a string in the standard MAC address format. Since neither the IP and MAC address are real,
you will need to hard wire these into the response code.
Alternatively, Instead of the Mac address, you should do some research on how to find the
unique identifier from your micro:bit, and use that.
The device that sends the ARP request should display the response, ie IP and “MAC” address of
the receiver.

Contact Us - Email:99515681@qq.com    WeChat:codinghelp2
© 2014 www.asgnhelp.com
Programming Assignment Help!