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

イーサネットパケットの構造。FCSはイーサネットフレームの最後についている[1]

目的

編集

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

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

実装

編集
 
イーサネットフレームの詳細な構造

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

種類

編集

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

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

関連項目

編集

脚注

編集
  1. ^ (PDF) 802.3-2012 - IEEE Standard for Ethernet, IEEE Standards Association, (2012-12-28), http://standards.ieee.org/findstds/standard/802.3-2012.html 2015年7月5日閲覧。 
  2. ^ Cf: Wendell ODOM, Ccie #1624, Cisco Official Cert Guide, Book 1, Chapter 3: Fundamentals of LANs, Page 74
  3. ^ Frame Relay Glossary”. Cisco Systems (2009年4月30日). 2015年7月5日閲覧。
  4. ^ Computing the Internet Checksum (英語). doi:10.17487/RFC1071. RFC 1071