Highlights
Assignment description and Requirements:
The goal of assignment 3 is to enhance the HTTP protocol implemented in Assignment 1 and 2. The student has to improve the HTTP implementation done by Assignment 2 to consider segmentation of requests and responses over multiple message. In addition, the student must handle loss of HTTP request and response packets due to network drops through the stop and wait protocol. The same scenario in assignment 2 is valid with no difference visible "from the users point". In particular, the requirement to be able to send HTTP post and get requests and receive HTTP responses is maintained.
You must resolve the particular problem that consists of issuing HTTP requests and responses of bigger size than the packet size between multiple users connected to a server while handling network drops through the stop and wait protocol.
The rest of the assignment describes the following points:
1) Summary of assignment 1 and 2 features that need to be included
2) Structure of the HTTP request and response packets with the sizes of the fields
3) 3-way handshake messages
4) Stop and wait protocol
5) Scenario
Assignment 1 and 2 features:
In assignments 1 and 2, you were required to implement some HTTP protocol functionalities. You managed to construct POST and GET requests that were validated at the client (user or admin) side and shared with the server. The server further validated the requests and constructed the corresponding response to reply with.
The same features are required in this assignment where the users can share POST and GET requests with the server which validates the shared request and constructs the response to reply with.
HTTP Protocol Packets Structure:
You are required to follow the below structure of the HTTP request and response packets. This structure has to be used in the codes with the same sizes for the fields. Any additional request fields (form fields) and response fields (user information) are to be sent within the HTTP body variable rather than adding additional fields to the HTTP request packet. If the additional fields shared exceed the size of the HTTP body, the message needs to be segmented into multiple packets that are reconstructed at the destination.
For the HTTP request, the message has the following fields in Table 1 and Table 2, respectively:
Stop and wait Control:
You are required to implement a very basic "Stop and Wait" protocol, so that there is minimal concern with windowing, the window of the pending packets is 1. The Stop-and-Wait protocol operates as follows: Each packet of your HTTP protocol is sent as a UDP packet. If no loss occurs (see below), the peer host returns an acknowledgement packet, again using UDP. Once this acknowledgement has been received, the next data packet can be sent. If a packet is lost (on the forward path or on the reverse path), then the sending host will time out, and send it again. You are required to maintain sequence numbers in your solution, so that the case where the data are delivered but the acknowledgement is lost can be detected (i.e., the second reception of the data can be discarded). Since a single bit is sufficient for the correct operation of this protocol, a single-bit field was added to your HTTP request and response packets to carry this sequence number. The initial value of this one-bit field is the result from the 3-way handshake messages as described in the previous section.
Log of transactions:
For assignment 3, you will make use of a technique that consists of generating execution traces stored in files that can then be scrutinized for debugging purposes (and also coincidentally by the marker to evaluate the quality of your programs). Subject to a settable switch (such as #define TRACE 1), you will generate a separate log file for each member of the communication group (client, router, server).
Assignment Scenario:
Figure 1 illustrates the scenario which you are required to implement in this assignment where a server acts as an intermediary between the sender and receiver clients. The router receives the packets from the different clients before either dropping them or routing them to the destination.
The scenario steps are detailed as described below:
1. Server starts running while displaying the server hostname
2. User enters the registration form fields
3. User client constructs the POST request
4. User client initiates the three-way handshake message by sending the first handshake message
5. Server receives first handshake message, constructs the second handshake message and sends it
6. User client receives the second handshake message and sends the third handshake message
7. User client sends the HTTP POST request and waits for the response while having the timer on
8. Server receives the HTTP POST
9. Server validates the request received from the user
10. Server sends HTTP response
Assumptions and Specifications:
• The server that clients connect to can change its name.
• There should be input check aside from the server validation to ensure that the input fields are valid.
• Assume one user can register to the server and another client acts as an admin who gets the list of registered files.
• All running codes should display its status (ex. Client print to screen, “user has been registered to the server”)
Supplementary Codes:
To develop the applications required in this assignment, please use the previously given programs in assignment 1 and the codes you developed in assignment 1.
You are also provided with a new code that runs the router code to be able to drop and delay packets going through the network. Two additional codes are provided, client and server, to help you in the additional requirements, timeout, retransmission, and sending through the router. Read the codes and extracts the parts you think are needed for your code.
Deliverables
You will be required to submit the following by the deadline. Failure to submit by the deadline will result in deduction of marks.
• Word/PDF document which contains your C/C++ program for turnitin check. The document should include all the file you created and modified (cpp and header files).
• A ZIP folder which includes the used projects (server, sender and receiver). You will be required to download the folder from moodle in your demo slot and run it directly. Hence, make sure you submit a correctly running version.
Demo:
On demo day, each team should run the server and client codes on 2 or 3 PCs. one for the Server, one for Sender Client and the third is for the receiving client. One of the Clients running (Sender OR Receiver) on the same machine with the server. In addition, you will be asked questions about the functioning of the program; any student of the group must be able to answer any question. Part of the marks will be assigned for demonstrating compliance with requirements at this demonstration. Marks assigned to each member of the group may be different, depending on ability to answer the questions.
This ECCE 356: Engineering Assignment has been solved by our Engineering Experts at My Uni Paper. Our Assignment Writing Experts are efficient to provide a fresh solution to this question. We are serving more than 10000+ Students in Australia, UK & US by helping them to score HD in their academics. Our Experts are well trained to follow all marking rubrics & referencing style.
Be it a used or new solution, the quality of the work submitted by our assignment experts remains unhampered. You may continue to expect the same or even better quality with the used and new assignment solution files respectively. There’s one thing to be noticed that you could choose one between the two and acquire an HD either way. You could choose a new assignment solution file to get yourself an exclusive, plagiarism (with free Turnitin file), expert quality assignment or order an old solution file that was considered worthy of the highest distinction.
© Copyright 2026 My Uni Papers – Student Hustle Made Hassle Free. All rights reserved.