Packets a grouped together to form random length messages. The
sequence length refers to how many packets comprise the
message, and each packet is tagged with its position in that sequence.
All packets in the same message have the same serial number.
Messages are built up as their constituent packets arrive. It should
be possible to interleave the packets of different messages
and still have the individual messages be constructed
properly.
It is tacitly assumed that packets arrive in their proper
sequence order.
A packet with a sequence position/length field denoting [0 of 0] is a
cancellation packet. The message having that serial number should be
discarded.