Implementation of the rdt4.0 protocol. The primary enhancement is the incorporation of the selective repeat mechanism, allowing for the seamless flow of multiple packets between a client and a server.
200028880 - Wallace Ben Teng Lin Wu 200067257 - Matheus Santos Alencar 190024771 - Andressa Araújo
The main objective of this project is to work within a layered network architecture, implementing functions to optimize link utilization using pipelining techniques.
-
rdt4.0 Protocol: Extension/modification of the initial stop-and-wait code to support the transmission of multiple packets between the client and server.
-
Selective Repeat: Implementation of the more advanced version of the protocol, introducing selective repeat mechanisms for sliding window operation.
Upon execution/simulation, the code provides the following statistics:
-
Throughput (Network Layer): Measurement of the transfer rate, considering packet headers.
-
Goodput (Application Layer Throughput): Actual transfer rate excluding headers.
-
Total Transmitted Packets: The overall count of packets sent during the simulation.
-
Total Retransmissions: The count of packets retransmitted for each packet type.
-
Total Corrupted Packets: The count of packets identified as corrupted for each packet type.
-
Simulation Time: Elapsed time from the start of transmission to the last packet sent.
The code is designed to allow the transmission of multiple messages between the client and server. The number of messages can be configured as a command-line argument for the client.
python server.py 5000
python client.py localhost 5000