This is implementation of RDT (Reliable Data Transfer) protocol over UDP.
This is implementation of RDT (Reliable Data Transfer) protocol over UDP.
Running instructions:
Running instructions:
0. Run udp_box.py with respective commandline arguments. addr=127.0.0.1, port=8880, remote_port=8888
0. Run udp_box.py with respective commandline arguments. addr=127.0.0.1, port=8880, remote_port=8888
1. Run recv.py. Parameters: --addr (the address to listen to, default=127.0.0.1), --port (the port to listen to, default=8888)
1. Run recv.py. Parameters: --addr (the address to listen to, default=127.0.0.1), --port (the port to listen to, default=8888)
2. run sender.py. Parameters: --remote_addr(the remote address to send file to, default=127.0.0.1), --remote_port (the remote port to send file to, default=8880), --file (the file that will be sending, default=sendData/alice.txt)
2. run sender.py. Parameters: --remote_addr(the remote address to send file to, default=127.0.0.1), --remote_port (the remote port to send file to, default=8880), --file (the file that will be sending, default=sendData/alice.txt)
Note:
Note:
-SendData: File to send should be located in here
-SendData: File to send should be located in here
-recvData: The file received will be located here, named recv.txt
-recvData: The file received will be located here, named recv.txt
The default configuration is meant to run with the udp_box, in the following configuration:
The default configuration is meant to run with the udp_box, in the following configuration:
sender.py <-> udp_box.py <-> recv.py
sender.py <-> udp_box.py <-> recv.py
Basic benchmark using udp_box:
Basic benchmark using udp_box:
conditions:
conditions:
- 50kbs bandwidth
- 50kbs bandwidth
- Sending file: Alice.txt, size=167546 bytes
- Sending file: Alice.txt, size=167546 bytes
- parameters: loss rate, out of order rate(ooo_rate), duplicate packet rate(dupe_rate), byte error rate(ber)
- parameters: loss rate, out of order rate(ooo_rate), duplicate packet rate(dupe_rate), byte error rate(ber)
Tested with 4 conditions (Ideal, good, medium, and terrible)
Tested with 4 conditions (Ideal, good, medium, and terrible)