Μέθοδοι Ελέγχου Σφαλμάτων Έλεγχος Ισοτιμίας (Parity Check) Άθροισμα Ελέγχου (Checksum) Έλεγχος κυκλικού πλεονασμού (CRC- Cyclic Redundancy Check) Μερικά μπορεί να μεταφερθούν λάθος, πχ λόγω θορύβου Θα πρέπει να ανιχνευτεί το λάθος και Να διορθωθεί πχ με επαν-εκπομπή!
Έλεγχος Σφαλμάτων EDC- Error Detection and Correction
Έλεγχος Ισοτιμίας(Parity Check) - έλεγχος σφαλμάτων κατά τη μετάδοση δεδομένων. - προστίθεται ένα επιπλέον bit (Parity bit) - χρησιμοποιείται για να ελεγχθούν αν τα bits που μεταφέρθηκαν έχουν μεταφερθεί με σωστά Single Bit Parity: ανιχνεύει λάθος ενός bit Άρτια Ισοτιμία: Ο συνολικός αριθμός των 1 στα (αρχικές πληροφορίες + 1 bit ισοτιμίας) είναι άρτιος! Πχ.: 1 0 0 1 1 0 0 1 Περιττή Ισοτιμία: Ο συνολικός αριθμός των 1 στα (αρχικές πληροφορίες + 1 bit ισοτιμίας) είναι περιττός!
Έλεγχος Ισοτιμίας(Parity Check) Δισδιάστατη ισοτιμία (Two Dimensional Bit Parity): Ελέγχει και διορθώνει λάθη ενός απλού bit 0 0 Data Link Layer
Έλεγχος Ισοτιμίας(Parity Check) συνέχεια. - Η μονοδιάστατη ισοτιμία (Single bit parity) είναι άριστη για την ανίχνευση 1 λάθους - Στατιστικά η μέθοδος ανιχνεύει το 50 % των λαθών - Η μέθοδος αποτυγχάνει όταν έχουμε άρτιο πλήθος λαθών. - Η δισδιάστατη ισοτιμία μπορεί επίσης να ανιχνεύσει (αλλά όχι να διορθώσει) οποιοδήποτε συνδυασμό δύο σφαλμάτων μέσα σε ένα πλαίσιο Απόδοση Μεθόδου: Έστω αποστολή 2 bits με ισοτιμία (parity) bits (odd parity). Έστω: 1 1 0 Απόδοση μεθόδου = 2/3*100=66.6% 1 0 0 0 1 0 0 0 0 Το λάθος ανιχνεύεται Το λάθος ανιχνεύεται Το λάθος δεν ανιχνεύεται 3 πιθανά λάθη
Άθροισμα Ελέγχου (Checksum) H μέθοδος εφαρμόζεται σε επίπεδο πακέτων δεδομένων και όχι σε άμεσα σε bits (όπως η μέθοδος ισοτιμίας). -Στον αποστολέα: εφαρμόζεται διαδικασία checksum επί των bits ενός πακέτου και το αποτέλεσμα τοποθετείται στο πεδίο CRC - Στον παραλήπτη: εφαρμόζεται η ανάλογη διαδικασία στο πακέτο και συγκρίνεται το αποτέλεσμα σε σχέση με το CRC πεδίο Χρησιμοποιείται μόνο στο επίπεδο μεταφοράς, γιατί απαιτεί υπολογιστικό έργο. H μέθοδος Αθροίσματος Ελέγχου (Checksum) είναι πιο αξιόπιστη!! μέθοδος συγκρινόμενη με την μέθοδο Ελέγχου Ισοτιμίας. Η μέθοδος χρησιμοποιείται κυρίως στα πρωτόκολλα TCP/IP/UDP To τυπικό Checksum field είναι μεγέθους 16 bits (RFC 791)
Παράδειγμα εφαρμογής Ckecksum Ας υποθέσουμε ότι το πακέτο περιέχει κείμενο (text) και ότι αν εξετάσουμε ανά byte το περιεχόμενο αυτό, προκύπτει έστω η παρακάτω ακολουθία: 25, 11, 12, 7, 13, 4. Αποστολέας: 1ο βήμα : υπολογίζουμε το άθροισμα όλων αυτών των αριθμών που εκφράζουν το περιεχόμενο του πακέτου. Δηλ. Sum=25+11+12+7+13+4 =72 2 ο βήμα : υπολογίζουμε το υπόλοιπο της διαίρεσης του αθροίσματος με τον προσυμφωνημένο αριθμό. Συνεπώς: Υπόλοιπο (75:16)=mod(75:16) = 8 25 11 12 7 13 4 8 checksum 3 ο βήμα : στέλνει το πακέτο στον παραλήπτη. Παραλήπτης: - Εκτελεί την ανάλογη εργασία για να επιβεβαιώσει ή όχι το περιεχόμενο του πεδίου checksum
Internet checksum (review) Σκοπός: ανίχνευση λαθών σε πακέτα δεδομένων (e.g., flipped bits) (Note: Χρησιμοποιείται στο επίπεδο μεταφοράς) Sender: Χειρίζεται τμήματα δεδομένων (segment contents) σαν σειρές από 16-bits checksum: προσθήκη (συμπλήρωμα του 1) του περιεχομένου του segment ο αποστολέας θέτει την τιμή του checksum στο αντίστοιχο checksum πχ του UDP Receiver: Υπολογίζει το checksum του received segment Ελέγχει το checksum που βρίσκει αν είναι ίσο με την τιμή του πεδίου checksum field: NO - error detected YES - no error detected.
Μέθοδος κυκλικού πλεονασμού (CRC-Cyclic Redundancy Check ) βλέπει τα bits δεδομένων, D, σαν δυαδικό αριθμό Επιλέγει r+1 bit pattern (generator), G Σκοπός: επιλέγει r CRC bits, R, όπως: <D,R> διαιρείται ακριβώς με το G (modulo 2) O δέκτης γνωρίζει το G, διαιρεί το <D,R> με το G. Αν το υπόλοιπο είναι μη μηδενικό (non-zero): ανιχνεύεται λάθος! μπορεί να ανιχνεύσει όλα τα σφάλματα burst τα οποία < από r + 1 bits Υλοποιείται σε Data Link Layer Χρησιμοποιείται ευρέως σε: Ethernet, 802.11 WiFi, ADSL, ATM, κλπ.
CRC-Cyclic Redundancy Check συνέχεια
Παράδειγμα εφαρμογής μεθόδου CRC Θέλουμε: D. 2 r XOR R = ng ή ισοδύναμα: D. 2 r = ng XOR R ισοδύναμα: εάν διαιρέσουμε το: D. 2 r με G, τότε θέλουμε υπόλοιπο R R = remainder[ ] D. 2 r G
Division in the sender :
Example of CRC (7,4) Division in the receiver (two cases) :
CRC-Cyclic Redundancy Check συνέχεια Επιλογή CRC πολυωνύμου (γεννήτριας) Όσο μεγαλύτερο (σε μήκος) πολυώνυμο επιλέξουμε, τόσο μικραίνει η πιθανότητα μη ανίχνευσης λάθους. Μερικές τυποποιημένες τιμές πολυωνύμων είναι: CRC-12 (1100000001111) CRC-16 (11000000000000101) CCITT-16 (10001000000100001) Άλλες περιπτώσεις τυποποιημένων πολυωνύμων: CRC-8, CRC-10, ITU-16 και ITU-32 κοκ Χρησιμοποιούνται σε περιπτώσεις όπως: CRC-8 : ATM Header, CRC-10: ATM AAL, ITU-16: HDLC, ITU-32: LANs
CRC-Cyclic Redundancy Check συνέχεια
Παράδειγμα κυκλώματος υλοποίησης CRC (7,4)
Τεχνικές Ανίχνευσης λάθους (Error Detection) Η βασικότερες τεχνικές ανίχνευσης λαθών είναι: Ισοτιμίας (parity) Άθροισμα ελέγχου (Checksum) Μέθοδος κυκλικού πλεονασμού (CRC-Cyclic Redundancy Check ) Οι παραπάνω μέθοδοι δεν παρέχουν ασφαλή διόρθωση λαθών, αλλά μόνο ανίχνευση λαθών. Έτσι το block πληροφορίας θα πρέπει να ξανα-εκπεμφθεί!! Όμως τι γίνεται σε περιπτώσεις όπως: Το κανάλι (link) επικοινωνίας δεν είναι αμφίδρομο (πχ. HDTV) Όταν συμβεί τα λάθη στο κανάλι να είναι αρκετά (πχ. BER >10%) Όταν συμβεί το κανάλι να έχει μεγάλη καθυστέρηση (πχ. Δορυφορική επικοινωνία) Γι αυτό πιο καλύτερη λύση είναι η εφαρμογή των τεχνικών: FEC (Forward Error Correction)
Τεχνικές FEC (Forward Error Correction) Οι τεχνικές FEC (Forward Error Correction), κάνουν ανίχνευση και διόρθωση σφαλμάτων. Στις τεχνικές αυτές προσθέτουμε πλεονάζουσα πληροφορία στα μηνύματα που αποστέλλονται. Με την χρήση των τεχνικών FEC, - Έχουμε διόρθωση στον παραλήπτη και - αποφεύγονται οι επαν-αναμεταδώσεις (πλεονέκτημα στις real time εφαρμογές) Χρησιμοποιούνται: σε συσκευές αποθήκευσης και αναπαραγωγής ήχου πχ CDs κυρίως, σε εφαρμογές οπτικών επικοινωνιών Οι τεχνικές FEC μπορούν να χρησιμοποιηθούν μόνες τους ή σε συνδυασμό με τεχνικές ARQ, επιπέδου ζεύξης.
Τεχνικές FEC (Forward Error Correction) Γιατί να χρησιμοποιήσουμε τεχνικές FEC? Οι τεχνικές FEC μειώνουν σημαντικά το BER με πολύ μικρό overhead!. Πχ σε ένα σύστημα FEC με είσοδο δεδομένων BER=10-4, έχουμε έξοδο: BER=10-14! Προσθέτοντας FEC κυκλώματα, αυξάνεται το κόστος των συστημάτων
Παραδείγματα