[Cerowrt-devel] Fwd: High Speed WAN Rsync now possible via UDT

dpreed at reed.com dpreed at reed.com
Sat Feb 23 14:04:34 EST 2013

I have not investigated UDT in detail.   My sense is that it is pretty much like TCP but assumes that the bottleneck is actually a fixed rate link, rather than one with significant variability in the capacity-per-flow available.
I don't think it uses the "biggest gun" that can improve things when the end-to-end latency gets long: non-ordered delivery acknowledgement coupled with Fountain Codes (or some other rateless erasure code).
For file transfer (where the only goal is complete delivery of the entire file), sending every file block independently and using rateless erasure coding to ensure that any sufficiently large subset of the packets will give the contents of the file, one can allow the bottleneck link to use packet drops to signal congestion, while not requiring sequential retransmission.
So if I were starting with fq_codel in the network, I would use a rate-controlled UDP with Fountain Coding on the file contents, per-file-block acknowledgment (using a run-length-coded bitstring for blocks correctly received), and a rate-controller that uses the number of blocks received vs. blocks sent to detect drops due to buffer overflow to set window size to limit the number of blocks in transit.
That would maximize FTP, while still allowing "mice" and "ants" and other FTPs to get great, low-latency, service.
-----Original Message-----
From: "Dave Taht" <dave.taht at gmail.com>
Sent: Friday, February 22, 2013 11:48am
To: cerowrt-devel at lists.bufferbloat.net, "bloat" <bloat at lists.bufferbloat.net>
Subject: [Cerowrt-devel] Fwd: High Speed WAN Rsync now possible via UDT

Since we are essentially observing "wan" latencies anyway I am curious as to how the UDT protocol functions... has anyone tried it?

If useful (or scary) I'll try to find the time to package it up for cero. 

I liked how mosh solved the terminal emulation problem over lousy links (in fact, reflecting on it, had it existed in 1998 when I was mucking with the strip protocol, I'd have not bothered with getting tcp to work at all. :) ) I also get a kick out of people using ssh to "authenticate" and then dropping to something else....

---------- Forwarded message ----------
From: Erich Weiler <[mailto:weiler at soe.ucsc.edu] weiler at soe.ucsc.edu>
 Date: Fri, Feb 22, 2013 at 10:54 AM
Subject: High Speed WAN Rsync now possible!!!
To: [mailto:rsync at lists.samba.org] rsync at lists.samba.org


 Just wanted to plug a totally awesome software package from a group I know: UDR (UDT Enabled Rsync).

 For those not familiar with UDT, it is a low level network protocol based on UDP that allows for high speed transfers over high latency WAN networks:

[http://udt.sourceforge.net/] http://udt.sourceforge.net/

 For a while the UDT API was available, developed by the Laboratory for Advanced Computing at the University of Chicago, but there were little development around it for actually developing a software suite to allow for high speed WAN transfers, such as can be achieved by Aspera, GridFTP, FDT, and a couple others.  The problem with those often is:

 Aspera: Great but *crazy* expensive
 GridFTP: Not bad but non-trivial to set up
 FDT: Java (Eh...)

 But the awesome thing here is that UDR is a lightweight wrapper for rsync that allows for rsync functionality, but uses UDT as the underlying protocol for transfer (no rsh or ssh).  It authenticates over ssh and then transfers the data over UDT streams.  And supports encryption.

 Right now it is kind of in beta but we've been using it for a while and it's very stable.  It has been tested on Linux, BSD and OSX.  It may compile on other platforms but not much testing has been done on those.  Written in C++.

[https://github.com/LabAdvComp/UDR] https://github.com/LabAdvComp/ UDR

 You can clone the repo with 'git clone' and build the code.  It compiles very easily and only requires the OpenSSL library as a dependency.

 As an example:  We have been trying to transfer data from California to our servers in Germany for a while, and have only be getting 10Mb/s. With UDR we get 700Mb/s.  Not bad.

 There are details on the GitHub page.  Check it out!!

 Please use reply-all for most replies to avoid omitting the mailing list.
 To unsubscribe or change options: [https://lists.samba.org/mailman/listinfo/rsync] https://lists.samba.org/ mailman/listinfo/rsync
 Before posting, read: [http://www.catb.org/~esr/faqs/smart-questions.html] http://www.catb.org/~esr/faqs/smart-questions.html

Dave Täht

Fixing bufferbloat with cerowrt: [http://www.teklibre.com/cerowrt/subscribe.html] http://www.teklibre.com/cerowrt/subscribe.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.bufferbloat.net/pipermail/cerowrt-devel/attachments/20130223/ca0aff33/attachment-0002.html>

More information about the Cerowrt-devel mailing list