Methods, apparatuses and systems facilitating data transmission across bonded communications paths
First Claim
1. A method facilitating the re-sequencing of user cells transmitted across one or more bonded communications paths, comprising:
- receiving user cells, wherein each user cell has a sequence number associated therewith;
generating time stamp values for the user cells, wherein the time stamp value is based on the time the user cell is received;
writing the user cells and corresponding time stamps to locations in a sequence queue based on the respective sequence numbers associated with the user cells;
maintaining the lowest time stamp value and the location in the sequence queue corresponding to the user cell having the lowest sequence number;
performing a conditional read operation on the sequence queue to read the user cell associated with the lowest sequence number, wherein the read operation is conditioned on the current time being greater than or equal to the time the first user cell was received plus a delta time.
3 Assignments
0 Petitions
Accused Products
Abstract
Methods, apparatuses and systems facilitating the aggregation or bonding of communications paths into a higher-bandwidth, logical communications path. Embodiments of the present invention can be applied to bond different physical links (e.g., xDSL over twisted pairs), different channels on the same physical line, or even different channels or frequencies in a wireless communications network. The present invention further provides methods, apparatuses and systems facilitating the re-sequencing of data flows transmitted across bonded communications paths. In one embodiment, the re-sequencing methodology of the present invention adapts to the transmission delays (both absolute and relative) across the bonded communications path.
-
Citations
47 Claims
-
1. A method facilitating the re-sequencing of user cells transmitted across one or more bonded communications paths, comprising:
-
receiving user cells, wherein each user cell has a sequence number associated therewith; generating time stamp values for the user cells, wherein the time stamp value is based on the time the user cell is received; writing the user cells and corresponding time stamps to locations in a sequence queue based on the respective sequence numbers associated with the user cells; maintaining the lowest time stamp value and the location in the sequence queue corresponding to the user cell having the lowest sequence number; performing a conditional read operation on the sequence queue to read the user cell associated with the lowest sequence number, wherein the read operation is conditioned on the current time being greater than or equal to the time the first user cell was received plus a delta time. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for operating on a sequence queue and sequencing data structure to facilitate the re-sequencing of user cells transmitted across bonded communications paths, wherein user cells includes a sequence number associated therewith, and wherein the sequencing data structure includes fields to maintain the lowest time stamp value, a read address, a write address, and a read bit operative to condition reading of user cells from the sequence queue, comprising
receiving a cell from a bonded communications path; -
if the cell is a user cell, then; generating a time stamp for the user cell, wherein the time stamp is the arrival time of the user cell plus a delta time; writing the user cell and the time stamp to a location in the sequence queue based on the sequence number associated with the user cell; setting the write address of the sequencing data structure to the location in the sequence queue corresponding to the user cell; maintaining the lowest time stamp value and the location of the user cell associated with the lowest sequence number in the read address of the sequencing data structure; if the read bit is invalid, and the current time is greater than or equal to the lowest time stamp maintained in the sequencing data structure, then; setting the read bit to valid; reading the user cell stored in the location maintained by the read address field of the sequencing data structure from the sequence queue; updating the lowest time stamp value and the read address of the sequencing data structure; otherwise, if the read bit is valid, then; if the read address does not equal the write address, then; if the current time is greater than or equal to the time stamp associated with the user cell corresponding to the read address, then; reading the user cell stored in the location maintained by the read address field of the sequencing data structure from the sequence queue; updating the lowest time stamp value and the read address of the sequencing data structure; else, if the read address equals the write address, then setting the read bit to invalid. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A method facilitating the re-sequencing of user cells transmitted across one or more bonded communications paths, comprising:
-
receiving cells across the one or more bonded communications paths, wherein each user cell has a sequence number associated therewith; decrementing a burst count value for each cell received after a first read operation has been performed; generating time stamp values for the user cells, wherein the time stamp value is based in part on the time the user cell is received; writing the user cells and corresponding time stamps to locations in a sequence queue based on the respective sequence numbers associated with the user cells; maintaining the lowest time stamp value and the location in the sequence queue corresponding to the user cell having the lowest sequence number; upon receipt of each cell from the one or more bonded communications paths, performing at least a first read operation on the sequence queue to read the user cell associated with the lowest sequence number, wherein the first read operation is conditioned on the current time being greater than or equal to the time the first user cell was received plus a delta time;
wherein the subsequent read operations are performed until an invalid sequence queue location is encountered;
wherein the read operations comprise;reading the user cell from the sequence queue; and updating the lowest time stamp value and the location in the sequence queue corresponding to the user cell having the lowest sequence number; incrementing the burst count value; waiting until the burst count value is zero before performing subsequent read operations; and re-initializing the read operation if the last written user cell is read from the sequence queue.
-
-
31. A method for operating on a sequence queue and sequencing data structure to facilitate the re-sequencing of user cells transmitted across bonded communications paths, wherein user cells have a sequence number associated therewith, and wherein the sequencing data structure includes fields to maintain the lowest time stamp value, a burst count, a read address, a write address, and a read bit operative to condition reading of user cells from the sequence queue, comprising
receiving a cell from a bonded communications path; -
if the cell is a user cell, then; generating a time stamp for the user cell, wherein the time stamp is the arrival time of the user cell plus a delta time; writing the user cell and the time stamp to a location in the sequence queue based on the sequence number associated with the user cell; setting the write address of the sequencing data structure to the location in the sequence queue corresponding to the user cell; decrementing the burst count stored in the sequencing data structure if the read bit is valid; maintaining the lowest time stamp value and the location of the user cell associated with the lowest sequence number in the read address of the sequencing data structure; if the read bit is invalid, and the current time is greater than or equal to the lowest time stamp maintained in the sequencing data structure, then; setting the read bit to valid; reading the user cell stored in the location maintained by the read address field of the sequencing data structure from the sequence queue; updating the lowest time stamp value and the read address of the sequencing data structure; incrementing the burst count value stored in the sequencing data structure; otherwise, if the read bit is valid, then; if the read address does not equal the write address, then; if the wait bit is set and the burst count value equals zero, then; resetting the wait bit; updating the lowest time stamp value and the read address of the sequencing data structure; and incrementing the burst count value stored in the sequencing data structure; if the wait bit is not set and the read address corresponds to a valid user cell, then; reading the user cell stored in the location maintained by the read address field of the sequencing data structure from the sequence queue; updating the lowest time stamp value and the read address of the sequencing data structure; and incrementing the burst count value stored in the sequencing data structure; else, if the read address equals the write address, reinitializing the read bit in the sequencing data structure.
-
-
32. A system allowing for aggregation of a plurality of communications paths into a logical communications path, comprising
a first bonding engine operably coupled via a plurality of native communications paths to a second bonding engine; -
wherein the first bonding engine is operative to; receive native data streams comprising a plurality of packets, each packet including a header and a payload; convert the native data streams by aggregating at least two payloads associated with the packets into corresponding bonded frames; and transmit the bonded frames across at least one of the plurality of native communications paths to the second bonding engine; wherein the size of each bonded frame is determined by the speed of the native communications path over which it is transmitted and a maximum delay time; wherein the second bonding engine is operative to recover the native data stream from the bonded frames. - View Dependent Claims (33, 34, 35)
-
-
36. A method enhancing the efficiency of data transfer over a communications path, comprising
detecting the transmission speed of a communications path to a remote network device; -
receiving a native data stream comprising a plurality of native cells, wherein the native cells each comprise a cell header and a payload; aggregating payloads of the native cells associated with the native data stream into a bonded frame, wherein the number of payloads in the bonded frame depends on the transmission speed of the communications path; transmitting the bonded frame over the communications path to the remote network device. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
Specification