Frame Check Sequence

frame check sequence（フレームチェックシーケンス、FCS）とは、通信プロトコルのフレームにエラー検出のために付加されるコードである。フレームは、送信元から送信先にペイロードを送信するために使用される。

目的 
フレームやその中に含まれるビット、バイト、フィールドは、様々な要因によるエラーの影響を受けやすい。FCSフィールドには、送信元においてフレーム内のデータに基づいて計算された数値が含まれている。この数値は、送信されるフレームの最後に追加される。宛先ノードでは、フレームを受信したとき、受信したフレーム内のデータに基づいて同じアルゴリズムでFCSの数値を再計算し、フレームに含まれるFCSの数値と比較する。2つの数値が異なる場合は、エラーとみなされ、フレームは破棄される。

FCSはエラー検出のみを提供する。エラー訂正は別の手段を使って実行する必要がある。例えば、イーサネットの仕様では、破損したフレームは廃棄すべきであると規定されているが、フレームを再送させるための動作は規定されていない。TCPなどの上位プロトコルにてデータの欠損が検出され、再送とエラー訂正が行われる。

実装 

FCSは、受信側がフレームの最後のFCSを受信した時点で、フレーム全体の積算合計を計算できるような方法で送信されることが多い。イーサネットなどのIEEE 802プロトコルでは、データは最下位ビットが最初に送信され、FCSは最上位ビット（ビット31）が最初に送信されると標準で規定されている。代替的なアプローチは、反転したFCSもまた、最下位ビット（ビット0）を最初に送ることができるように、FCSのビット反転を生成することである。詳細はイーサネットフレーム#フレームチェックシーケンスを参照。

種類 
FCSのアルゴリズムで最もよく使用されるのは巡回冗長検査(CRC)である。32ビットのイーサネットやその他のIEEE 802プロトコル、16または32ビットのX.25、16または32ビットのHDLC、16ビットのフレームリレー、16または32ビットのPoint-to-Point Protocol(PPP)、およびその他のデータリンク層プロトコルで使用される。

インターネットプロトコルスイートのプロトコルは、チェックサムを使用する傾向がある。

関連項目

脚注 

リンク層プロトコル