TCPv4 checksum errors

Andreas Schwab schwab at issan.informatik.uni-dortmund.de
Tue Dec 29 00:12:27 EST 1998


Alan Cox <alan at cymru.net> writes:

|> > Alan Cox <alan at cymru.net> writes:
|> > 
|> > |> The classic bad packet error is a frame that ends up with
|> > |> 
|> > |> checksum =FFFF end around carry left =1
|> > 
|> > There can never be a carry if the sum is FFFF.  A sum of two 16 bit values
|> > is never be bigger than 1FFFE.
|> 
|> (2 previous + previous carry)

You can only get in this situation if you start off with a carry in the
first place, and all other values are FFFF.  Also remember that an IP
packet is <= 65535 octets, or <= 32768 16 bit words (hexets?).  Thus you
can never get more than 32767 carries, which you can collect in a single
16 bit word, which is one of the values in the final folding round.

Andreas.

[[ This message was sent via the linuxppc-dev mailing list. Replies are ]]
[[ not forced back to the list, so be sure to  Cc linuxppc-dev  if your ]]
[[ reply is of general interest. To unsubscribe from linuxppc-dev, send ]]
[[ the message 'unsubscribe' to linuxppc-dev-request at lists.linuxppc.org ]]




More information about the Linuxppc-dev mailing list