GitHub repository: sagersmith8/reliable_data_transmission
Created: 2016-09-30T18:35:27Z
Description: The client sends messages to the server, which converts them to pig latin, and transmits them back. The client and the server send messages to each other through the transport layer provided by an RDT implementation using the rdt 1 0 send and rdt 1 0 receive functions. The starting rdt.py provides only the RDT 1.0 version of the protocol, which does not tolerate packet corruption, or loss. The RDT protocol uses udt send and udt receive provided by network.py to transfer bytes between the client and server machines. The network layer may corrupt packets or lose packets altogether. rdt.py relies on the Packet class (in the same file) to form transport layer packets. Your job will be to extend rdt.py to tolerate packet corruption and loss. The provided code lists prototype send and receive functions for those protocols. You may need to modify/extend the Packet class to transmit the necessary information for these functions to work correctly. The provided implementation of `network.py` is reliable, but we will test your code with non-zero probability for packet corruption and loss by changing the values of `prob_pkt_loss` and `prob_byte_corr` of the `NetworkLayer` class. You may change those variables yourself to test your code.