フレッチャーのチェックサム

フレッチャーのチェックサム（）は、ジョン・G・フレッチャー（John G. Fletcher）が考案した誤り検出符号の一種である。単純なチェックサムより信頼性が高い。
アルゴリズム.
まずデータを値の列formula_1と定義する。チェックサム用の変数formula_2を用意し、数列を以下のように計算する。
この時 formula_5 と formula_6 の値を並べたものがフレッチャーのチェックサムformula_7である。
バリエーション.
フレッチャーのチェックサムには、エンディアン、データの分割幅および変数formula_8の法formula_9ごとにいくつかのバリエーションがある。
また、剰余演算を避けるため、法をformula_10の形へと簡略化した独自実装がなされる事がある。
多次のフレッチャーのチェックサム.
フレッチャーのチェックサムを強化したものとして、変数をformula_8の2変数から、3変数以上に自然に拡張したものがある。この場合の計算は下のように行われる。
フレッチャーのチェックサムの基本形は二次の形式であり、
単純なチェックサムは一次のフレッチャーチェックサムの一種であるとみなせる。
使用例.
ZFSでは、データを64bitごとに分割し、奇数番目と偶数番目のデータを分離してそれぞれ別に Fletcher-128 を計算する fletcher2 と、データ32bit、変数幅64bitの、四次のフレッチャーチェックサムを用いる fletcher4 が使用されている。 
また、TCP用のチェックサムのオプションとしても規格化されている。