The state of a network may be highly dynamic due to extrinsic effects such as competing traffic and intrinsic channel effects such as round-trip time variation and bandwidth oscillation from multi-path networks or fading. Furthermore, actors within a network operate under a constrained knowledge of the current state of the network relative to their current available or allocated bandwidth due to the dynamic nature of the system. Actors must rely on delayed feedback from a connection to infer the current status and make decisions on future actions—this is commonly referred to as network congestion control. Congestion control is commonly broken into multiple phases including an initial probe phase, congestion avoidance, and recovery mode where a congestion window is defined and updated to signify the allowed amount of outstanding data on a connection. The initial probe phase requires the capability to quickly achieve the current allocated bandwidth of the channel while minimizing packet loss in order to maximize performance of the transfer. Small files, such as those often found in hypertext transport protocol (HTTP) traffic, will commonly not exit the initial phase and therefore their performance depends strictly upon the efficiency of the initial phase. Additionally, congestion avoidance typically involves small increments relative to the initial phase, and therefore the ability to correctly estimate the optimal congestion window will affect the performance of the whole transfer.
The current state of the art methods for transfer initialization are generally variations of the transmission control protocol (TCP) slow start algorithm (see RFC 5681). TCP slow-start is specified to be used for new connections and to restart idle connections. The slow start algorithm is inefficient under certain environments and can induce several problematic conditions:
a) High latency—either in the completion times of small files relative to the bandwidth product of the network or in back-to-back transfers which maintain a large congestion window relative to the bandwidth delay product of the network inducing queuing delay.
b) Inefficient utilization of bandwidth—the time t for slow-start to reach maximum utilization where band is the available network bandwidth is:t=log2(band)  (Eq. 1)
Time t represents the number or round trip time periods in which the channel is underutilized. This is especially relevant in small file transfers or networks consisting of large inherent latencies.
c) High loss—slow start utilizes an exponential growth function, which means that up to half of the outstanding packets in the congestion window may be lost when congestion occurs.
TCP Fast Start is a variation of TCP slow start geared towards improving short transfers as is often the case in HTTP web traffic. TCP Fast Start utilizes previous TCP connection state information to initialize new connections. However, it relies upon a bottleneck router utilizing TCP/Internet Protocol (IP) header prioritization options and assumes an extended optimistic stability to the available bandwidth.
Limited Slow-Start is an experimental technique which defines modifications to TCP slow start to limit the increment over some predefined static threshold by a linearly decreasing function. This modification only addresses the potential high loss rates in slow start and its effectiveness is dependent upon an accurate threshold value being set; setting the value too low may result in significant underutilization of the channel.
Hybrid Slow Start uses heuristic metrics to attempt to terminate TCP slow start early and avoid high loss rates. Hybrid Slow Start uses inter-arrival times of acknowledgement (ACK) packets to infer the network bandwidth and therefore requires high clock precision and is susceptible to performance degradation under asymmetric networks.
User datagram protocol (UDP)-based Data Transfer protocol's (UDT) native congestion control algorithm utilizes packet-pair estimates to set the outgoing packet rate during session initiation. Packet-pair estimates have been shown to be unreliable under certain constraints requiring significant heuristic-based classification.
Web browsers typically multiplex domain requests over multiple TCP sessions to speed up initial download speeds and minimize latency of web requests. However, this will induce several instances of TCP's slow start algorithm potentially resulting in high loss rates for larger transfers. Additionally, this does not address the fundamental problem of efficiently adjusting to the allocated channel bandwidth.
Accordingly, there is a need for systems and methods for initializing packet transfers that efficiently utilize available bandwidth.