בדיקת יתירות מחזורית – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
Matanyabot (שיחה | תרומות)
תגיות: עריכה ממכשיר נייד עריכה דרך האתר הנייד
שורה 6:
 
== מבוא ==
CRC מבוסס על תאוריה של קוד מחזורי (מעגלי) לתיקון שגיאות. השימוש בקוד מחזורי שיטתי, אשר מקודד הודעות על ידי הוספה של ערך בדיקה עם גודל קבוע, בשביל איתור שגיאות ברשתות תקשורת. CRC הוצג לראשונה על ידי [[וו. ווסלי פטרסון]] ב-1961. קודים מחזוריים הם לא רק פשוטים למימוש, אלא הם גם טובים במיוחד לאיתור פרצי שגיאות בהודעות עם נתונים אשר נשלחות ברצף. זה חשוב בגלל שפרצי שגיאות הם בעיות העברה נפוצות ב[[ערוץ תקשורת|ערוצי תקשורת]], אשר כוללים התקני אחסון מגנטיים ואופטיים. n bit CRC טיפוסי אשר מוצמד לבלוק מידע עם אורך שרירותי יאתר כל שגיאת פתע אשר לא גדולה יותר מ -n bits  ויאתר 1 − 2<sup>−''n''</sup> מפרצי שגיאות הגדולות מnמ-n bits.
 
אפיון של קוד CRC דורש הגדרה של מה שנקרא [[פולינום יוצר]]. הפולינום הזה נעשה מחלק של ה -[[polynomial long division]], אשר לוקח את ההודעה כמחולקת ומחסיר את המנה והיתרה היא התוצאה. האזהרה החשובה היא כשאר ה[[מקדם (מתמטיקה)|מקדם]] הפולינומי שחושב בהתאם ל[[שדה סופי|שדה הסופי]] האריתמטי, כך שפעולה נוספת יכולה לממש רוחב בתים מקבלים (אין משיכה בין ספרות). הגודל של השארית הוא תמיד נמוך מהגודל של המחולל הפולינומי, אשר ממחיש כמה גדולה התוצאה יכולה להיות.{{הערה|{{צ-מאמר|מחבר = Peterson, W. W. and Brown, D. T|שם = Cyclic Codes for Error Detection|כתב עת = Proceedings of the IRE 49|כרך = 49(1)|עמ = 228-235}}}}
 
למעשה, כל השימושים הנפוצים בCRCב-CRC משתמשים ב'''[[שדה סופי]]''' של שני אלמנטים. שני האלמנטים בדרך כלל נקראים 1 ו -0, שבאופן נוח ביותר תואם לארכיטקטורה של המחשב.
 
CRC נקרא n-bit  כאשר ערך הבדיקה בגודל n-bit. לn נתון, יש מספר CRC אפשריים, כל אחד כזה בפולינום שונה לפולינום כזה יכול להיות n כמעלה הגבוהה ביותר, כלומר n+1 ביטויים. במילים אחרות, לפולינום בגודל של n+1, הקידוד שלו דורש n+1  בתים. רוב הפולינומים מאפיינים ירידה בביט של הMSB  או LSB, מכיוון שהם תמיד 1. לCRCל-CRC והפולינום המקושר יש שם במבנה הזה  CRC-''n''-XXX.
 
מערכת איתור הבעיות הפשוטה ביותר, [[סיבית זוגיות]], הוא למעשה CRC של 1-bit. הפולינום המתאים הוא x+1  (שני ביטויים) ושמו הוא CRC-1.
 
==אופן הפעולה==