Description

RBUDP is a data transport tool and protocol specifically designed to move very large files over wide area high-speed networks (on the order of gigabits per second). This is a simple replacement for FTP which tends to do poorly over long-distance high-speed networks.

The RBUDP tool is available for download above and is invoked via a command-line interface in Linux (see Usage instructions below). To incorporate RBUDP into an application it is best to use the API that is part of the Quanta networking toolkit.


Usage
 
Sending one file (README.singleFileTransfer)
  1. Sender:
  2. sendfile <receiver> <sending rate (Kbps)> <MTU>
  3. Receiver:
  4. recvfile <sender> <path to orig file> <path to dest file name> <MTU>
 
Sending very large files or directories (README.streaming)
  1. Developed by Stuart Levy, slevy @ ncsa.uiuc.edu
  2. Sender:
  3. tar cf - somedir | sendstream <receiverhost> 600m 1460
  4. Receiver
  5. recvstream <senderhost> 1460 | tar xvpf -
 
API
 
QUANTAnet_rbudpSender_c  C++ class
       void send(void * buffer, int bufSize, int sendRate, int packetSize);
  1.  buffer the pointer of the buffer you want to send.
  2.  bufSize the size of the buffer you want to send.
  3.  sendRate the first-pass UDP blasting rate in Kbps
      should be decided based on the actual available bandwidth.
  4.  packetSize payload size of each UDP packet
      (smaller than ethernet MTU).
QUANTAnet_rbudpReceiver_c C++ class
       void receive(void * buffer, int bufSize,  int packetSize);
 
 
Principle and Description of Operation
 
Reliable Blast has two goals. The first is to keep the network pipe as full as possible during bulk data transfer. The second goal is to avoid TCP’s per-packet interaction so that acknowledgments are not sent per window of transmitted data, but aggregated and delivered at the end of a transmission phase. Figure below illustrates the RBUDP data delivery scheme. In the first data transmission phase (A to B in the figure), RBUDP sends the entire payload at a user-specified sending rate using UDP datagrams. Since UDP is an unreliable protocol, some datagrams may become lost due to congestion or an inability of the receiving host from reading the packets rapidly enough. The receiver therefore must keep a tally of the packets that are received in order to determine which packets must be retransmitted. At the end of the bulk data transmission phase, the sender sends a DONE signal via TCP (C in the figure) so that the receiver knows that no more UDP packets will arrive. The receiver responds by sending an Acknowledgment consisting of a bitmap tally of the received packets (D in the figure). The sender responds by resending the missing packets, and the process repeats itself until no more packets need to be retransmitted.
 
 
Supported operation mode: disk-to-disk (i.e. file transfer protocol, not general transport), memory to memory (general transport)
 
Authentication: No
 
Implementations / API:  Provides C++ API.
 
Congestion Control Algorithms:
The congestion control is optional.  The algorithm is
 
if (lossRate > 0) {
    Rnew = Rold * (0.95 – lossRate);
}
 
Rnew is updated sending rate after each round of blasting.  Rold is the sending rate of last round.
 
Fairness: Not considered.
 
TCP Friendly: No.
 
Predictable Performance Model: The purpose of developing an analytical model for RBUDP is two-fold. Firstly we wanted to develop an equation similar to the “bandwidth * delay product” equation for TCP, to allow us to predict RBUDP performance over a given network. Secondly we wanted to systematically identify the factors that influenced the overall performance of RBUDP so that we can predict how much benefit any potential enhancement in the RBUDP algorithm might provide.
 
We developed a comprehensive predictable performance model for RBUDP, please refer to our paper on Cluster 2002 for detail.
 
Results: We achieve 680Mbps bulk transfer throughput on a 1Gbps link between Chicago and Amsterdam.  We think the bottleneck is the memory bandwidth of computers in both sides, especially the receiving side.  Please read our paper for the detail result.
 
Target Usage Scenario: Bulk data transfer.  
 
Very Aggressive.  Only good in private or dedicated networks.  The ideal scenario is that you reserve an end-to-end lightpath before running this protocol.  You should know how much bandwidth you roughly have.  Otherwise you can use iperf or netperf to get the idea.
 
Reliable Blast UDP
Download
 
Version 1.0
 
 
 
Links
  1.  
Contacts
  1. Jason Leigh (spiff @ uic.edu),
    Eric He (eric @ evl.uic.edu)
 
Reference
• "Reliable Blast UDP : Predictable High Performance Bulk Data Transfer", Eric He, Jason Leigh, Oliver Yu and Thomas A. DeFanti, Proceedings of IEEE Cluster Computing, Chicago, Illinois, September, 2002