Congestion control applying adaptive path selection
AssigneeVay Technology GmbH
InventorsDamien Feneyrou, Ralf Globisch
Life of this patent
Estimating the term…
Abstract
Described are systems and methods for determining one or more data paths of a network link for transmitting data packets of a data stream for load balancing the data across the paths while avoiding saturation of the network link and/or alleviating congestion of the network link. The selection of the one or more paths may be performed by adaptively modifying a redundancy of the data packets being transmitted on the transmission paths of the network link in view of current network parameters associated with the paths of the network link, so that the data stream is effectively load balanced across the paths of the network link while ensuring redundancy of the data stream and maintaining the data rate of the data stream.
Claims19
A computing system, comprising:
- one or more processors;
- and
- a memory storing program instructions that, when executed by the one or more processors, cause the one or more processors to at least:
- initialize a plurality of path token buckets for a plurality of transmission paths of a network link;
- initialize a global token bucket for a global redundancy value for the plurality of transmission paths;
- determine a plurality of network information for the plurality of transmission paths, wherein the plurality of network information includes at least one of a plurality of congestion indicators for the plurality of transmission paths, a plurality of data in flight values for the plurality of transmission paths, or a feedback period;
- determine, based at least in part on the plurality of network information:
- a plurality of path token bucket refill rates for the plurality of path token buckets for the plurality of transmission paths;
- and
- a global redundancy refill rate for the global token bucket;
- refill the plurality of path token buckets using the plurality of path token bucket refill rates to obtain a plurality of refilled path token buckets;
- refill the global token bucket using the global redundancy refill rate to obtain a refilled global token bucket;
- determine, based at least in part on the plurality of refilled path token buckets and the refilled global token bucket, at least one first transmission path of the plurality of transmission paths as a selected at least one transmission path;
- and
- transmit a data packet on the selected at least one transmission path.
A computer-implemented method, comprising:
- determining, based at least in part on a plurality of network information, a plurality of path token bucket values for a plurality of path token buckets associated with a plurality of transmission paths, wherein the plurality of network information includes at least one of a congestion indicator, a data in flight value, a feedback period, or an incoming data rate of an incoming data stream;
- determining, based at least in part on the plurality of network information, a global token bucket value for a global token bucket;
- determining, based at least in part on the plurality of path token bucket values and the global token bucket value, at least one transmission path from the plurality of transmission paths for transmitting a data packet of the incoming data stream;
- determining a second plurality of network information, wherein the second plurality of network information includes at least one of a second congestion indicator or a second data in flight value;
- determining, based at least in part on the second plurality of network information, the feedback period, and the incoming data rate, a second plurality of path token values associated with the plurality of transmission paths;
- determining, based at least in part on the second plurality of network information, the feedback period, and the incoming data rate, a second global token bucket value;
- and
- determining, based at least in part on the second plurality of path token bucket values and the second global token bucket value, at least one second transmission path from the plurality of transmission paths for transmitting a second data packet.
A vehicle, comprising:
- a plurality of sensors;
- one or more processors;
- and
- a memory storing program instructions that, when executed by the one or more processors, cause the one or more processors to at least:
- obtain a data stream at an incoming data rate that corresponds to information captured by the plurality of sensors;
- obtain a first plurality of network information for a first transmission path;
- obtain a second plurality of network information for a second transmission path;
- initialize a first path token bucket for the first transmission path;
- initialize a second path token bucket for the second transmission path;
- initialize a global token bucket;
- determine, based at least in part on the incoming data rate and the first plurality of network information, a first path refill rate;
- determine, based at least in part on the incoming data rate and the second plurality of network information, a second path refill rate;
- determine, based at least in part on the first path refill rate and the second path refill rate, a global refill rate;
- refill the first path token bucket using the first path refill rate to obtain a first refilled path token bucket;
- refill the second path token bucket using the second path refill rate to obtain a second refilled path token bucket;
- refill the global token bucket using the global refill rate to obtain a refilled global token bucket;
- determine, based at least in part on the first refilled path token bucket, the second refilled path token bucket, and the refilled global token bucket, at least one of the first transmission path or the second transmission path as a selected transmission path;
- and
- transmit a data packet of the data stream via the selected transmission path.
Dependencies are inferred from the claim text.