CAN201 Introduction to Networking
Networking Project
Contribution to Overall Marks Submission Deadline of Part I Submission Deadline of Part II Type
Learning Outcome
40%
17 Nov. 2023, 23:59
18 Dec. 2023, 23:59
Team coursework
[A] [B] [C] [D]
How the work should be submitted?
-
SOFT COPY ONLY!
-
Every team leader must submit the work through Learning Mall.
Specification of Part I (20% of overall marks)
File uploading and downloading should be one of the most important network-based applications in our daily life. This part of the networking project aims to use Python Socket programming to implement a client-side application for file uploading and downloading based on a given protocol.
The examiner will define and release the protocol description and the server-side application on Learning mall. However, the released server-side code might have some syntax bugs. You should firstly fix all the bugs and run the server-side code. Then, you should implement the client-side application using Python and test your code using the server-side application.
The details are listed as follows:
Task 1: Server code debug and set up
Fix the existing syntax bugs of the code for the server-side application and run the server-side code. “Server is ready” should be displayed on the terminal window when all the bugs are fixed.
Task 2: Get authorization from the server-side
Your application should login to the server using the rule defined in the protocol. A “Token” will be returned if you login successfully. This token will be used for all the following tasks in this part.
Task 3: Upload a file to the server
For uploading a file, your application should firstly apply for this uploading operation using the required information of the file. An uploading plan will be returned, which includes the “key” for permission, the block size for this uploading and the total block number. Your application should upload the file block by block until the whole file is uploaded. Then, you should check the status of the file on the server according to the protocol. The MD5 of the file will be included in the status, which could be used to check whether your file is received by the server properly.
1
CAN201 Introduction to Networking
Networking Project
Submission:
Codes:
-
>= Python 3.6;
-
The two python program files, i.e., “server.py” and “client.py”.
Project Report:
-
A cover page with your full names (pinyin for Chinese student; name on your passport for international student) and student IDs of the whole team;
-
3 ~ 5 pages (including everything such as the reference), single column, 1.5x line space, 2.54cm margins, Serif font1, font size:12pt;
-
PDF format, LaTeX is recommended;
-
Including:
-
- Abstract
-
- Introduction: project task specification (introduce some background, do not copy from this
document and use your own words), challenge (identify the research/development problems you are going to address), practice relevance (come up with the potential applications with your proposal), contributions (key points that you did for this coursework).
-
- Related Work: research papers, technical reports, or similar applications that solve or facilitate network traffic redirection.
-
- Design: the design of you solution including a C/S network architecture diagram (and you need to describe it using your own words), the workflow of your solution (in particular, the steps of performing authorization, fetching token, uploading file), the algorithm (i.e., the kernel pseudo codes of the authorization and file uploading).
-
- Implementation: the host environment where you develop the implementation, such as the host CPU, Memory, Operating System, etc. Also, the development softwares or tools, like the IDE, the Python libraries, etc. Further, steps of implementation (e.g., program flow charts), programming skills (OOP, Parallel, etc.) you used, and the actual implementation of the authorization function, file uploading function. In addition, the difficulties you met and how did you solve them.
-
- Testing and Results: testing environment (can be more or less the same with your host implementation environment), testing steps (the steps of using the developed Python programs to complete the project tasks 1-3, including snapshots), and testing results, i.e., the time used for uploading the whole file, and you should apply figures of bars or curves for showing average performance.
-
- Conclusion: what you did for this project and any future work for improvement.
-
- Acknowledgement: individual contribution percentage should be clarified here if the project is a teamwork by using this format: Student1’s name (ID) contributes XX% to the project, Student2’s name (ID) contributes XX% to the project, Student3’s name (ID) contributes XX% to the project, Student4’s name (ID) contributes XX% to the project and Student5’s name (ID) contributes XX% to the project. If there is no clarification of individual contribution, it is
considered that all the individual team contributes the same percentage to the project.
-
- Reference [IEEE format]
-