|
チェックサム (Check Sum)とは誤り検出符号の一種である。符号値そのものを指すこともある。他の誤り検出符号と比べて信頼性は低いが、それでも単純計算で99.5%以上(1オクテットのチェックサムの場合255/256、2オクテットなら65535/65536)の検出率がある上にアルゴリズムが簡単であることから、簡易な誤り検出に用いられる。 また、誤り検出その他データの検証のための符号として広く使われてきた経緯から、俗に誤り検出符号自体の代名詞としても用いられる場合がある。例えばCRCの符号値やMD5のハッシュ値を、それぞれ「CRCチェックサム」「MD5チェックサム」と呼ぶことがある。これらはアルゴリズムが異なり''sum''でもないため「チェックサム」と呼ぶことは、語義的には正確ではないものの、「(チェックサムよりも)信頼性の高い誤り検出符号」程度の意味で使われる。 == アルゴリズム == 算出方法は非常に簡単で、もっとも単純なものは、ワード列の個々のワードの総計(sum)の下位1ワードをそのまま符号値とするものであり、1ワードを何ビットとするかは実装によって異なる。 例えば、8ビットのワード列「00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F」の総和は「78」であるので、そのチェックサムは「78」となる。 総計のどのビット群を符号値とするか、符号値をどのように扱うかなどで、派生した種類がある。 ネットワークを利用してのデータ送信時、IPパケットにデータを分割した際のIPヘッダの検査での利用例を以下に示す。 # IPヘッダのチェックサムフィールドにゼロをセット # IPヘッダを16ビット単位で加算 # 総計の下位16ビットの補数をIPヘッダのチェックサムフィールドにセット # 送信 # 受信したらIPヘッダを16ビット単位で加算 # 総計がゼロなら正常(チェックサムフィールドにはチェックサムフィールドがゼロの場合のチェックサムの補数がセットされているので、総計=チェックサムフィールド以外のチェックサム+チェックサムフィールド以外のチェックサムの補数=ゼロになれば正しい 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「チェックサム」の詳細全文を読む スポンサード リンク
|