Assignment

During this project, you will implement the Reliable Data Transmission protocols RDT 2.1, and RDT 3.0 discussed in class and the textbook, by extending an RDT 1.0 implementation.

Starting Code

The starting code for this project provides you with the implementation of several network layers that cooperate to achieve end-to-end communication.

APPLICATION LAYER (client.py, server.py)
TRANSPORT LAYER (rdt.py)
NETWORK LAYER (network.py)

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 these 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 should change those variables yourself to test your code and show that your protocol implementations tolerate corruption and loss in your demonstration videos.

Program Invocation

To run the starting code you may run:

python server.py 5000

and

python client.py localhost 5000

in separate terminal windows. Be sure to start the server first, to allow it to start listening on a socket, and start the client soon after, before the server times out.

Looking for a solution written from scratch with No plagiarism and No AI?

WHY CHOOSE US?

We deliver quality original papers

Our experts write quality original papers using academic databases.We dont use AI in our work. We refund your money if AI is detected  

Free revisions

We offer our clients multiple free revisions just to ensure you get what you want.

Discounted prices

All our prices are discounted which makes it affordable to you. Use code FIRST15 to get your discount

100% originality

We deliver papers that are written from scratch to deliver 100% originality. Our papers are free from plagiarism and NO similarity.We have ZERO TOLERANCE TO USE OF AI

On-time delivery

We will deliver your paper on time even on short notice or  short deadline, overnight essay or even an urgent essay