You are on page 1of 5

‫מגיש‪:‬‬ ‫עבודה מסכמת בתקשורת מחשבים‬

‫מתן יהושע‪.‬‬
‫שיטת הזוגיות‪:‬‬

‫עקרון השיטה‪ :‬לכל מחרוזת נתונה המיודעת לשידור אנו נוסיף סיבית שתבטא את‬
‫מספר האחדות במחרוזת‪ ,‬כך כאשר המחשב המרוחק יקבל את המחרוזת הוא‬
‫יידע אם המחרוזת התקבלה עם שגיאה‪ .‬הסיבית שנוסיף תהיה הימינית ביותר‬
‫המחרוזת‪.‬‬

‫קיימות שתי שיטות‪:‬‬
‫‪.1‬זוגיות זוגית – הסיבית שאנו נוסיף תשלים את מספר האחדות למספר‬
‫זוגי – לדוגמא‪ – 100011111 :‬במחרוזת הזו יש ‪ 5‬אחדות‪ ,‬לכן נוסיף ‪1‬‬
‫נוסף וכך יהיו ‪ 6‬אחדות‪ ,‬כך נשלים למספר זוגי‪ .‬אם במחרוזת כבר יש‬
‫מספר אחדות זוגי הסיבית שנוסיף תהיה ‪ – 0‬לדוגמא‪100111000 :‬‬
‫‪.2‬זוגיות אי‪-‬זוגית – הסיבית שאנו נוסיף תשלים את מספר האחדות‬
‫במחרוזת למספר אי‪-‬זוגי – לדוגמא‪ – 101111101 :‬במחרוזת הזו יש ‪6‬‬
‫אחדות‪ ,‬לכן נוסיף ‪ 1‬וכך יהיו ‪ 7‬אחדות‪ ,‬כך נשלים למספר אי‪-‬זוגי‪ .‬אם‬
‫במחרוזת כבר יש מספר אחדות אי‪-‬זוגי הסיבית שנוסיף תהיה ‪– 0‬‬
‫לדוגמא‪101010000 :‬‬

‫דוגמאות לגילוי שגיאות בשיטת הזוגיות‪:‬‬
‫* זוגיות זוגית ‪ -‬נשלחה המחרוזת ‪ – 100111110‬התקבלה המחרוזת ‪10001111‬‬
‫‪ – 0‬המחשב המקבל את המחרוזת יידע להבחין כי קיימת שגיאה – הוא קיבל קוד‬
‫עם ‪ 5‬אחדות וספרת זוגיות ‪ 0‬שאמורה בעצם להיות ב ‪ 1‬לוגי כדי להשלים למספר‬
‫זוגי של אחדות‪.‬‬
‫* זוגיות אי‪-‬זוגית – נשלחה המחרוזת ‪ – 100011101‬התקבלה המחרוזת‬
‫‪ – 100001101‬המחשב המקבל את המחרוזת יידע להבחין כי קיימת שגיאה –‬
‫הוא קיבל קוד עם ‪ 3‬אחדות וספרת אי‪-‬זוגיות ב ‪ 1‬לוגי שאמורה להיות ב ‪ 0‬כדי‬
‫שתשלים את מספר האחדות לאי‪-‬זוגי‪.‬‬

‫חסרון ‪ -‬השיטה מגלה רק מספר אי זוגי של שגיאות‪ ,‬השיטה מגלה רק ‪50%‬‬
‫מהשגיאות‪.‬‬
‫לכן שיטה זו לא יעילה‪.‬‬
‫יתרון ‪ -‬הנצילות של השיטה הזו נחשבת לגבוהה ‪-‬‬

‫שיטת ה ‪ LRC/VRC‬זוגיות אופקית ואנכית‪:‬‬

‫עקרון השיטה‪ :‬בשיטה זו נשדר מסגרת שידור בצורת מערך של שורות ועמודות‪,‬‬
‫עקרון זה משמש בהרבה טכניקות מורכבות יותר לתיקון וגילוי שגיאות‪ .‬במערך‬
‫נוסיף ליד כל שורה ‪ 0‬או ‪ 1‬תלוי בשיטה (זוגית\אי‪-‬זוגית) שתתאר את מספר‬
‫האחדות‪ ,‬וכך נוסיף גם בעמודות‪.‬‬
‫לדוגמא – שידור ‪ 3‬מילים בעלות ‪ 4‬סיביות כל אחת ושידורם בשיטת ה ‪LRC\VRC‬‬
‫הזוגית‪:‬‬

‫‪VRC‬‬ ‫הנצילות‪ :‬יש לנו בקוד ‪ 20‬סיביות‪ ,‬הוספנו עוד ‪ 6‬סיביות‬
‫בעמודה ו ‪ 4‬סיביות בשורה לכן סה"כ ‪ 30‬סיביות‪-‬‬
‫‪1 0 0 1‬‬ ‫‪0‬‬
‫‪0 1 0 0‬‬ ‫‪1‬‬
‫‪1 1 1 0‬‬ ‫‪1‬‬
‫‪1 1 1 1‬‬ ‫‪0‬‬
‫‪1 0 0 0‬‬ ‫‪1‬‬
‫‪0 1 0 0‬‬ ‫‪1‬‬
‫הנצילות פחתה אבל בתמורה גילוי השגיאות גדל ובנוסף יכולת לתיקון שגיאות‪.‬‬

‫‪LRC‬‬ ‫אפשרויות גילוי בשיטה‪:‬‬
‫‪-‬שגיאה אחת תמיד נגלה ונוכל לתקן אותה‪.‬‬
‫‪ 2-‬שגיאות תמיד נגלה‪.‬‬
‫אם הם באותה שורה נגלה בעמודה את השגיאות‪ ,‬אם הם באותה עמודה‬
‫נגלה בשורה את השגיאות‪ ,‬אם הם מפוזרת נגלה גם בעמודה וגם בשורה‬
‫את השגיאות‪.‬‬
‫‪ 3-‬שגיאות תמיד נגלה‪ ,‬בדומה ל ‪ 2‬שגיאות‪.‬‬
‫‪X‬‬ ‫‪X‬‬
‫‪ 4-‬שגיאות – ייתכן מצב שלא נוכל לגלות בו את השגיאות‪:‬‬
‫‪X‬‬ ‫‪X‬‬
‫במצב זה אי אפשר לדעת אם יישנה שגיאה כי גם בעמודה וגם בשורה יש‬
‫אותו מספר שגיאות‪ ,‬כל עוד ארבעת השגיאות לא יוצרות מרובע תהיה‬
‫אפשרות לגלותם‪.‬‬

‫‪ 5-‬שגיאות נצליח לגלות‪.‬‬

‫דוגמאות לגילוי שגיאות‪:‬‬
‫גילוי ‪ 3‬שגיאות‪:‬‬‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫גילוי ‪ 2‬שגיאות‪:‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬
‫השגיאות האלה‬‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫השגיאות האלה‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬
‫יתגלו הן בעמודות‬
‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫יתגלו בשורות‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫והן בשורות‪.‬‬ ‫ולא בעמודות‪.‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬
‫‪X‬‬
‫שיטת ה ‪ – CRC - Cyclic Redundancy Check‬בדיקת סכום‬
‫הנתונים‪:‬‬

‫שיטה זו היא השיטה הנהוגה כיום לגילוי שגיאות בכל מצב של העברת נתונים‬
‫ממחשב למחשב או מאמצעי אחסון כלשהו למחשב‪ ,‬דרכה אין אפשרות לתיקון‬
‫שגיאות‪.‬‬

‫עקרון פעולה‪ :‬בשיטה זו סיביות הבדיקה מתקבלות מתוך סיביות המידע‪ ,‬על ידי‬
‫חישוב של פונקציה מתמטית מסובכת יותר‪ .‬פונקציה זו מבטיחה הסתברות גבוהה‬
‫יותר לגילוי שגיאות‪.‬‬
‫שיטה זו מבטיחה גילוי כל שגיאה‪.‬‬
‫‪.1‬נגדיר את המושגים הבאים‪:‬‬
‫פולינום המיצג את המסגרת לשידור‪:‬‬
‫דוגמא‪ :‬אם המילה לשידור היא המילה ‪ 11001101‬הפולינום המיצג‪:‬‬

‫‪.2‬גורם החלוקה‪ :‬פולינום הנקבע כך שבעזרתו ניתן יהיה לגלות את רוב‬
‫השגיאות‪ ,‬הפולינום מבוסס על גורמים המייצרים מספר ראשוני‪.‬‬
‫לדוגמא‪:‬‬
‫‪.3‬השארית בפעולות החילוק בין הפולינום המיצג לגורם החלוקה‪ :‬נתעלם‬
‫מהמנה ונתייחס לשארית‪ .‬הרעיון הוא כזה‪:‬‬
‫פולינום מייצג לחלק לגורם החלוקה = מנה שלמה\שארית שלמה‪.‬‬
‫(פולינום מייצג – שארית) \ גורם החלוקה = שארית ‪.0‬‬
‫התהליך כולו מבוצע בחומרה באמצעות אוגר הזזה מיוחד‪.‬‬

‫תהליך הבדיקה‪:‬‬
‫המסגרת לשידור המורכבת ממספר קבוע של סיביות מוזרמת אל תוך האוגר‬
‫ומהאוגר אל התחנה הקולטת‪ ,‬באוגר עצמו נשארה מחרוזת של סיביות של ‪16-‬‬
‫‪ 32‬מחרוזת זו היא השארית שהתקבלה בחלוקת הפולינום המיצג בגורם החלוקה‬
‫שהוא למעשה האוגר‪ ,‬לשארית זו קוראים גם תו הבקרה‪ ,‬גם התו מועבר אל‬
‫התחנה הקולטת‪ .‬בתחנה הקולטת מבצעים את אותן הפעולות ומשווים בין תו‬
‫הבקרה שנשלח לבין תו הבקרה שהתקבל באוגר‪.‬‬
‫אם ההשוואה נכשלה הייתה שגיאה בשידור ואם לא אז השידור תקין‪.‬‬

‫מבנה אוגר ההזזה‪:‬‬
‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬ ‫‪XOR‬‬
‫‪XOR‬‬
‫מבוא נתונים ( ‪)I‬‬
‫פונקציות ההיסט‪:‬‬
‫(‪b1)n( = b2)n-1‬‬ ‫איך זה עובד‪:‬‬
‫(‪b2)n( = b3)n-1‬‬ ‫נניח שמצבו ההתחלתי של האוגר הוא ‪,0000‬‬
‫‪b3)n( = b4)n-1( XOR i)n( XOR‬‬ ‫סיבית הנתונים הראשונה היא ‪ ,1‬לאחר זמן יחידה‬
‫(‪b1)n-1‬‬ ‫‪ 1‬ערכי הסיביות באוגר הם ‪.1100‬‬
‫‪b1->0 b2->0 b3=0‬‬ ‫‪1‬‬ ‫‪0=1‬‬
‫‪b4=1‬‬ ‫‪0=1‬‬

‫קוד המינג ‪Hamming code:‬‬
‫מאפשר לתקן עד שגיאה אחת בבלוק נתונים‪.‬‬
‫מבוססת על שני גורמים‪ .1 :‬שיטת הזוגיות‬
‫‪" .2‬מרחק הקוד" – המרחק הקטן ביותר בין ‪ 2‬סיביות בקוד – השוני בין הסיביות‪.‬‬

‫דוגמא למילה מקודדת בקוד המינג‪:‬‬
‫מילה לשידור‪1001101 :‬‬
‫‪11‬‬ ‫‪1‬‬ ‫‪9‬‬ ‫‪8‬‬ ‫‪7‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬
‫‪ – H‬סיבית המינג‪.‬‬ ‫‪0‬‬
‫עקרון פעולה‪:‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪H‬‬ ‫‪1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪H‬‬ ‫‪1‬‬ ‫‪H‬‬ ‫‪H‬‬
‫‪ .1‬לכל סיבית משודרת‬
‫נקבע מקום סידורי משלה ‪...1,2,3‬‬
‫מיועדות לסיביות‬ ‫‪ .2‬מקומות סידוריים שהם חזקה שלמה של ‪:2‬‬
‫ביקורת המינג המסומנות ב ‪.h‬‬
‫‪ .3‬כל סיבית מידע ניתנת להצגה כסכום של סיביות ביקורת‪,‬‬
‫לדוגמא‪ :‬סיבית מידע ‪ 11‬ניתנת להצגה כסכום ‪.11=1+2+8‬‬
‫‪ .4‬כול סיבית ביקורת שולטת על סיביות מידע ששייכות לקבוצתה‪ ,‬מהטבלה‬
‫בהמשך יעלה שסיביות מידע יכולות להשתתף במספר קבוצות‪.‬‬
‫סיבית ‪ – 3‬נשלטת ע"י ‪ , 1,2‬סיבית ‪ – 5‬נשלטת ע"י ‪ , 1,4‬סיבית ‪– 7 , 2,4 – 6‬‬
‫‪. 1,2,8 – 11 , 2,8 – 10 , 1,8 – 9 , 1,2,4‬‬
‫‪ .5‬קביעת ערך סיביות הביקורת מבצע ‪ XOR‬על כל הסיביות המשתתפות‬
‫בקבוצתה והתוצאה היא ערך סיבית הביקורת‪ ,‬תהליך זה מבוצע לפני השידור כדי‬
‫לקבוע את ערך הסיביות ואחרי הקליטה כדי לקבוע אם היה שיבוש ואם ניתן‬
‫לתקנו‪.‬‬

‫כיצד נקבע את ערכם של סיביות הבקרה ‪:H‬‬
‫סיבית במקום ‪ :1‬בודקת את כל הסיביות במקומות האי‪-‬זוגיים בלבד‪ ,‬כלומר את‬
‫הסיביות ‪ 15 ,13 ,11 ,9 ,7 ,5 ,3 ,1‬וכך הלאה‪.‬‬
‫סיבית במקום ‪ :2‬בודקת ומדלגת לסירוגין על צמד סיביות‪ ,‬החל מהסיבית השנייה‪,‬‬
‫כלומר בודקת את הסיביות ‪ ,11 ,10 ,7 ,6 ,3 ,2‬וכך הלאה‪.‬‬
‫סיבית במקום ‪ :4‬בודקת ומדלגת לסירוגין על ‪ 4‬סיביות‪ ,‬החל מהסיבית הרביעית‪,‬‬
‫כלומר בודקת את הסיביות ‪ 20 ,15 ,14 ,13 ,12 ,7 ,6 ,5 ,4‬וכך הלאה‪.‬‬
‫סיבית במקום ‪ :8‬בודקת ומדלגת לסירוגין על ‪ 8‬סיביות‪ ,‬החל מהסיבית השמינית‪,‬‬
‫כלומר בודקת את הסיביות ‪ 8‬עד ‪ 24 ,15‬עד ‪ ,31‬וכך הלאה‪.‬‬
‫באופן כללי‪ ,‬סיבית זוגיות במקום ‪( n‬כאשר ‪ n‬הוא חזקה של ‪ ,)2‬בודקת ומדלגת‬
‫לסירוגין על ‪ n‬סיביות‪ ,‬החל מהסיבית ה‪.n-‬‬

‫נצילות המינג למחרוזת של ‪ 8‬סיביות‪:‬‬
‫מרחק הקוד‪d=e+1 :‬‬
‫‪ d=2e+1k‬מרחק הקוד לתיקון‬
‫כלומר בהמינג מרחק הקוד הוא לפחות ‪.3‬‬

‫דוגמא לתרגיל‪:‬‬
‫נתון התו ‪ 1010101‬קודד אותו לקוד המינג‪:‬‬
‫‪11‬‬ ‫‪1‬‬ ‫‪9‬‬ ‫‪8‬‬ ‫‪7‬‬ ‫‪6‬‬ ‫‪5‬‬ ‫‪4‬‬ ‫‪3‬‬ ‫‪2‬‬ ‫‪1‬‬
‫‪0‬‬
‫‪1‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪H‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪H‬‬ ‫‪1‬‬ ‫‪H‬‬ ‫‪H‬‬
‫נקבע את סיבית‬
‫הבקרה שנמצאת ב‪:8-‬‬
‫‪8=9‬‬ ‫‪10‬‬ ‫‪11 = 1‬‬ ‫‪0‬‬ ‫‪1=0‬‬
‫נקבע את סיבית הבקרה שנמצאת ב‪:4-‬‬
‫‪4=5‬‬ ‫‪6‬‬ ‫‪7=0‬‬ ‫‪1‬‬ ‫‪0=1‬‬
‫ב‪:2-‬‬ ‫נקבע את סיבית הבקרה שנמצאת‬
‫‪2=3‬‬ ‫‪6‬‬ ‫‪7‬‬ ‫‪10‬‬ ‫‪11= 1‬‬ ‫‪1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1= 1‬‬
‫ב‪:2-‬‬ ‫נקבע את סיבית הבקרה שנמצאת‬
‫‪1=3‬‬ ‫‪5‬‬ ‫‪7‬‬ ‫‪9‬‬ ‫‪11= 1‬‬ ‫‪0‬‬ ‫‪0‬‬ ‫‪1‬‬ ‫‪1= 1‬‬
‫לכן הקוד בקידוד המינג יהיה‪:‬‬
‫‪10100101111‬‬

‫כיצד נזהה שגיאות?‬
‫נניח שנרצה לגרום לשגיאה בסיבית אחת‪ ,‬כך נאתר אותה‪:‬‬
‫נניח שהשגיאה היא בסיבית בקרה ‪10110101111 -8‬‬
‫‪8=9‬‬ ‫‪10‬‬ ‫‪11 = 1‬‬ ‫‪0‬‬ ‫‪1=0‬‬
‫וכך איתרנו אותה‪.‬‬
‫נניח שהשגיאה היא בסיבית מידע ‪10100001111 - 6‬‬
‫נבדוק את כל סיביות הביקורת ונגלה איזה שגויות ואיזה נכונות – השגויות ‪4,2‬‬
‫והנכונות ‪ ,1,8‬כל עוד סיביות הבקרה הנכונות באמת נכונות‪ ,‬סיביות‬
‫‪ 9,10,11,3,5,7‬טובות מה שנשאר לנו זה לבדוק את סיביות הבקרה הלא נכונות‬
‫– ‪ 4,2‬ששולטות על סיביות מספר ‪3,5,6,7,10,11‬‬
‫על פי הסיביות בקרה הנכונות מספרים ‪ 3,5,7,10,11‬אינם בעיתיים לכן רק סיבית‬
‫‪ 6‬בעיתית‬
‫לכן כך תהיה אפשרות לתקן אותה‪.‬‬