SUN V2 tcp checksum problems

Geoffrey H. Cooper (GEOF@XX.LCS.MIT.EDU)
Fri 24 Jan 86 17:58:11-EST

In the 2.2 release of Imagen's TCP code the printer accepts TCP segments
of 1425 bytes. The latest version of the SUN network software (2.x?)
sends these segments with a bad tcp checksum. The checksums are random,
not just off by one or two. A Vax 4.2 sending the same file with the
same sender program to the same printer also sends 1425 byte segments,
but the tcp checksums in these are accepted by the printer. Also, I
tried two different checksum subroutines on the SUN packets (one with
fancy unrolled loops, and one with a simple tight loop). Both indicated
the same computation and both rejected the same segments. Finally, I
took a look at the network statistics on a vax that is often connected to
SUN's. Guess what? There were several hundred bad TCP checksums recorded.
Apologies in advance if it turns out that the problem is mine, but the
evidence points quite strongly to the SUN.

To generate the full sized segments you must attempt to write more than 1425
bytes at once. I did it by calling write with 2048 byte blocks. I have
empirically determined that calling write with smaller values (e.g., 512
bytes) does not exercise the bug.

Has anyone else seen this? (does anyone else request such large and odd
sized segments from a SUN?) If there is anyone from SUN out there who
would like to track down the problem, I will be more than happy to help.
Contact me through IMAGEN (408)986-9400 or at decwrl!imagen!geof or

- Geof Cooper

This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:35:39 GMT