The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
* [TUHS] Re: CRC calculation in the 1980s
@ 2023-09-19 11:42 Noel Chiappa
  2023-09-19 12:54 ` Lars Brinkhoff
  2023-09-19 16:00 ` Paul Ruizendaal
  0 siblings, 2 replies; 8+ messages in thread
From: Noel Chiappa @ 2023-09-19 11:42 UTC (permalink / raw)
  To: tuhs; +Cc: jnc

    > From: Paul Ruizendaal

    > Any suggestions as to why the on-the-fly algorithm did not catch on
    > more in the 1980's? Maybe it was simply less well known than I think?

I can't answer that directly, but I will point you at IEN-56, "CRC Checksum
Calculation", by Dave Reed (11-Sep-78):

    https://www.rfc-editor.org/ien/ien56.pdf

Dave wanted the INWG to use a more powerful (in terms of detecting errors)
CRC, instead of the simple summation eventually adopted, in TCP and IP. So he
produced code to implement a particular CRC, to show people that it would not
be particularly expensive (whether in time, or space, I don't alas recall
definitively; speed would have been an important consideration, when
competing with the summation, though).

This would have been close to the leading edge of our knowledge at the time;
Dave liked playing around with math, and at about that time he did a very
fast DES implementation.

	Noel

^ permalink raw reply	[flat|nested] 8+ messages in thread
* [TUHS] CRC calculation in the 1980s
@ 2023-09-18 23:02 Paul Ruizendaal
  2023-09-18 23:34 ` [TUHS] " Robert Brockway
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Paul Ruizendaal @ 2023-09-18 23:02 UTC (permalink / raw)
  To: tuhs


When looking at old xmodem code I noticed that it calculated its CRC bit-by-bit, switching to byte-wise using a table in the late 80’s. It never seems to have used the byte-wise, “on-the-fly” algorithm. This seems to match a pattern: I often come across bit-wise and table implementations, but rarely on-the-fly implementations if any. The on-the-fly algorithm was known at least since 1983, following a paper by Perez: http://www.bitsavers.org/components/fairchild/_appNotes/Byte-wise_CRC_Jun83.pdf
The paper was noted, for example it is on the citation list of RFC1134, describing the PPP protocol. Today, a wikipedia page gives implementations for various polynomials: https://en.wikipedia.org/wiki/Computation_of_cyclic_redundancy_checks#Parallel_computation_without_table

Now, it would seem to me that on memory constrained personal computers and PDP-11’s the “on-the-fly” algorithm would have been a good choice, being just a few lines of code and maybe 30-50% slower than table lookup. The tables aren’t big, but a kilobyte is a lot when you only have 64.

Any suggestions as to why the on-the-fly algorithm did not catch on more in the 1980’s? Maybe it was simply less well known than I think?




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2023-09-19 16:22 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-19 11:42 [TUHS] Re: CRC calculation in the 1980s Noel Chiappa
2023-09-19 12:54 ` Lars Brinkhoff
2023-09-19 16:00 ` Paul Ruizendaal
  -- strict thread matches above, loose matches on Subject: below --
2023-09-18 23:02 [TUHS] " Paul Ruizendaal
2023-09-18 23:34 ` [TUHS] " Robert Brockway
2023-09-19  0:02 ` segaloco via TUHS
2023-09-19 15:34 ` Paul Winalski
2023-09-19 15:50   ` Dan Cross
2023-09-19 16:22     ` Paul Winalski

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).