ما هو فحص التكرار الدوري CRC في الشبكات

اقرأ في هذا المقال


لاكتشاف الخطأ في أي نوع من البيانات الرقمية يتم استخدام “CRC”، كما إنّ “” هو نوع من الوظائف التي ستكتشف تلقائياً حتى التغييرات الطفيفة في البيانات الأولية للكمبيوتر، كما يستخدم “CRC” بشكل عام لاتصالات الشبكة، وتحتوي إطارات “Ethernet” على قسم محدد خصيصاً لـ “CRC” أي طوله “4 بايت” مع الأخذ في الاعتبار مدى أهمية نقل البيانات الصحيحة.

ما هو فحص التكرار الدوري CRC

فحص التكرار الدوري (CRC): هو آلية لاكتشاف الأخطاء يتم فيها إلحاق رقم خاص بمجموعة من البيانات لاكتشاف أي تغييرات يتم إدخالها أثناء التخزين أو النقل، كما يتم إعادة حساب “CRe” عند الاسترجاع أو الاستقبال ومقارنته بالقيمة المرسلة في الأصل، والتي يمكن أن تكشف عن أنواع معينة من الأخطاء.

على سبيل المثال ينتج عن بت واحد تالف في البيانات تغيير بت واحد في “CRC” المحسوب لكن وحدات البت الفاسدة المتعددة قد تلغي بعضها البعض، كما يتم اشتقاق “CRC” باستخدام خوارزمية أكثر تعقيداً من “CHECKSUM” البسيط، بما في ذلك “MODULO ARITHMETIC” ومن هنا جاء الاسم “الدوري” ومعالجة كل كلمة إدخال كمجموعة من المعاملات لكثير الحدود.

  • “CRC” هي اختصار لـ “Cyclic Redundancy Check”.

خصائص فحص التكرار الدوري CRC

  • “CRC” أقوى من “VRC” و”LRC” في اكتشاف الأخطاء.
  • لا يعتمد على إضافة ثنائية مثل “VRC” و”LRC”، بل يعتمد على القسمة الثنائية.
  • في جانب المرسل وحدة البيانات التي سيتم إرسالها مقسومة على قاسم محدد مسبقاً أي رقم ثنائي للحصول على الباقي ,هذا الباقي يسمى “CRC”.
  • يحتوي “CRC” على بت واحد أقل من المقسوم عليه، وهذا يعني أنّه إذا كان “CRC” من “n بت”، فإنّ المقسوم عليه هو “n + 1 بت”.
  • يقوم المرسل بإلحاق “CRC” هذا بنهاية وحدة البيانات بحيث تصبح وحدة البيانات الناتجة قابلة للقسمة تماماً بواسطة قاسم محدد مسبقاً أي يصبح الباقي صفراً.
  • في الوجهة يتم تقسيم وحدة البيانات الواردة أي البيانات + “CRC” على نفس الرقم أي قاسم ثنائي محدد مسبقاً.
  • إذا كان الباقي بعد القسمة صفراً فلا يوجد خطأ في وحدة البيانات ويقبله المتلقي.
  • إذا لم يكن الباقي بعد التقسيم صفراً فهذا يشير إلى أنّ وحدة البيانات قد تعرضت للتلف أثناء النقل وبالتالي تم رفضها.
  • هذه التقنية أقوى من فحص التكافؤ واكتشاف أخطاء المجموع الاختباري.
  • يعتمد “CRC” على القسمة الثنائية، كما يتم إلحاق سلسلة من البتات الزائدة تسمى “CRC” أو “CRC” المتبقية في نهاية وحدة البيانات مثل البايت.

ملاحظة:“VRC” هي اختصار لـ “Very Rapid Coding”.

ملاحظة:“LRC” هي اختصار لـ “longitudinal redundancy check”.

 متطلبات فحص التكرار الدوري CRC

  • يجب أن تحتوي على بت واحد أقل من المقسوم عليه.
  • إلحاق “CRC” بنهاية وحدة البيانات يجب أن ينتج عنه تسلسل البتات الذي يقبل القسمة عليه بالضبط.

الخطوات المختلفة المتبعة في طريقة فحص التكرار الدوري CRC

  • سلسلة من “n” كما تم إلحاقها بوحدة البيانات، وطول المقسوم المحدد سلفاً هو “n + 1”.
  • وحدة البيانات المشكلة حديثاً أي البيانات الأصلية + سلسلة n، كما تم تقسيمها على المقسوم عليه باستخدام القسمة الثنائية ويتم الحصول على الباقي، وهذا الباقي يسمى “CRC”.
  • يتم استبدال سلسلة “n Os” الملحقة بوحدة البيانات ببقية “CRC” وهي أيضاً من “n بت”.
  • ثم يتم إرسال وحدة البيانات + “CRC” إلى المستقبل.
  • يقسم جهاز الاستقبال عند استلامه وحدة البيانات + “CRC” على نفس القاسم ويفحص الباقي.
  • إذا كان باقي القسمة صفراً يفترض المتلقي أنّه لا يوجد خطأ في البيانات ويقبله.
  • إذا كان الباقي غير صفري فهناك خطأ في البيانات ويرفضه المتلقي.

مبدأ عمل فحص التكرار الدوري CRC

  • على سبيل المثال إذا كانت البيانات المطلوب إرسالها هي “1001” والمقسوم عليه مسبقًا هو “1011” فإنّه يتم استخدام إلحاق سلسلة مكونة من “3 أصفار” بالرقم “1011”، حيث أنّ المقسوم عليه يتكون من “4 بتات” والبيانات التي تم تكوينها حديثاً الآن هي “1011000” ووحدة البيانات “1011000” مقسومة على “1011”.
  • أثناء عملية القسمة هذه وعندما يكون الجزء الأيسر من المقسوم أو الباقي صفراً فإنّه يتم استخدام سلسلة من “Os” بنفس طول المقسوم عليه، وبالتالي في هذه الحالة يتم استبدال المقسوم عليه “1011” بـ “0000”.
  • من جهة المتلقي البيانات المستلمة هي “1001110”.
  • هذه البيانات مقسومة مرة أخرى على القاسم 1011.
  • الباقي هو “000” وهذا يعني أنّه لا يوجد خطأ.
  • يمكن أن تكتشف “CRC” جميع أخطاء الرشقات التي تؤثر على عدد فردي من البتات.
  • يعتمد احتمال اكتشاف الخطأ وأنواع الأخطاء التي يمكن اكتشافها على اختيار القاسم.
  • وبالتالي فإنّ شرطين رئيسيين لاتفاقية حقوق الطفل هما يجب أن يكون “CRC” أقل بقليل من المقسوم عليه، كما يجب أن يؤدي إلحاق “CRC” بنهاية وحدة البيانات إلى تسلسل البتات الذي يقبل القسمة عليه بالضبط.

رموز كثيرة الحدود في فحص التكرار الدوري CRC

  • يمكن تمثيل نمط من Os و 1 ككثير حدود مع معامل o و 1.
  • تُظهر قوة كل مصطلح موضع البتة ويظهر المعامل قيم البت.
  • على سبيل المثال إذا كان النمط الثنائي هو “100101”، فإنّ تمثيله متعدد الحدود المقابل هو “x5 + x2 + 1.”، كما يوضح الشكل متعدد الحدود حيث تتم إزالة جميع المصطلحات ذات المعامل الصفري ويتم استبدال x J بـ x و XO بمقدار 1.

أساسيات فحص التكرار الدوري CRC

يُعد فحص التكرار الدوري “CRC” بأنّه رمز كتلة اخترعه دبليو ويسلي بيترسون في عام 1961م، كما يستخدم بشكل شائع للكشف عن التغيرات العرضية، وفي البيانات المنقولة عبر شبكات الاتصالات وأجهزة التخزين.

تتضمن اتفاقية حقوق الطفل التقسيم الثنائي لبتات البيانات التي يتم إرسالها من قبل مقسوم محدد مسبقًا متفق عليه من قبل نظام الاتصال، كما يتم إنشاء المقسوم عليه باستخدام كثيرات الحدود لذلك يسمى “CRC” أيضاً بالمجموع الاختباري لكود متعدد الحدود.

قبل إرسال الرسالة عبر قنوات الشبكة يقوم المرسل بترميز الرسالة باستخدام “CRC”، كما يقوم جهاز الاستقبال بفك تشفير الرسالة الواردة لاكتشاف الخطأ، حيث إذا كانت الرسالة خالية من الأخطاء فيتم قبولها وإلّا فإنّ المتلقي يطلب إعادة إرسال الرسالة.

خوارزمية الحماية باستخدام CRC

  • يتفق الطرفان المتصلان على حجم الرسالة M (x) والمولد متعدد الحدود G (x).
  • إذا كان r هو ترتيب G (x) وr يتم إلحاق البتات بنهاية الرتبة المنخفضة لـ M (x)، وهذا يجعل حجم الكتلة بتات وقيمتها xrM (x).
  • الكتلة xrM (x) مقسومة على G (x) باستخدام قسمة modulo 2.
  • يضاف الباقي بعد القسمة إلى xrM (x) باستخدام إضافة modulo 2، والنتيجة هي الإطار الذي سيتم إرساله T (x)، كما يجعل إجراء التشفير قابلاً للقسمة تماماً على G (x).

خوارزمية فك الحماية باستخدام CRC

  • يقسم المستقبِل وحدة إطار البيانات الواردة T (x) على G (x) باستخدام تقسيم modulo 2 ورياضياً إذا كان E (x) هو الخطأ، فسيتم إجراء تقسيم المقياس 2 لـ [M (x) + E (x)] على G (x).
  • إذا لم يكن هناك باقي فهذا يعني أنّ E (x)، كما يتم قبول إطار البيانات.
  • يشير الباقي إلى قيمة غير صفرية لـ E (x) أو بعبارة أخرى وجود خطأ. لذلك تم رفض إطار البيانات، كما قد يرسل المستلم بعد ذلك إشعاراً خاطئاً إلى المرسل لإعادة الإرسال.

المصدر: COMPUTER NETWORKING / James F. Kurose & Keith W. RossComputer Networks - The Swiss BayCOMPUTER NETWORKS LECTURE NOTES / B.TECH III YEAR – II SEM (R15)An Introduction to Computer Networks / Peter L Dordal


شارك المقالة: