Systems and methods for processing any-to-any transmissions
First Claim
Patent Images
1. A method for any-to-any transmission of data blocks in a data processing system, comprising:
- receiving, at the data processing system, a plurality of data blocks associated with an incoming data stream;
assigning the data blocks to a plurality of input links using a load balancing technique to balance a quantity of the data blocks assigned to each of the plurality of input links;
sending the data blocks to a plurality of processing paths via the plurality of input links;
independently processing the data blocks by the plurality of processing paths;
outputting the processed data blocks from the plurality of processing paths in an order different from an order in which the data blocks were received;
restoring the order of the processed data blocks to the order in which the data blocks were received at the data processing system; and
transmitting the ordered data blocks on an outgoing data stream.
0 Assignments
0 Petitions
Accused Products
Abstract
A data processing system performs any-to-any transmission of data blocks. The system receives the data blocks on incoming data streams, and load balances the data blocks across a number of processing paths. The processing paths process the data blocks causing one or more of the data blocks to become out of order relative to an order in which the data blocks were received. The system hashes the data blocks to determine a manner in which to transmit the data blocks, reorders the data blocks to restore the order in which the data blocks were received, and transmits the reordered data blocks on outgoing data streams.
40 Citations
19 Claims
-
1. A method for any-to-any transmission of data blocks in a data processing system, comprising:
-
receiving, at the data processing system, a plurality of data blocks associated with an incoming data stream; assigning the data blocks to a plurality of input links using a load balancing technique to balance a quantity of the data blocks assigned to each of the plurality of input links; sending the data blocks to a plurality of processing paths via the plurality of input links; independently processing the data blocks by the plurality of processing paths; outputting the processed data blocks from the plurality of processing paths in an order different from an order in which the data blocks were received; restoring the order of the processed data blocks to the order in which the data blocks were received at the data processing system; and transmitting the ordered data blocks on an outgoing data stream. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A data processing system, comprising:
-
a plurality of input circuits, one input circuit, of the plurality of input circuits, connecting to an input stream and a plurality of input links, where the one input circuit is to; receive a plurality of data blocks on the input stream in a first order, assign the data blocks to the plurality of input links based on a load balancing scheme to balance a quantity of the data blocks assigned to each of the plurality of input links, and send the data blocks to the plurality of input links to which the data blocks were assigned; a plurality of processing paths, connected to the plurality of input links, to; independently process the data blocks, output the data blocks in a second order that differs from the first order; and a plurality of output circuits connected to the plurality of processing paths, where one output circuit, of the plurality of output circuits, is to; receive the data blocks in the second order, reorder the data blocks from the second order to the first order, and transmit the reordered data blocks from the one output circuit. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A network device, comprising:
-
at least one input circuit to; receive a plurality of data blocks in a first order, assign sequence numbers to the data blocks, the sequence numbers identifying a relative order of the data blocks within the first order, and output the data blocks to one or more input links, where when outputting the data blocks to the one or more input links, the at least one input circuit is to distribute the data blocks across the one or more input links using a load balancing technique; a plurality of processing paths, connected to the one or more input links and one or more output links, to; receive the data blocks via the one or more input links, process the data blocks, and output the data blocks to the one or more output links; and at least one output circuit to; receive, via the one or more output links, the data blocks from the processing paths in a second order that differs from the first order, restore the data blocks to the first order using the sequence numbers, and transmit the data blocks in the first order. - View Dependent Claims (18, 19)
-
Specification