ما معنى CRC (فحص التكرار الدوري)؟ شرح مبسّط وحل خطأ Cyclic Redundancy Check

شروحات تقنية

اختصار CRC يعني Cyclic Redundancy Check أي «فحص التكرار الدوري»، وهو أسلوب رياضي بسيط وسريع تستخدمه الأجهزة والبرامج للتأكد من أن ملفًا أو رسالة بيانات وصلت سليمة دون أن تتلف أثناء النقل أو التخزين. الفكرة باختصار: يُحسب رقم صغير مميّز من محتوى البيانات، ويُرسل معها، ثم يُعاد حسابه عند الطرف الآخر؛ فإن تطابق الرقمان اعتُبرت البيانات سليمة، وإن اختلفا فهناك تلف.

ملاحظة مهمة قبل أن نكمل: كثير ممن يبحثون عن هذه العبارة لا يدرسون الخوارزميات، بل ظهرت لهم رسالة خطأ باسم «Data error (cyclic redundancy check)» أثناء نسخ ملف أو فتح قرص. إن كان هذا سبب بحثك، انتقل مباشرة إلى قسم «حل خطأ فحص التكرار الدوري» في نهاية المقال.

ما هو فحص التكرار الدوري ببساطة؟

تخيّل أنك ترسل رقم هاتف طويلًا لصديق، فتطلب منه أن يجمع كل الأرقام ويخبرك بالناتج للتأكد أنه كتبها صحيحة. هذا بالضبط مبدأ CRC، لكن بعملية حسابية أدق بكثير من مجرد الجمع.

تعامل تقنية CRC البيانات باعتبارها رقمًا ثنائيًا ضخمًا، ثم تقسمه على «متعدد حدود» (Polynomial) متفق عليه مسبقًا. لا يهمنا ناتج القسمة، بل الباقي منها. هذا الباقي هو قيمة CRC، ويُلحق بالبيانات. عند الاستقبال تُكرَّر العملية نفسها؛ فإذا كان الباقي مطابقًا كانت البيانات سليمة.

قوة هذه الطريقة أنها ممتازة في كشف الأخطاء المتتالية (عدة بتات متجاورة تتلف معًا)، وهي أكثر أنواع التلف شيوعًا بسبب الضوضاء الكهربائية أو خدش القرص.

كيف تعمل العملية عمليًا؟

  1. يُختار متعدد حدود قياسي حسب المعيار المستخدم (مثل CRC-32 المنتشر في ملفات ZIP وشبكات إيثرنت).
  2. تُمرَّر البيانات بت تلو الآخر عبر عملية قسمة ثنائية سريعة.
  3. يُحتفظ بقيمة تحقق مؤقتة تتغير مع كل بت.
  4. في النهاية تنتج قيمة CRC النهائية (16 أو 32 بت عادةً) وتُخزَّن أو تُرسل مع البيانات.

الجميل أن هذه العملية سريعة جدًا وتُنفَّذ داخل العتاد نفسه (كرت الشبكة، وحدة التخزين)، لذلك لا تشعر بها إطلاقًا رغم أنها تجري ملايين المرات يوميًا على جهازك.

أين تصادف CRC في حياتك اليومية؟

  • ملفات الضغط: عند فك ضغط ملف ZIP أو RAR تالف، الرسالة «CRC error» تعني أن محتوى الملف لا يطابق قيمة التحقق المخزّنة.
  • الشبكات: كل إطار بيانات في إيثرنت وواي فاي يحمل حقل CRC للتخلص من الحزم التالفة.
  • وسائط التخزين: الأقراص الصلبة وذاكرات SSD وبطاقات SD تستخدم CRC داخليًا لاكتشاف القطاعات التالفة.
  • أنظمة السيارات والأجهزة: بروتوكولات مثل CAN Bus تعتمد عليه للسلامة.

CRC أم Checksum أم التجزئة (Hash)؟

يخلط كثيرون بين هذه المصطلحات الثلاثة، وهذا جدول يوضح الفرق:

المعيارفحص التكرار الدوري CRCالمجموع الاختباري Checksum البسيطدالة التجزئة Hash (مثل SHA-256)
الغرض الأساسيكشف التلف العرضيكشف تلف بسيط جدًاالتحقق الأمني والتشفيري
قوة الكشفعالية للأخطاء المتتاليةضعيفة نسبيًاعالية جدًا
السرعةسريع جدًاالأسرعأبطأ
مقاوم للتلاعب المتعمّد؟لالانعم
الاستخدام النموذجيالشبكات والتخزينتحقق سريع مبدئيكلمات المرور والتواقيع

الخلاصة: CRC ممتاز لاكتشاف التلف العرضي، لكنه ليس أداة أمان. لا تستخدمه أبدًا للتحقق من كلمات المرور أو سلامة التنزيلات ضد التلاعب المتعمّد؛ لهذا الغرض استعمل دالة تجزئة تشفيرية مثل SHA-256.

حل خطأ «فحص التكرار الدوري» على ويندوز

عندما يظهر لك خطأ Data error (cyclic redundancy check) فهذا يعني أن ويندوز حاول قراءة بيانات فلم تطابق قيمة CRC المخزّنة، أي أن هناك تلفًا فعليًا في الملف أو القطاع. جرّب الخطوات التالية بالترتيب:

  1. أعد المحاولة على منفذ USB أو كابل آخر، فأحيانًا يكون العيب في التوصيل لا في البيانات.
  2. شغّل أداة فحص القرص: افتح موجّه الأوامر كمسؤول واكتب chkdsk X: /f /r مع استبدال X بحرف القرص. هذه الأداة تحاول إصلاح القطاعات التالفة واستعادة ما يمكن قراءته.
  3. جرّب النسخ بأداة أخرى مثل برنامج نسخ يتجاهل الأخطاء ويكمل ما تبقى، بدل مستكشف الملفات.
  4. إن كان القرص خارجيًا وقديمًا، فتكرار هذا الخطأ إشارة تحذير جدّية إلى قرب تعطّله؛ انسخ ملفاتك المهمة فورًا إلى مكان آمن.

نصيحة من تجربة عملية: لا تنسخ نفس الملف التالف فوق نسختك الاحتياطية السليمة. أبقِ الأصل السليم كما هو حتى تتأكد من نجاح الاستعادة، لأن الكتابة المتكررة على قرص بدأ يتلف قد تفاقم الضرر.

الأسئلة الشائعة

هل يصحح CRC الأخطاء أم يكتشفها فقط؟ يكتشفها فقط. مهمته أن يقول «هذه البيانات تالفة» لا أن يصلحها. الأنظمة عادةً تعالج ذلك بإعادة إرسال البيانات أو طلب نسخة سليمة.

ما الفرق بين CRC-16 و CRC-32؟ الرقم يشير إلى طول قيمة التحقق بالبتات. فكلما زاد الطول (32 مقابل 16) قلّ احتمال أن يمر خطأ دون اكتشاف، مقابل حجم إضافي بسيط.

هل يمكن أن يمرّ تلف دون أن يكتشفه CRC؟ نظريًا نعم، لكن الاحتمال ضئيل جدًا مع المعايير الجيدة. لهذا تُستخدم أحيانًا طبقات حماية إضافية في الأنظمة الحسّاسة.

رأيت خطأ CRC في ملف ZIP، هل يمكن إنقاذه؟ غالبًا الملف تالف جزئيًا. جرّب أداة إصلاح الأرشيف، لكن إن كان مصدر التنزيل متاحًا فأعِد تنزيله؛ فهو الحل الأضمن.