A segmentation and re-assembly (SAR) decode engine receives protocol data units
of data from a communication channel between two computers, sequences the protocol
data units, and re-assembles the data in the protocol data units into the messages
exchanged by the computers. The SAR decode engine is responsible for unpacking
the payloads from the protocol data units as instructed by a protocol interpreter
associated with the protocol data unit, and for creating and maintaining a flow
object database containing flow objects representing the data flows at each protocol
layer. The SAR decode engine creates a protocol flow object for each protocol layer
and logically links the protocol flow object to circuit flow objects that define
two one-way circuits within the channel. The circuit flow objects linked to a protocol
flow object are logical representations of the protocol data units for the next
higher protocol layer. For protocols that fragment data, each circuit flow object
is a vector list containing one or more vectors that define the length, starting
location and position of the data fragments in the immediately lower layer circuit
flow objects.