A method and apparatus for performing a cyclic redundancy check (CRC) process
is
provided. The CRC is capable of being performed on data received out of order without
having to store and assemble the data. One exemplary method for computing a CRC
for a transmitted data stream initiates with performing a CRC process on a first
segment of the data stream to generate a first CRC remainder. Next, the first CRC
remainder for the first segment is projected. Then, the CRC process on a second
segment of the data stream is performed to generate a second CRC remainder. Next,
the second CRC remainder for the second segment is projected. Then, the projected
remainders are combined to calculate a complete CRC remainder for the data stream
in an order independent fashion. Data streams including multiple segments can be
handled by the CRC process.