diff --git a/codes/classical/bits/easy/checksum/internet_checksum.yml b/codes/classical/bits/easy/checksum/internet_checksum.yml new file mode 100644 index 000000000..aa9f55c5d --- /dev/null +++ b/codes/classical/bits/easy/checksum/internet_checksum.yml @@ -0,0 +1,24 @@ +####################################################### +## This is a code entry in the error correction zoo. ## +## https://github.com/errorcorrectionzoo ## +####################################################### + + + +code_id: 'internet_checksum' + +name: 'Internet Checksum code' + +description: 'A classical error-detection method that treats data as a sequence of numerical values and computes their sum. In most network protocols, the data is divided into equal-sized segments (typically 16-bit words) and added together using 1''s complement arithmetic. The final sum is then bitwise complemented to generate the checksum value.' + +introduced: '\cite{doi:10.17487/RFC1071}' + +protection: 'Detects all single-bit errors and any burst error up to the length of the checksum (e.g., 16 bits). However, it is unable to detect errors that do not change the arithmetic sum, such as the reordering of data segments (transpositions) or the addition of zero-valued blocks.' + +realizations: + - 'Used extensively in the internet protocol suite (TCP/IP) for headers and data integrity as defined in RFC 1071 \cite{doi:10.17487/RFC1071}.' + - 'Advanced variants like the Fletcher checksum \cite{manual:{J. G. Fletcher, "An Arithmetic Checksum for Serial Transmissions," 1982.}} and Adler-32 include positional information to detect transposition errors.' + +_meta: + + stub: false