ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΔΙΟΡΘΩΣΗ ΣΦΑΛΜΑΤΩΝ Εργαστήριο 1-2 ΑΝΙΧΝΕΥΣΗ ΚΑΙ ΔΙΟΡΘΩΣΗ ΣΦΑΛΜΑΤΩΝ
Εισαγωγή Γιατί χρησιμοποιούμε ανίχνευση σφαλμάτων Σφάλματα μετάδοσης στο φυσικό μέσο Σφάλματα στο αναλογικό μέρος των κυκλωμάτων Σφάλματα στο ψηφιακό μέρος (σπάνια) Σε ποιο στρώμα του δικτύου εφαρμόζεται; Στο Στρώμα Σύνδεσης Δεδομένων(Data Link Layer)
Είδη Σφαλμάτων Ενδεικτικά: Θερμικός Θόρυβος Κρουστικός Θόρυβος Παραμόρφωση σήματος ανάλογα με το κανάλι Ανακλάσεις (παρασιτικές αρμονικές) Αποσυγχρονισμός δέκτη-πομπού Διασταύρωση συνδιαλέξεων (crosstalk)
Τρόπος Αναφοράς Αναφερόμαστε στον μέσο ρυθμό εμφάνισης σφαλμάτων (Bit Error Rate, BER) Έστω ότι το BER είναι e σφάλματα ανά χαρακτήρα, και στέλνουμε ένα σύνολο από n χαρακτήρες, τότε η πιθανότητα να μεταδοθούν σωστά οι n χαρακτήρες είναι [1-e]n
Τρόπος Εμφάνισης Ανεξάρτητα (μεμονωμένα) Σε καταιγισμούς (bursts) Στην περίπτωση του θερμικού θορύβου Σε καταιγισμούς (bursts) Συνηθέστερη περίπτωση
Τι μπορούμε να κάνουμε??? Εισαγωγή πλεονάζουσας πληροφορίας σε κάθε πακέτο, ώστε ο δέκτης : Να συμπεραίνει ποιος ήταν ο χαρακτήρας Χρησιμοποιούμε κώδικες διόρθωσης σφαλμάτων Να συμπεραίνει ότι έχει συμβεί σφάλμα Χρησιμοποιούμε κώδικες ανίχνευσης σφαλμάτων
Απόσταση Hamming (Ι) Ο αριθμός των bits που διαφέρουν δύο κωδικές λέξεις (ΑΠΟΚΛΕΙΣΤΙΚΟ Ή, XOR). Εάν 2 κωδικές λέξεις χωρίζονται με απόσταση Hamming d, τότε θα χρειαστούν d σφάλματα του 1 bit να μετατραπεί η μία στην άλλη.
Απόσταση Hamming (ΙΙ) Για ανίχνευση d σφαλμάτων απαιτείται απόσταση Hamming d+1 Για διόρθωση d σφαλμάτων απαιτείται απόσταση Hamming 2d+1
Απόσταση Hamming (ΙΙΙ) Παράδειγμα Έστω κώδικας με 4 έγκυρες κωδικές λέξεις 0000000000 0000011111 1111100000 1111111111 Έχει απόσταση 5, άρα μπορεί να διορθώνει διπλά σφάλματα
Κώδικες Διόρθωσης Σφαλμάτων Κώδικας Hamming Έχουμε μία λέξη με m bits. Πρέπει να θέσουμε r bits ελέγχου που να ικανοποιούν την συνθήκη (m+r+1) 2r Τα r bits ελέγχου μπαίνουν στις θέσεις 2j-1, όπου j=1,2…r Χρησιμοποιούμε μία μήτρα κωδικοποίησης rx(2r-1)
Κώδικες Ανίχνευσης Σφαλμάτων Bit Ισοτιμίας (parity bit) Δεδομένα 1010 1001 0100 Προσθήκη bit ισοτιμίας για αρτιότητα 1010 1001 01001 Ικανό να ανιχνεύει μονά σφάλματα Σε περίπτωση καταιγισμού η πιθανότητα ανίχνευσης είναι 50% !! Βελτίωση με αποστολή σε ένα πίνακα NxK 1 0 1 0 1 0 0 1 0 1 0 0 1 0 1 0 1 0 0 1 0 1 0 0 0 1 1 1 Δυνατότητα ανίχνευσης Κ σφαλμάτων στη σειρά, πιθανότητα να γίνει αποδεκτό ένα σφάλμα είναι 2-Ν
Πολυωνυμικός Κώδικας Γνωστός και ως... Κυκλικός Κώδικας Πλεονασμού (CRC, Cyclic Redundancy Check) Θεωρεί την ακολουθία των bits σαν συντελεστές ενός πολυωνύμου Δεδομένα 11010011·x6+ 1·x5+ 0·x4+ 1·x3+ 0·x2+ 0·x1+ 1·x0 άρα το πολυώνυμο είναι το x6+ x5+ x3+ x0 βαθμού κ-1 (όπου κ ο αριθμός των bit)
Πολυωνυμικός Κώδικας Πομπός και Δέκτης συμφωνούν να χρησιμοποιήσουν ένα πολυώνυμο γεννήτορα G(x) Ο πομπός προσθέτει στο πλαίσιο για αποστολή ένα άθροισμα ελέγχου (checksum) ώστε το συνολικό πολυώνυμο που σχηματίζεται να διαιρείται ακριβώς με το G(x). O δέκτης λαμβάνει το συνολικό πλαίσιο και το διαιρεί με το G(x) (modulo-2). Aν προκύψει υπόλοιπο τότε υπήρξε σφάλμα κατά την μετάδοση.
Πολυωνυμικός Κώδικας Ο αλγόριθμος: Έστω G(x) βαθμού r το πολυώνυμο γεννήτορας M(x) το πλαίσιο δεδομένων (m bits) Προσθέτουμε r bits στο τέλος του M(x) και έχουμε το πολυώνυμο L(x) (περιέχει m+r bits) Διαιρούμε το L(x) με το G(x) με διαίρεση modulo-2 Το υπόλοιπο της διαίρεσης R(x) αφαιρείται από το L(x) και το αποτέλεσμα είναι αυτό που μεταδίδεται.
Παράδειγμα υπολογισμού CRC M(x)110 101 1011 G(x)x4+x+1 10011 Προσθέτουμε 4 bits στο τέλος του M(x) 110 101 1011 0000 Κάνουμε την διαίρεση M(x)xp/G(x) 11010110110000 10011 11010110110000 10011 1110 1100001010 11000010 110000101 1100001 1 110000 110 1100 11000 11 1 1001 11010110111110 10011 00000 1 1 1 10011 11010110111110 10011 00101 10011 00111 1110
Αποτέλεσμα Ένας πολυωνυμικός κώδικας με r bits ελέγχου θα ανιχνεύσει όλα τα σφάλματα καταιγισμού μήκους r Σφάλμα καταιγισμού ορίζεται ως ένα πολυώνυμο E(x) που το αρχικό και το τελικό bit είναι 1, άρα μπορεί να παραγοντοποιηθεί σε xi•(xk-i+…..+ 1). Αν το G(x) περιέχει έναν όρο x0 και ο βαθμός της παρένθεσης (k-i) είναι μικρότερος του βαθμού του G(x) τότε το υπόλοιπο της διαίρεσης δεν μπορεί να είναι ποτέ μηδέν
Πολυώνυμα Πολυώνυμα που έχουν γίνει διεθνή πρότυπα είναι τα ακόλουθα: CRC-12 x12+x11+x3+x2+x1+1 CRC-16 x16+x15+x2+1 CRC-CCITT x16+x12+x7+1
Και Τώρα πάμε στα PC!!!!