occamsrazor
Regular Contributor
I regularly have to send image and video files, ranging from 1MB to 200MB half way around the world, and currently we use FTP. Files are sent over a variety of internet connections including internet cafes, 3G and satellite. Sometimes the connections are congested (e.g. overloaded cell towers) and sometimes the latency is very high indeed (e.g. 1000-2000ms over satellite). Sometimes I also suspect weird traffic-shaping is also going on. Other times the ISP network infrastructure is just badly planned or implemented. The key aspect is that I DO NOT have control over any of these networks.
So I have been looking for a better system of file transfer, and in doing so I've come across various options for transferring files over UDP instead of TCP. Which may or may not be the answer - I don't know - but I suspect FTP over TCP does not obtain optimal speed in such conditions. Perhaps I just need something that breaks files up and sends over multiple sessions/connections simultaneously, I also don't know.
It has to be able to traverse firewalls, achieve optimal speeds for any given connection (and work over a variety of such connections), and require no router network setup at each end - i.e. work from anywhere to anywhere - ideally. It can be server-client based with different software for server and client, or it can be peer-to-peer. It does not need to be "friendly" to other users on a shared connection - in fact I want it to suck up all the available bandwidth if possible. Platform-wise it needs to work on Mac OSX at the client end, at the server end either Mac OSX or Windows. Anything else is a bonus.
I'm aware of commercial options that claim to achieve improved file transfer speed, such as:
Aspera
FileCatalyst
Expedat
But I am more interested in any open-source/free type offerings. A few I have been reading up on include the following protocols:
UFTP
Tsunami UDP
UDT
Does anyone have experience in such matters or have knowledge of improving file transfer speed over networks with high-latency and other problems?
My other thought was to somehow leverage the Bittorrent protocol which from my experience is extremely robust and also about the only thing capable of really maxxing out my network connection. But I can't see a user-friendly way to automate the transfer process when sending many small files sequentially (e.g. the image files), and the whole "swarm" aspect of it is un-needed in my case as the transfer just needs to go point-to-point.
Any thoughts?
So I have been looking for a better system of file transfer, and in doing so I've come across various options for transferring files over UDP instead of TCP. Which may or may not be the answer - I don't know - but I suspect FTP over TCP does not obtain optimal speed in such conditions. Perhaps I just need something that breaks files up and sends over multiple sessions/connections simultaneously, I also don't know.
It has to be able to traverse firewalls, achieve optimal speeds for any given connection (and work over a variety of such connections), and require no router network setup at each end - i.e. work from anywhere to anywhere - ideally. It can be server-client based with different software for server and client, or it can be peer-to-peer. It does not need to be "friendly" to other users on a shared connection - in fact I want it to suck up all the available bandwidth if possible. Platform-wise it needs to work on Mac OSX at the client end, at the server end either Mac OSX or Windows. Anything else is a bonus.
I'm aware of commercial options that claim to achieve improved file transfer speed, such as:
Aspera
FileCatalyst
Expedat
But I am more interested in any open-source/free type offerings. A few I have been reading up on include the following protocols:
UFTP
Tsunami UDP
UDT
Does anyone have experience in such matters or have knowledge of improving file transfer speed over networks with high-latency and other problems?
My other thought was to somehow leverage the Bittorrent protocol which from my experience is extremely robust and also about the only thing capable of really maxxing out my network connection. But I can't see a user-friendly way to automate the transfer process when sending many small files sequentially (e.g. the image files), and the whole "swarm" aspect of it is un-needed in my case as the transfer just needs to go point-to-point.
Any thoughts?