Tsunami is one of several currently available UDP-based transfer protocols that were developed for high speed transfer over network paths that have a high bandwidth-delay product.
Tsunami performs a file transfer by sectioning the file into numbered blocks of usually 32kB size. Communication between the client and server applications flows over a low bandwidth TCP connection. The bulk data is transferred over UDP.
Most of the protocol intelligence is worked into the client code – the server simply sends out all blocks, and resends blocks that the client requests. The client specifies nearly all parameters of the transfer, such as the requested file name, target data rate, block size, target port, congestion behaviour, etc, and controls which blocks are requested from the server and when these requests are sent.
Tsunami UDP installation is pretty straight forward, the current version of the source code can be found from their sourceforge website. We can CVS checkout the current version with following command
cvs -z3 -d:pserver:email@example.com:/cvsroot/tsunami-udp co -P tsunami-udp sudo apt-get install git gcc sudo apt-get install automake autoconf cd tsunami-udp ./recompile.sh sudo make install
An EC2 Instance with good or 10Gbit Ethernet network would be preferable to achieve higher transfer speed. TCP 22 and TCP/ UDP 46224 needs to be opened between server and client for communication and data transfer.
On Server side start up the process with command
tsunamid --port 46224 * # (Serves all files from current directory for copy)
On client side start the transfer
tsunami connect [server] get * # (copies all files served to current directory)
Below are a few screen shots
Maximum speed achieved 649.1Mbps
CloudWatch Network utilization comparison between Tsunami UDP and SCP
Tsunami UDP provides a free, easy way of quickly move large amounts of data in and out of AWS or between regions. Transfer speeds are very high about 80 to 90 MB/s when compared to standard SCP/ FTP at 6 to 7 MB/s.