Skip to Content

ネットワーキングにおける巡回冗長検査(CRC)とは?

巡回冗長検査とは?

巡回冗長検査(CRC:Cyclic Redundancy Check)は、チェックサムと呼ばれる特殊なコードを元の情報に追加することで、送信データのエラーを検出する方法を提供する数学的手法です。このチェックサムは、受信側で再計算され、データの整合性が確認されます。CRC は、信頼性の高いデータ転送が最優先されるネットワークにおける潜在的なデータ破損の特定と修正において重要な役割を果たします。また、ハード・ドライブやフラッシュ・メモリなどのデータ・ストレージ・システムでも使用され、保存データの正確性を検証します。CRC は、Modbus、コントローラ・エリア・ネットワーク(CAN)など、信頼性の高いデータ転送が不可欠なプロトコルにおいて極めて重要です。

CRC の仕組み

CRC は、送信されるデータを多項式として扱うことに基づいています。送信者と受信者は、多くの場合、生成多項式と呼ばれる除算多項式に合意します。データはチェックサムが付加されます。チェックサムは、元データを生成多項式で割った余りです。送信者の最後に、CRC チェックサムが計算され、送信前にデータに追加されます。受信側では、受信データとチェックサムは、同じ生成多項式で割られます。残りがゼロの場合、データはエラーなしとみなされます。そうでない場合、エラーが検出されます。

CRC 多項式や循環型コードの使用は複雑に聞こえるかもしれませんが、概念は思ったよりもシンプルです。これらの多項式は、本質的に、誤差検出プロセスに役立つ数学的表現です。CRC における巡回符号は、有効な符号語の巡回シフトが別の有効な符号語をもたらす符号をさします。

よりよく理解するために、基本的なチェックサムを使用したエラー修正の簡単な例を検討してください。バイナリ番号を送信し、元のビットのパリティまたは合計を表すビットを追加するとします。受信したデータが予想されるパリティと一致しない場合、エラーが検出されます。

CRC は、このプロセスのより高度なバージョンです。CRC 多項式は、単純な合計ではなく、より複雑な計算を実行し、冗長性を高め、エラー検出機能を強化します。この複雑さの増大は、より微妙なエラーを処理し、より堅牢なエラーチェック・メカニズムを提供するために不可欠です。

FlashArray をテストドライブ

ピュア・ストレージはブロック/ファイル・ストレージをシンプルにします。ハンズオンでお試しいただけます。

テストドライブのご用命

なぜ CRC を使用するのか

CRC は、メッセージのビットの順序を変更する可能性のあるエラーの検出に特に効果的です。これは、ビットの正確なシーケンスを維持することが、データを正しく解釈するために不可欠であるシナリオでは非常に重要です。

CRC の主な利点の 1 つは、特にバイナリ・ハードウェアでの実装がシンプルであることです。アルゴリズムはビット単位の簡単な操作により、ハードウェアベースのエラーチェックを効率的にします。

CRC は、導入が容易であるだけでなく、数学的に分析しやすい点も特徴です。これにより、システムのエラーチェック機能を理解し、最適化する必要がある設計者やエンジニアにとって魅力的な選択肢となります。CRC の数学的特性により、性能特性に関する深い知見が得られ、特定のアプリケーションのためのパラメータの微調整に役立ちます。

現実のコミュニケーション・チャネルでは、ノイズは避けられない要素です。CRC は、データ送信中にノイズによって生じる一般的なエラーの検出において特に堅牢です。その巡回性と多項式除算に基づき、信号のランダムな変動や障害によって引き起こされるエラーを効果的に検出できます。

適切な多項式の選択

CRC の中心にあるのは、チェックサムの生成と検証に使用される多項式です。多項式の選択は、CRC のエラー検出能力に大きく影響します。多項式は、多項式除算の除数として機能し、チェックサムの構造を決定します。

適切な多項式を選択するには、いくつかの要素を考慮する必要があります。例えば、多項式の程度は、チェックサムの長さ、ひいては、エラー検出機能に影響を与えます。より長いチェックサム(エラー検出の強化)と計算コストのバランスを取ることは、非常に重要な検討事項です。

他の要因には、その非還元性などの多項式の数学的特性が含まれます。非還元型の多項式により、CRC アルゴリズムは広範囲のエラーを検出できます。さらに、アプリケーションによっては、バースト・エラー検出などの特定の特性を必要とする場合があり、多項式の選択の影響を受ける可能性があります。

複数の標準多項式が CRC の計算に一般的に使用されています。多項式の選択は、アプリケーションの特定の要件によって異なります。例えば、CRC-32 多項式(0x04C11DB7)はネットワーク通信プロトコルで頻繁に使用され、CRC-16 多項式(0x8005)はストレージ・システム内でアプリケーションを検出します。CRC-CCITT 多項式(0x1021)は、電気通信での使用でよく知られています。

各多項式は独自の特性をもたらし、適切なものを選択するには、アプリケーションの要件と、エラー検出機能と計算効率の間の望ましいトレードオフを慎重に考慮する必要があります。

CRC 性能の最適化

CRC は強力なエラーチェック・アルゴリズムですが、性能を向上させる方法には次のようなものがあります。

  • テーブルベースの事前計算:CRC 値を事前計算し、一般的に使用される入力用にテーブルに格納します。これにより、反復計算の必要性が軽減され、全体的な性能が大幅に向上します。
  • 並列化:並列処理を活用して、複数のコアまたはプロセッサに CRC 計算を分散させます。これにより、特に大規模なデータセットのシナリオでは、CRC に必要な時間を大幅に削減できます。
  • XOR やシフトなどのビット演算:従来の算術演算よりも効率的です。

運用の複雑さを軽減するためには、適切な CRC 多項式を選択することが非常に重要です。一部の多項式は、計算オーバーヘッドを最小限に抑えながら、より優れたエラー検出機能を提供します。また、システムのアーキテクチャにあわせて CRC ワード・サイズを調整し、性能を向上させることもできます。

CRC の性能を最適化する場合、次のようなトレードオフを考慮する必要があります。

1. メモリ使用量と計算

事前計算されたテーブルは、計算を減らすことができますが、メモリ使用量が増加する可能性があります。システムの制約に基づいて、メモリ使用率と計算効率のトレードオフを測定します。

2. 複雑さとスピード

複雑な CRC 多項式は、エラー検出に優れていますが、計算コストがかかる場合があります。複雑さとスピードのバランスを取り、最適化の取り組みを特定のユースケースにあわせることができます。

まとめ

CRC は、ネットワーク・プロトコル、ストレージ・システム、通信プロトコルなど、実世界のアプリケーションで幅広く使用されています。CRC は、データ送信中のエラーの検出に優れており、バースト・エラーとランダム・エラーの両方を識別する機能により、受信したデータが送信データと一致することを保証します。CRC は、ストレージ・システムのデータ破損に対する保護手段として機能します。CRC は、エラーを早期に検出することで、保存されている情報の完全性と耐障害性の維持を支援します。これは、長期的なデータの信頼性にとって重要です。

CRC はデータ転送とストレージの信頼性を高めますが、計算オーバーヘッドが伴います。エラーチェックのメリットと CRC の計算に費やされるリソースのトレードオフを必ず評価してください。

また、CRC はモダンなデータ保護の全体像において 1 つの役割を果たすに過ぎないことも覚えておいてください。ピュア・ストレージの包括的なモダン・データ保護ソリューションは、最も重要なデータのリストア、攻撃からの保護、中断のないビジネス運営、環境の制御、クリーンなストレージ環境の保証を可能にします。

こちらの資料もご覧ください!

12/2024
Pure Storage FlashArray//C20
Extending the Pure Storage platform to entry-level capacities, FlashArray//C20 brings enterprise class storage to edge deployments and smaller workloads.
データシート
3 ページ
ご相談・お問い合わせ
ご質問・ご相談

ピュア・ストレージ製品および認定についてのご質問・ご相談を承っております。ご連絡をお待ちしております。

デモのご用命

ライブデモのご用命を承っております。ピュアがいかにしてデータを成果に変えるお手伝いができるかをご説明します。 

ピュア・ストレージ・ジャパン株式会社

〒100-0014 東京都千代田区永田町 2 丁目 10-3 東急キャピトルタワー 12 階

 

一般: info-japan@purestorage.com

メディア: pr-japan@purestorage.com

03-4563-7443(総合案内)

閉じる
このブラウザは現在サポートされていません。

古いブラウザには、セキュリティ・リスクが存在する場合があります。ピュア・ストレージの Web サイトをより快適にご利用いただけるよう、最新のブラウザにアップデートしてください。