Methods and apparatus are disclosed for distributed resequencing of packets
belonging to an original stream of packets in a computer or communications system.
Typically, packets of the original stream are marked with a sequence number, timestamp,
or other ordering indication, and distributed among different paths and arriving
at a location possibly out of their original sequence. These packets are received
at the location by multiple resequencing components, which distribute information
as to received packets and coordinate the sending of packets from themselves so
as to produce a stream of resequenced packets. In one implementation, each of the
multiple resequencing components maintains one or more data structures indicating
packets stored locally and those packets stored anywhere (or elsewhere) within
the multiple resequencing components. When a next packet in the original sequence
has been received, the packet is sent out.