Skip to content

anirudhvr/multi-tcp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

What
====

This was hacked together in 2 hours after getting frustrated by the time
it took to transfer a 1.4 GB file over a single connection from the east
coast to the West. A single TCP connection gives you only your fair
share of the bottleneck link(s), and the large bw-delay product for
cross-country connections means that congestion will completely shatter
the existing window and will take several RTTs to be built up again. 

This program logically breaks up the file you want to transfer into a
number of specified chunks and sends each over a separate TCP
connection. So, assuming there were n other TCP connections on the
congested link and you create m connections, you will now get m/(n+m)
share of the link where you previously only had 1/(n+1). Too high a
value of m can cause a congestion collapse, so play around with the
setting to figure out the best overall throughput. 

The code is just about usable, and there's a ton of things to be done to
make it work better, but who has the time?

Usage
=====

Run server.rb at one end

Run client.rb at other end

About

Faster file transfers using multiple TCP connections

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages