$30
Instructions:
This lab assignment focuses on implementing a client server socket program with TCP transport protocol for transferring messages using a flow control protocol. Problems 1-3 are for your practice. Problem 4 is the assignment problem. Choose appropriate values for parameters such as data unit size. Repeat the experiment several times and plot the average values in a report with a brief description of results. The details of lab schedule, demo, and rubrics to be used for assessment will be announced separately.
The solution and program must be yours based on your own effort. Our university views any form of cheating and plagiarism (like copying from other students or reports or web sources) very seriously. The penalty for indulging such an act could be as severe as termination of your candidature or award of F grade in the module.
Practice Problems:
1. Develop a socket program in UNIX/Linux that uses (i) TCP as the transport protocol and (ii) UDP as the transport protocol for transferring a short message between a client and server. The client sends a string (input by the user) to the server and the server prints the string on the screen after receiving it.
2. Develop a TCP-based client-server socket program for transferring a large message. Here, the message transmitted from the client to server is read from a large file. The entire message is sent by the client as a single data-unit. After receiving the file, the server sends an ACK message to the receiver. Verify if the file has been sent completely and correctly by comparing the received file with the original file (“diff” command could be used). Measure the message transfer time and throughput.
3. Develop a TCP-based client-server socket program for transferring a large message. Here, the message transmitted from the client to server is read from a large file. The message is split into short data-units which are sent one by one without waiting for any acknowledgement between transmissions of two successive data-units. Verify if the file has been sent completely and correctly by comparing the received file with the original file. Measure the message transfer time and throughput for various sizes of data-units.
Assignment Problem
4. Develop a UDP-based client-server socket program for transferring a large message. Here, the message transmitted from the client to server is read from a large file. The message is split into short data-units (DUs) which are sent and acknowledged in batches of size 1, 2, and 3 DUs. The sender sends one DU, waits for an acknowledgment (ACK); sends two DUs, waits for an ACK; sends three DUs, waits for an ACK; and repeats the above procedure until the entire file is sent. The receiver sends an ACK after receiving a DU; sends next ACK after receiving two DUs; sends next ACK after receiving three DUs; and repeats the above procedure.
Verify if the file has been sent completely and correctly by comparing the received file with the original file. Measure the message transfer time and throughput for various sizes of data-units and compare it with the stop-and-wait protocol where the batch size is always fixed to be 1. Choose appropriate values for “data unit size” and measure the performance. Repeat the experiment several times and plot the average values in a report with a brief description of results, assumptions made, etc. Include the following performance figures in your report:
1) Transfer time vs data unit size ( one curve for this problem and one curve for stop-and-wait )
2) Throughput vs data unit size ( one curve for this problem and one curve for stop-and-wait )