Abstract:
Described are techniques to use adaptive learning to control bandwidth or rate of transmission of a computer on a network. Congestion observations such as packet delay and packet loss are used to compute a congestion signal. The congestion signal is correlated with information about actual congestion on the network, and the transmission rate is adjusted according to the degree of correlation. Transmission rate may not adjust when packet delay or packet loss is not strongly correlated with actual congestion. The congestion signal is adaptively learned. For instance, the relative effects of loss and delay on the congestion signal may change over time. Moreover, an operating congestion level may be minimized by adaptive adjustment.
Abstract:
Described are techniques to use adaptive learning to control bandwidth or rate of transmission of a computer on a network. Congestion observations such as packet delay and packet loss are used to compute a congestion signal. The congestion signal is correlated with information about actual congestion on the network, and the transmission rate is adjusted according to the degree of correlation. Transmission rate may not adjust when packet delay or packet loss is not strongly correlated with actual congestion. The congestion signal is adaptively learned. For instance, the relative effects of loss and delay on the congestion signal may change over time. Moreover, an operating congestion level may be minimized by adaptive adjustment.
Abstract:
It can be determined whether relative one way delay for data packets in a data stream exceeds a delay threshold. If so, then a delay congestion signal indicating that the relative one way delay exceeds the delay threshold can be generated. The delay congestion signal can be used in calculating an adaptive bandwidth estimate for the data stream. A packet loss rate congestion signal may also be used in calculating the bandwidth estimate. It can be determined whether a data stream of data packets is in a contention state. If the data stream is in the contention state, then an adaptive bandwidth estimate can be calculated for the data stream using a first bandwidth estimation technique. If the data stream is not in the contention state, then the bandwidth estimate for the data stream can be calculated using a second bandwidth estimation technique.
Abstract:
Construction and use of forward error correction codes is provided. A systematic MDS FEC code is obtained having a property wherein any set of contiguous or non-contiguous r packets can be lost during a data transmission of k data packets and r encoded packets and the original k packets can be recovered unambiguously. The systematic MDS FEC code is transformed into a (k+r, k) systematic MDS FEC code that guarantees at least one of the encoded packets is a parity packet. The starting systematic MDS FEC code may be Cauchy-based, and the transformation code derived from the starting Cauchy-based MDS FEC code allows for very efficient initialization, encoding and decoding operations.
Abstract:
It can be determined whether relative one way delay for data packets in a data stream exceeds a delay threshold. If so, then a delay congestion signal indicating that the relative one way delay exceeds the delay threshold can be generated. The delay congestion signal can be used in calculating an adaptive bandwidth estimate for the data stream. A packet loss rate congestion signal may also be used in calculating the bandwidth estimate. It can be determined whether a data stream of data packets is in a contention state. If the data stream is in the contention state, then an adaptive bandwidth estimate can be calculated for the data stream using a first bandwidth estimation technique. If the data stream is not in the contention state, then the bandwidth estimate for the data stream can be calculated using a second bandwidth estimation technique.
Abstract:
A method and system that enhances a user's performance while interacting with an interactive internet application such as a Massively Multiplayer Online (MMO) game is provided. The network latency experienced by users participating in the MMO game is minimized by dynamically determining an optimal transmission action for a message generated by the MMO game. In one embodiment, determining the optimal transmission action for a message includes dynamically determining the optimal number of redundant Forward Error Correction (FEC) packets to add to a message prior to transmitting a message to a receiving device. The optimal number of FEC packets is determined based on a wide range of varying network conditions.
Abstract:
The subject disclosure is directed towards partitioning a file into chunks that satisfy a chunk size restriction, such as maximum and minimum chunk sizes, using a sliding window. For file positions within the chunk size restriction, a signature representative of a window fingerprint is compared with a target pattern, with a chunk boundary candidate identified if matched. Other signatures and patterns are then checked to determine a highest ranking signature (corresponding to a lowest numbered Rule) to associate with that chunk boundary candidate, or set an actual boundary if the highest ranked signature is matched. If the maximum chunk size is reached without matching the highest ranked signature, the chunking mechanism regresses to set the boundary based on the candidate with the next highest ranked signature (if no candidates, the boundary is set at the maximum). Also described is setting chunk boundaries based upon pattern detection (e.g., runs of zeros).
Abstract:
In various embodiments, methods and systems are disclosed for a hybrid rate plus window based congestion protocol that controls the rate of packet transmission into the network and provides low queuing delay, practically zero packet loss, fair allocation of network resources amongst multiple flows, and full link utilization. In one embodiment, a congestion window may be used to control the maximum number of outstanding bits, a transmission rate may be used to control the rate of packets entering the network (packet pacing), a queuing delay based rate update may be used to control queuing delay within tolerated bounds and minimize packet loss, and aggressive ramp-up/graceful back-off may be used to fully utilize the link capacity and additive-increase, multiplicative-decrease (AIMD) rate control may be used to provide fairness amongst multiple flows.
Abstract:
The subject disclosure is directed towards partitioning a file into chunks that satisfy a chunk size restriction, such as maximum and minimum chunk sizes, using a sliding window. For file positions within the chunk size restriction, a signature representative of a window fingerprint is compared with a target pattern, with a chunk boundary candidate identified if matched. Other signatures and patterns are then checked to determine a highest ranking signature (corresponding to a lowest numbered Rule) to associate with that chunk boundary candidate, or set an actual boundary if the highest ranked signature is matched. If the maximum chunk size is reached without matching the highest ranked signature, the chunking mechanism regresses to set the boundary based on the candidate with the next highest ranked signature (if no candidates, the boundary is set at the maximum). Also described is setting chunk boundaries based upon pattern detection (e.g., runs of zeros).
Abstract:
Transmission delays are minimized when packets are transmitted from a source computer over a network to a destination computer. The source computer measures the network's available bandwidth, forms a sequence of output packets from a sequence of data packets, and transmits the output packets over the network to the destination computer, where the transmission rate is ramped up to the measured bandwidth. In conjunction with the transmission, the source computer monitors a transmission delay indicator which it computes using acknowledgement packets it receives from the destination computer. Whenever the indicator specifies that the transmission delay is increasing, the source computer reduces the transmission rate until the indicator specifies that the delay is unchanged. The source computer dynamically decides whether each output packet will be a forward error correction packet or a single data packet, where the decision is based on minimizing the expected transmission delays.