RFC 3385 (rfc3385) - Page 3 of 23
Internet Protocol Small Computer System Interface (iSCSI) Cyclic Redundancy Check (CRC)/Checksum Considerations
Alternative Format: Original Text Document
RFC 3385 iSCSI CRC Considerations September 2002
Because the error detection mechanisms will have to transport large
amounts of data (petabytes=10^16 bits) without errors, we will target
very low probabilities for undetected errors for all block lengths
(at 10Gb/s that much data can be sent in less than 2 weeks on a
single link).
Alternatively, as iSCSI has to perform efficiently, we will require
that the error detection capability of a selected protection
mechanism be very good, at least up to block lengths of 8k bytes
(64kbits).
The error detection capability should keep the probability of
undetected errors at values that would be "next-to-impossible". We
recognize, however, that such attributes are hard to quantify and we
resorted to physics. The value 10^23 is the Avogadro number while
10^45 is the number of atoms in the known Universe (or it was many
years ago when we read about it) and those are the bounds of
incertitude we could live with. (10^-23 at worst and 10^-45 if we
can afford it.) For 8k blocks, the per/bit equivalent would be
(10^-28 to 10^-50).
3. Background and Literature Survey
Each codeword of a binary (n,k) CRC code C consists of n = k+r bits.
The block of r parity bits is computed from the block of k
information bits. The code has a degree r generator polynomial g(x).
The code is linear in the sense that the bitwise addition of any two
codewords yields a codeword.
For the minimal m such that g(x) divides (x^m)-1, either n=m, and the
code C comprises the set D of all the multiplications of g(x) modulo
(x^m)-1, or n