The fasp Solution

Automatic Adaptive Rate Control

Figure 1

fasp vs. TCP: Efficiency

Single FASP and TCP flows sharing a 10 Mbps bottleneck bandwidth (100 ms RTT). A FASP flow is started with a target rate at link capacity (9.95 Mbps) and runs steadily. After 120 seconds, a TCP flow starts up and stabilizes at 2.3 Mbps, TCP's self-limited rate. FASP detects the presence of TCP traffic and immediately reduces its own rate to use the remaining available bandwidth (7.7 Mbps), without inhibiting TCP. When FASP finishes two minutes later, TCP continues at about the same rate.

While fasp can fill any available bandwidth, fasp also includes an intelligent adaptive rate control mechanism that allows transfer rates to throttle down for precision fairness to standard TCP traffic, but automatically ramp up to fully utilize unused bandwidth (see Figures 1 and 2).

Automatic Adaptation to the Full, Available Bandwidth and Fair. The adaptive rate control algorithm is an original equation-based approach. When TCP's rate is self-limited on an uncongested link, fasp detects the unclaimed bandwidth and ramps up to fill it (Figure 1). When congestion builds up, fasp reduces rate to the TCP rate and equally shares the link with multiple TCP flows (Figure 2). This approach has fundamental benefits over the window-based flow control algorithm used by standard TCP and even new accelerated or "high-speed" TCP's:

fasp Adaptive Rate Control compared to TCP / Accelerated TCP:

  • Loss Tolerant. Reacts only to true congestion, while remaining immune to inherent channel loss.
  • TCP Fair. Quickly stabilizes at a TCP-friendly rate when links are congested without squeezing small traffic.
  • Perfectly Efficient. Ramps up to fill unclaimed bandwidth, regardless of latency and packet loss.
  • Stable. Zeroes in on the available bandwidth, and runs "flat" without oscillation, for stability.

Figure 2

fasp vs. TCP: Fairness

Multiple FASP and TCP flows sharing a 2 Mbps bottleneck bandwidth (50 ms RTT). In this example a single FASP flow is started at the link capacity (1.97 Mbps). FASP 1 runs steadily at the target until the first TCP flow is started at two minutes. FASP 1 detects TCP 1 and immediately reduces rate to equally share the link at 1 Mbps. After two more minutes, a second TCP flow is started. Now FASP 1, TCP 1, and TCP 2 all equally share the link bandwidth at 660 kbps. Two minutes later, a second FASP flow starts up at a target of 1.97 Mbps. FASP 2 shoots up to the target but immediately detects the presence of the other flows and adjusts down as the other flows reapportion to equally share the link. Now all four flows are at 500 kbps. For the remainder of the test, one flow is terminated every two minutes. As each flow exits, the other flows reapportion the link bandwidth equally. The FASP flows zero in on the natural TCP rate at every interval, fairly sharing with TCP but with superior stability (less oscillation).

Configurable, Per-Flow Bandwidth Policies. The aggressiveness of any particular fasp flow relative to standard TCP or other fasp flows is configurable, and enables pre-set or user-defined bandwidth sharing policies such as equally fair and transparent background flows. For example, in Figure 2, two fasp flows configured to use a TCP-fair bandwidth policy share a 2 Mbps network with two standard TCP flows.

1) As the TCP flows enter, the fasp flows detect the congestion and precisely divide the available bandwidth equally between one another, and with TCP.

2) As the TCP flows exit, the fasp flows detect the newly available bandwidth and immediately ramp up for full utilization.

Fast, precise, automatic discovery of the available bandwidth. Through state-of-the-art diagnostic algorithms, fasp is able to accurately discover the bottleneck link capacity (minimum capacity of all links) between any source and destination pair, within only a few seconds. This feature is not only useful for network profiling, but also allows for automatic configuration of the transfer rate, and maximum and minimum caps, as a percentage of the user's bandwidth capacity.

Next Page