Skip to content

FZhg/ReliableDataTransfer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reliable Data Transfer

This is a reliable data transfer protocol implemented using UDP. The protocol is based on the Go-Back-N protocol. The sender are implemented in python with a thread-safe queue and the receiver is implemented in Golang channels.

How to run my code

First, place the the file to send in the RDTSender Directory.

In the root directory, run the following cmd to start the sender and the receiver

./sender <forward_recv_address> <forward_recv_port> <sender_recv_port> <max_timeout> <filename>
./receiver <backward_recv_address> <backward_recv_port> <receiver_recv_port>  <file>

The log files will be generated in RDTReceiver and RDTSender directories. You can find the file received in the RDTReceiver directory.

Verification

Direct Link

Receiver Machine: ubuntu2004-002.student.cs.uwaterloo.ca (10.15.154.51)

Sender Machine: ubuntu2004-004.student.cs.uwaterloo.ca (10.15.154.52)

File Length The Number of Test Iterations Sender Max-Timeout Final Timestamp
45 Packets (22386 chars) 10 400 ms 92

With nEmualtor

Network Emulator Machine: ubuntu2004-008.student.cs.uwaterloo.ca (129.97.167.27)

Receiver Machine: ubuntu2004-002.student.cs.uwaterloo.ca (10.15.154.51)

Sender Machine: ubuntu2004-004.student.cs.uwaterloo.ca (10.15.154.52)

File Length Sender Max-Timeout nEmulator Max-Delay nEmulator Drop Probability Final Time Stamp
45 Packets (22386 chars) 450 ms 100 ms 0.1 116
45 Packets (22386 chars) 450 ms 100 ms 0.5 306
45 Packets (22386 chars) 450 ms 200 ms 0.1 99
45 Packets (22386 chars) 450 ms 300 ms 0.1 111
45 Packets (22386 chars) 450 ms 500 ms 0.1 163

About

ReliableDataTransfer

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published