Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!tut.cis.ohio-state.edu!ucbvax!PESCADERO.STANFORD.EDU!deering From: deering@PESCADERO.STANFORD.EDU (Steve Deering) Newsgroups: comp.protocols.tcp-ip Subject: Re: more on Fletcher Message-ID: <89.12.09.1713.750@pescadero.stanford.edu> Date: 10 Dec 89 01:13:00 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 22 Keith, My reason for wanting the checksum at the end of the packet is to allow a high-performance (hardware-assisted) implementation to compute the checksum on the fly as it copies a packet onto the wire, tacking it on at the end. This eliminates one expensive pass over the packet. I believe that Ultra's speedy TP-4 implementation places the checksum at the end for the same reason. > It wouldn't be hard to come up with a minor modification to > the VMTP checksum having the same property of position independence, > which would be almost as fast to compute as the TCP checksum. We'd welcome any suggestions. We did consider using 16-bit Fletcher (i.e., two 16-bit accumulators, yielding a 32-bit result), but as you mentioned, it would be several times slower than the TCP checksum. The TCP checksum takes basically one instruction per 32-bit word on common processors (using add-with-carry and loop unrolling); it's pretty hard to beat that. VMTP's checksum is a few percent slower than TCP's; it's not as strong as we would like. Steve