Faster download with multithreading
This is a group project for SUTD 50.012 Networks.
Strawman Proposal
Project Report
Project Presentation
Clone the repository. The client and the server can run from the same host or different ones.
Use of a virtual environment is encouraged.
Install the dependencies using pip:
pip3 install Click filesplit tqdm
This programme consists of a client and a server.
Launch the server from command linepython3 MTD_server.py -s {server IP address}
other options:
--server-tcp-port {port number}
to manually set the TCP port number. Default is 12001.-r {transmission rate}
to manually set the transmission rate in Mbps. Default is 10000.0 Mbps.Start the client from command linepython3 MTD_client.py -c {client IP address} -s {server IP address} -f {file to download}
other options:
--client-udp-port {port number}
to manually set the UDP port number. Default is 50000.--server-tcp-port {port number}
to manually set the TCP port number. Default is 12001.-t {number of threads}
to manually set the number of threads used during download. Default is 4.Once the client and the server establish connections, progress bars are shown in the terminal to indicate the
downloading status of each thread. Progress bars are listed in ascending order of the thread number.
MD5 hashing is implemented in the programme. Once the transmission finishes, the client verifies the integrity of the received file against the server’s hash.
Our group has a Raspberry Pi set up, running the server remotely in the Pi Lab. The client script runs on a laptop in the LEET Lab.
1 Group Leader ↩