


#Checksum definition plus
Packets - input data, plus checksum values - is also small. Why is that bad? It's bad because the space of valid So, for short packets, the Adler-32 s1 sum is guaranteed to be RFC 3309 SCTP Checksum Change September 2002 Sum has as close to a uniform distribution as possible. We want theĪccumulator to wrap as many times as possible, so that the resulting That's bad: it tells us that the value of s1 will have hot-spots atĪround 128 times the mean of the input distribution: around 16k,Īssuming a uniform distribution. Tells us that that s1 will tend to have a normal distribution. System data, it's even worse than that!), the Central Limit Theorem Independently from some distribution (they probably aren't: for file Given the further assumption that the input bytes are drawn Help here, and an even larger value doesn't really help: we can get (Even Doug's trick of adding 0x5555 doesn't Because s1 never wraps, s1 is simply the sum of the The key is to consider the distribution of the s1 values, over someĭistribution of the values of the individual input bytes in each So, for 128-byte packets, s1 never wraps. Greatest value which the s1 accumulator can have is 255 * 128 =ģ2640. There are only 128 bytes of input, so the Both s1 and s2 are computed mod-65521 (the largest prime less Don't takeĪdler-32 uses two 16-bit counters, s1 and s2. Guaranteed to give poor coverage of the available bits. "Briefly, the problem is that, for very short packets, Adler32 is Smoothly spreads its input packets over the available check bits.įrom an email from Jonathan Stone, who analyzed the Adler-32 as part One requirement of an effective checksum is that it evenly and Implementations are expected to immediately switch to the newĪlgorithm use of the old algorithm is deprecated. Graceful transition mechanism for migrating to the new checksum. This document updates and replaces theĪdler-32 checksum definition in. RFC 3309 SCTP Checksum Change September 2002 1 IntroductionĪ fundamental weakness has been detected in SCTP's current Adler-32Ĭhecksum algorithm. This document changes that checksum and updates SCTP to useġ Introduction. For small packets Adler-32 provides weak detection ofĮrrors. Stream Control Transmission Protocol (SCTP) currently uses an Adler-ģ2 checksum. Distribution of this memo is unlimited.Ĭopyright (C) The Internet Society (2002). Official Protocol Standards" (STD 1) for the standardization stateĪnd status of this protocol. Please refer to the current edition of the "Internet Internet community, and requests discussion and suggestions for This document specifies an Internet standards track protocol for the Stream Control Transmission Protocol (SCTP) Checksum Change RFC 3309: Stream Control Transmission Protocol (SCTP) Checksum Change
