Re: Question on PE Checksum
Michael Tuexen <[email protected]> Fri, 22 Jul 2005 09:43:00 +0200
| Newsgroups | gmane.ietf.rserpool |
|---|---|
| Message-ID | <[email protected]> |
Walter, see my comments in-line. Best regards Michael On Jul 21, 2005, at 23:47 Uhr, Johnson Walter-CWJ002 wrote: > The only inconsistency we are trying to detect is within the > handlespace of the registrars. What we need to know is the probability > that the PE Checksum calculated for a particular registrar will result > in the same PE Checksum value calculated using different byte block > data (incorrect registrar handlespace data). If different we want to > synchronize our handlespace. Basically we want to have a consistent > handlespace knowing which registrars own which PEs. It is clear at that level... But what kind of inconsistencies? - A PE is registered at one side but not at the other. - Differences in the data of a PE registered at both sides. - ? If one can not get any specific error model it is the best to assume that the 16 checksum will not detect an inconsistency with a probability of 1/2^16. > > If the PE checksum does match for different byte block data does it > matter? Phrased another way, do the handlespace inconsistencies > matter? I don't see a case where this matters from a basic operational > standpoint. > > > -----Original Message----- > From: Michael Tuexen [mailto:[email protected]] > Sent: Thursday, July 21, 2005 3:37 PM > To: Johnson Walter-CWJ002 > Cc: Thomas Dreibholz; [email protected] > Subject: Re: [Rserpool] Question on PE Checksum > > Hi Walter, > > see my comments in-line. > > Best regards > Michael > > > On Jul 21, 2005, at 21:49 Uhr, Johnson Walter-CWJ002 wrote: > >> Not that I have verified this 32 bit Internet Checksum algorithm >> (http://www.csee.usf.edu/~christen/tools/check32.c) for accuracy or >> efficiency/optimization. But this seems to indicate a method where a >> 32 bit Internet Checksum can be calculated using only a 32 bit >> processor. > Just to be clear: I have not said that you can not compute the 32 bit > checksum > on a 32 bit processor. What I wanted to point out out is that the > common efficient > way of computing the checksum makes use of a larger integer type where > you can accumulate > the overflows without having explicit statements for that in the code. > > From the code you cited: > > sum = sum + *((word32 *) addr)++; > count = count - 4; > if (sum < sum_last) overflow++; > sum_last = sum; > > The optimized versions do not have the last two lines of the inner loop > shown above. >> >> If true, I guess my main concern is if people believe/know if moving >> to a 16 bit Internet Checksum with its reduced ability of detecting an >> inconsistency in the handlespace is better than using a non-optimized >> 32 bit Internet Checksum hash or a very efficient 32 bit XOR hash >> (instead of 16 bit Internet Checksum hash) which may not be optimally >> spread/unique as compared to a 32 bit Internet Checksum but >> potentially better than a 16 bit Internet Checksum. > My feeling (that means I can not prove it) is that we should use a > checksum here and not an XOR. The 16 bit checksum > can be computed efficiently on every platform running IP, the 32 bit > may or may not be computed as efficient. > The real question for me is: Do we need a better one than 16 bit > checksum. What kind of inconsistencies are we expecting? > I have no idea on that. What do others think? >> >> Thanks >> Walter >> >> -----Original Message----- >> From: Michael Tuexen [mailto:[email protected]] >> Sent: Thursday, July 21, 2005 10:00 AM >> To: Thomas Dreibholz >> Cc: [email protected]; Johnson Walter-CWJ002 >> Subject: Re: [Rserpool] Question on PE Checksum >> >> Thomas, >> >> the question is not if it is available in a programming language, but >> if it is available on all processors the protocol runs on. >> And that point is what I'm not sure about. And I'm not talking >> about about servers or workstations, but processors used in embedded >> devices and so on. >> >> The other point is that people do have some highly optimized code >> for the 16 bit stuff, but not for the 32 bit stuff. But they can build >> it if the processor supports 64 bit integer arithmetic. >> >> Best regards >> Michael >> >> >> On Jul 21, 2005, at 11:19 Uhr, Thomas Dreibholz wrote: >> >>> -----BEGIN PGP SIGNED MESSAGE----- >>> Hash: SHA1 >>> >>> On Thursday 21 July 2005 09:21, Michael Tuexen wrote: >>>> Hi Walter, >>>> >>>> I have looked into efficient ways of implementing the Internet >>>> checksum >>>> and figured >>>> out that you need 32 bit arithmetic to calculate the 16 bit >>>> checksum. >>>> When using >>>> a '32 bit Internet checksum' this would require support for 64 bit >>>> integers. >>> >>> Yes. >>> >>>> I do think that we should not require that. >>> >>> But is this really relevant on today's computers and compilers? >>> Working with >>> 64-bit integers ("long long" datatype) is for example part of the >>> ANSI-C >>> standard since ANSI C99 (http://www.nirvani.net/docs/ansi_c.pdf). >>> This >>> standard is six years old. >>> >>> I think the effort to use the 32-bit sum is not significantly higher >>> than to >>> use the 16-bit sum; but the probability that handlespace >>> inconsistencies are >>> detected is. >>> >>> >>> Best regards >>> - -- >>> ===================================================================== >>> = >>> = >>> Dipl.-Inform. Thomas Dreibholz >>> >>> University of Essen, Room ES210 >>> Inst. for Experimental Mathematics Ellernstraße 29 >>> Computer Networking Technology Group D-45326 >>> Essen/Germany >>> - >>> --------------------------------------------------------------------- >>> - >>> - >>> E-Mail: [email protected] >>> Homepage: http://www.exp-math.uni-essen.de/~dreibh >>> ===================================================================== >>> = >>> = >>> -----BEGIN PGP SIGNATURE----- >>> Version: GnuPG v1.2.4 (GNU/Linux) >>> >>> iD8DBQFC32im32BbsHYPLWURAjLRAJ0Rw450qEZypJ52M6vfxi+WGeU5fACfX1hY >>> 98Q/vzXnwNsqwmUEym2ILpc= >>> =8ijA >>> -----END PGP SIGNATURE----- >>> >> >