Reference no: EM132484636
ENN523 Advanced Network Engineering Assignment - Queensland University of Technology, Australia
Assessment Title - TCP/IP Communications via Socket Programming
This assignment relates to the following unit outcomes described in the unit outline:
1. Skills to undertake planning and design of computer networks to satisfy a set of requirements specifications with particular emphases on connectivity, scalability, reliability, security and QoS; and
2. Advanced collaborative and communication skills through a group project and formal technical report.
Assignment Tasks - You are asked to develop a Server program running on one computer, and a Client program running on another computer. (When you test your server and client programs on one computer, you may use Loopback IP Address 127.0.0.1, with which any packets sent out from this machine will immediately loop back to itself.)
The Server will accept input from keyboard for system initialization, selection of menu items, human command and instructions, etc. It will also display information on the monitor, periodically send commands to the Client, and receive feedback from the Client. After receiving a command from the Server, the Client will send feedback to the Server, and displays some information of your interest.
Assignment tasks are described below -
(1) When the Server is started, it initializes the settings of the server's IP addresses, port number, and the client's IP address, etc., through command window arguments, e.g., header file, arguments to main(), keyboard input, or input from a configuration file which is a pure text file.
(2) Every 3 seconds, the Server sends the Client a command to ask for data, e.g., through a single letter "R" or "r" (request). (Timing control is required here. Using our examples in the lecture materials if you like.)
(3) After receiving the command from the Server, the Client sends back to the Server an ACK consisting of: (a) the client's time in the form of hh:mm:ss:ddd (where "d" means a digit, for example 18:03:54:793), and (b) a random integer number between 0 and 1000 with a uniform distribution. The Client may also display some useful information on its monitor. (Use a random generator to generate such random numbers. For example, you use rand()%1001. For rand(), srand(time(NULL)) will give a seed, where time() function is defined in header file time.h).
(4) The Server gets the random integer and ACK from the Client, and calculates the round trip delay from its communications with the Client, and displays the result on its monitor.
(5) The Server reads keyboard input of various command and instructions. An obvious command is to terminate the Server program, e.g., using a single letter "E" or "e" (exit). When the Sever is to be terminated, the Server should also notify the Client of the Server's termination so that the Client also terminates properly. When the Client receives the single letter "E" or "e" (exit) from the Server, the Client sends back to the Server a command using a single letter "O" or "o" (OK). After that, both Client and Server will be terminated.
Attachment:- Advanced Network Engineering Assignment File.rar