5 Oct 1987 16:28-EDT
One could, given suitable hardware, etc. compute the checksum more
than 16 bits at at time - e.g., use 32-bit arithmetic (or some other higher
number). There are at least two ways - adding 16 bits into a wider accumulator
which reduces/eliminates checking for carry/overflow, or adding 32 bits at a
time into the accumulator, reducing the number of memory fetches/adds/carry
checks by a factor of 2 (more if you have 64 bit arithmetic, etc.).
One can also compute the checksum as the data is being placed
into the packet, instead of computing it after the packet has been "built".
On retransmissions/repacketizations, one can "update" the checksum
(subtract out the old (header) values and add in the new) instead of
recomputing the sum of the data each time (the checksum is weak enough that
byte-pair position, order of summation, etc. doesn't matter).
This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:39:34 GMT