Εισαγωγή στους Η/Υ Ενότητα 8: Δημήτρης Σαραβάνος, Καθηγητής Πολυτεχνική Σχολή Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών
Σκοποί ενότητας Κατανόηση του τρόπου με τον οποίο στέλνεται ένα πακέτο δεδομένων Κατανόηση του ελέγχου και της διόρθωσης σφαλμάτων σε σήματα 2
Περιεχόμενα ενότητας Ανίχνευση και Διόρθωση Σφαλμάτων 3
Μέρος 1 ο
Μετάδοση Σήματος
Μετάδοση Σήματος Στο φυσικό κόσμο υπάρχουν αναλογικά σήματα (συνεχή), ενώ ο υπολογιστής καταλαβαίνει μόνο ψηφιακά (διακριτά). Εικόνα 1: Αναλογικό σήμα Η μετάδοση ενός σήματος γίνεται πάντα με τρόπο αναλογικό (αφού είναι «φυσική ποσότητα») Εικόνα 2: Ψηφιακό σήμα 6
Μετάδοση Σήματος Η ψηφιοποίηση γίνεται μέσω κβαντισμού και δειγματοληψίας (Θυμηθείτε το 1 ο μάθημα). Εναλλακτικά, μπορεί να γίνει μετάδοση ενός «ψηφιακού σήματος», χρησιμοποιούνται διάφορες τεχνικές, που κάνουν ένα αναλογικό σήμα να προσεγγίζει μια ψηφιακή μορφή. 7
Μετάδοση Σήματος Καθορισμός των 0 & 1: Με βάση το πλάτος Με βάση τη φάση Με βάση τη συχνότητα Διάγραμμα 1: Διάγραμμα μετάδοσης αναλογικού σήματος 8
Μετάδοση Σήματος Όσο καλό και αν είναι ένα μέσο μετάδοσης (ενσύρματο ή ασύρματο), πάντα υπάρχει θόρυβος που αλλοιώνει το μεταδιδόμενο σήμα. Ο θόρυβος μπορεί να προέρχεται από παράσιτα, παρεμβολές, ατέλειες στα μέσα μετάδοσης κτλ. 9
Μέρος 1 ο Ανίχνευση και Διόρθωση Σφαλμάτων
Ανίχνευση και Διόρθωση Σφαλμάτων Έλεγχος Σφαλμάτων
bit ισοτιμίας Η μέθοδος του bit ισοτιμίας είναι ίσως η πιο απλή μέθοδος για τον εντοπισμό ύπαρξης ενός σφάλματος. Υπάρχουν δύο μέθοδοι: Μέθοδος άρτιας ισοτιμίας Μέθοδος περιττής ισοτιμίας Σύμφωνα με τη μέθοδο αυτή, η ακολουθία των 0,1 του σήματος χωρίζεται σε ομάδες σταθερού μεγέθους, πχ ομάδες των 7 bit. Στην ομάδα αυτή προσαρτάται στο τέλος ένα επιπλέον bit (ή 0 ή 1), ώστε το άθροισμα των «1» να είναι άρτιο ή περιττό ανάλογα με τη μέθοδο που ακολουθούμε. Εικόνα 3: Παράδειγμα ομάδας των 7bit 12
bit ισοτιμίας Παράδειγμα Έστω ότι θέλουμε να μεταδώσουμε τη λέξη HELLO με χρήση ελέγχου άρτιας ισοτιμίας. Η λέξη με βάση τον πίνακα ASCII γράφεται: Εικόνα 4: Η λέξη HELLO με βάση τον πίνακα ASCII Το bit ελέγχου μπορεί να προστεθεί είτε στη αρχή είτε στο τέλος, ανάλογα με το «πρωτόκολλο» που ακολουθείται. Εικόνα 5: Η λέξη HELLO με το bit ελέγχου στο τέλος 13
bit ισοτιμίας Παράδειγμα Μεταδίδουμε το σήμα: Ο δέκτης λαμβάνει Ο δέκτης ξέρει ότι έχουμε χρησιμοποιήσει 7bit κάθε γράμμα + 1bit άρτιας ισοτιμίας στο τέλος κάθε γράμματος. (Αν δεν ξέρει τον τρόπο μετάδοσης που χρησιμοποιούμε, προφανώς δεν έχει νόημα γι αυτόν η ακολουθία 0,1 που έλαβε). 14
bit ισοτιμίας Παράδειγμα Ο δέκτης ελέγχει σε κάθε 8άδα bit αν το πλήθος «1» είναι άρτιο. Η πρώτη 8άδα έχει 2 «1», οκ Η δεύτερη 8άδα έχει 4 «1», οκ Η τρίτη 8άδα έχει 3 «1», σφάλμα!!! Η τέταρτη 8άδα έχει 4 «1», οκ Η πέμπτη 8άδα έχει 6 «1», οκ Προσέξτε ότι αν σε κάποια 8άδα αλλοιωθούν 2 bit, τότε η ισοτιμία θα παραμείνει άρτια, και κατά συνέπεια το σφάλμα δεν είναι ανιχνεύσιμο! 15
bit ισοτιμίας Παρατηρήσεις Ο έλεγχος ισοτιμίας μας δίνει πληροφορία για το αν υπάρχει σφάλμα σε κάποια ομάδα bit, υπό την προϋπόθεση ότι ο αριθμός σφαλμάτων είναι περιττός. Δηλαδή, θα ανιχνεύσει την ύπαρξη σφάλματος μόνο αν έχουν αλλοιωθεί 1, 3, 5, bit Άρα ο προηγούμενος έλεγχος θα ήταν πιο σωστό να γραφτεί: (Συνέχεια στην επόμενη διαφάνεια) 16
bit ισοτιμίας Παρατηρήσεις Ο δέκτης ελέγχει σε κάθε 8άδα bit αν το πλήθος «1» είναι άρτιο. Η πρώτη 8άδα έχει 2 «1», μάλλον οκ ή άρτιο πλήθος σφαλμάτων Η δεύτερη 8άδα έχει 4 «1», μάλλον οκ ή άρτιο πλήθος σφαλμάτων Η τρίτη 8άδα έχει 3 «1», σίγουρα σφάλμα!!! Η τέταρτη 8άδα έχει 4 «1», μάλλον οκ ή άρτιο πλήθος σφαλμάτων Η πέμπτη 8άδα έχει 6 «1», μάλλον οκ ή άρτιο πλήθος σφαλμάτων Πάντως αν εντοπιστεί σφάλμα, η ύπαρξή του είναι βέβαιη. Παρατηρείστε ότι ο έλεγχος ισοτιμίας μπορεί να μας ενημερώσει (έστω και υπό προϋποθέσεις) για την ΥΠΑΡΞΗ σφάλματος. Δε μας δίνει καμία πληροφορία για τη θέση του! 17
Κυκλικός Έλεγχος Πλεονασμού (CRC) Αυτός είναι ο δημοφιλέστερος τρόπος ελέγχου σφαλμάτων. Αυτός δουλεύει ως εξής: 1. Έστω ότι θέλουμε να μεταδώσουμε μια ακολουθία από k bits 2. Ο πομπός παράγει μια ακολουθία από s bits και την προσαρτά στο τέλος των k bits. k bits s bits Εικόνα 6: Η συνολική ακολουθία που παράγει ο πομπός 3. Συνολικά δημιουργείται ένα μήνυμα με n = k + s bits. Τα s bits λέγονται ακολουθία ελέγχου (Frame Check Sequence FCS). 4. Το συνολικό μήνυμα είναι τέτοιο που διαιρείται από κάποιο προκαθορισμένο αριθμό. (Δηλ. η FCS στο βήμα 2 παράγεται βάσει κάποιας προσυμφωνημένης σύμβασης). 18
Κυκλικός Έλεγχος Πλεονασμού 5. Ο δέκτης κάνει τη διαίρεση με το «γνωστό προκαθορισμένο» αριθμό. Αν η διαίρεση γίνει ακριβώς (δηλ. δεν υπάρξει υπόλοιπο), τότε ο δέκτης υποθέτει ότι η μετάδοση έγινε χωρίς σφάλματα. Η επιλογή του κατάλληλου «διαιρέτη» είναι πολύ σύνθετη διαδικασία που καθορίζεται από διεθνή πρότυπα (και δε θα μας απασχολήσει). Οι σημερινές υλοποιήσεις ανιχνεύουν 1 ή περισσότερα σφάλματα σε μια ακολουθία με πολύ μεγάλο ποσοστό επιτυχίας. CRC-12: 1100000001111 CRC-16: 1100000000000011 κτλ 19
Σύστημα Αρίθμησης Gray Αντί για την κλασσική αρίθμηση 0 = 00 2, 1 = 01 2, 2 = 10 2, 3 = 11 2, κτλ έχουν προταθεί εναλλακτικά αριθμητικά συστήματα, τα οποία υπό προϋποθέσεις βοηθούν στην ανίχνευση σφαλμάτων. Ο κώδικας Gray χρησιμοποιεί και αυτός τα ψηφία 0/1, αλλά η μετατροπή από/προς το δεκαδικό σύστημα δεν γίνεται με το γνωστό τρόπο με τις δυνάμεις του 2. Χαρακτηριστικό για τους αριθμούς Gray είναι ότι καθώς αυξάνονται κατά 1 μονάδα, μεταβάλλεται ΜΟΝΟ ένα ψηφίο τους. Αυτό δεν ισχύει προφανώς για το κανονικό δυαδικό σύστημα (1=001 2, 2=010 2 Άλλαξαν 2 bit) 20
Σύστημα Αρίθμησης Gray Με αυτόν τον τρόπο, εξασφαλίζουμε την ανίχνευση λαθών σε συστήματα που ξέρουμε ότι υπάρχει βηματική αύξηση/μείωση (πχ οι δείκτης ορόφου σε ένα ασανσέρ). Στη συνέχεια παρουσιάζεται ένας εμπειρικός κανόνας για την εύρεση της αντιστοιχίας των ψηφίων του κώδικα Gray. 21
Σύστημα Αρίθμησης Gray Για να βρούμε τους αριθμούς σε κώδικα Gray, ακολουθούμε μια επαναληπτική διαδικασία: Πίνακας 4: Επανάληψη Πίνακας 1: Πίνακας Εκκίνησης της διαδικασίας Αρ. Gray Δεκαδικός Αρ. Gray Δεκαδικός 0 0 000 0 1 1 001 1 Πίνακας 2: 1. Γράφουμε τη στήλη Gray κατοπτρικά Αρ. Gray Δεκαδικός 0 0 1 1 1 2 0 3 Πίνακας 3: 2. Προσθέτουμε 1 επιπλέον bit από αριστερά Αρ. Gray Δεκαδικός 00 0 01 1 11 2 10 3 Πάνω: 0 Κάτω: 1 011 2 010 3 110 4 111 5 101 6 100 7 κ. ο. κ.
Έλεγχος Ροής Δεδομένων Ο «έλεγχος ροής» είναι το σύνολο των διαδικασιών που ακολουθεί ένας δέκτης, ώστε να ρυθμίσει τη ροή των δεδομένων που καταφτάνουν σε αυτόν, ώστε να μην υπάρξει υπερχείλιση της μνήμης του. Εικόνα 7: Σχέδιο δικτύου ροής δεδομένων 23
Έλεγχος Σφαλμάτων Ο «έλεγχος σφαλμάτων» είναι το σύνολο των διαδικασιών που ακολουθεί ένας δέκτης, ώστε ανιχνεύσει και αν μπορεί να διορθώσει σφάλματα στα δεδομένα που λαμβάνει. Ένα μήνυμα (ακολουθία 0/1) δεν στέλνεται ποτέ ολόκληρο, αλλά χωρίζεται σε μικρότερα επιμέρους πακέτα δεδομένων που λέγονται πλαίσια (frames). Τα είδη των σφαλμάτων χωρίζονται σε δυο μεγάλες κατηγορίες: 1. Χαμένο πλαίσιο: Ένα πλαίσιο αποτυγχάνει να φτάσει στο δέκτη (πχ «έπεσε» κάποιος ενδιάμεσος πομπός). 2. Αλλοιωμένο πλαίσιο: Ένα πλαίσιο φτάνει στο δέκτη, αλλά κάποια bit είναι εσφαλμένα. πχ αν στέλνονται διαδοχικοί αριθμοί Gray, ο δέκτης έλαβε πακέτο με αλλαγμένα 2 ή περισσότερα bit. 24
Κοινές Τεχνικές Ελέγχου Μερικές από τις τεχνικές που εφαρμόζονται είναι οι εξής: 1. Ανίχνευση σφάλματος: Bit ισοτιμίας, CRC, κτλ 2. Επιβεβαίωση λήψης: Για κάθε πλαίσιο που έλαβε σωστά, ο δέκτης στέλνει πίσω στον πομπό ένα μήνυμα επιβεβαίωσης (ACK). 3. Αναμετάδοση μετά το τέλος χρόνου: Ο πομπός περιμένει για ένα προκαθορισμένο χρονικό διάστημα (time-out) για την επιβεβαίωση λήψης. Αν δεν την λάβει, ξαναστέλνει το πλαίσιο. 4. Αρνητική επιβεβαίωση: Ο δέκτης στέλνει στον πομπό μήνυμα σχετικά με το ποια πλαίσια δεν έλαβε ή είχαν σφάλμα, και ο πομπός τα ξαναστέλνει. κτλ. Όλες αυτές οι τεχνικές είναι γνωστές ως τεχνικές αυτόματης αίτησης επανάληψης (ARQ: Automatic Repeat Request). 25
Τεχνικές ARQ 1. ARQ Παύσης και αναμονής Ο πομπός στέλνει ένα πλαίσιο και περιμένει να πάρει πίσω την επιβεβαίωση λήψης. Αν η επιβεβαίωση δε φτάσει εντός προκαθορισμένου χρόνου, το πλαίσιο ξαναστέλνεται. Δέκτης 0 1 Σφάλμα/ Απώλεια Πλαίσιο 0 ΟΚ 0 Πλαίσιο 1 ΟΚ 1 Χρόνος Πομπός 0 1 Timeout 1 Διάγραμμα 2: Διάγραμμα ελέγχου σφάλματος με την τεχνική ARQ Παύσης και Αναμονής Timeout: Δεν υπήρξε επιβεβαίωση, άρα ξαναστέλνω 26
2. ARQ Επανεκπομπής Ν Τεχνικές ARQ Ο πομπός στέλνει μια σειρά από Ν πλαίσια και περιμένει επιβεβαίωση του τελευταίου. Αν δεν τη λάβει, επαναλαμβάνει τη μετάδοση. Σταμάτησαν να ερχονται δεδομένα, άρα στέλνω επιβεβαίωση Άλλαξε η σειρά στην αρίθμηση, άρα σφάλμα. Λαμβάνω από την αρχή την ομάδα Δέκτης 0 1 2 3 5 3 4 5 Πλ. 0 Πλ. 1 Πλ. 2 ΟΚ 2 Πλ. 3 Σφάλμα/ Απώλεια ΟΚ 3 Πλ. 5 Πλ. 3 Πλ. 4 Πλ. 5 Πλ. 4 Πομπός 0 Διάγραμμα 3: Διάγραμμα ελέγχου σφάλματος με την τεχνική ARQ Επανεκπομπής με «μήκος παραθύρου 3» 1 2 Timeout Περιμένω επιβεβαίωση του τελευταίου για να συνεχίσω 3 4 5 3? Έχω στείλει και το 5. Άρα σφάλμα. Ξαναστέλνω την ομάδα 3 4 5 27
Τεχνικές ARQ 3. ARQ Επιλεκτικής Απόρριψης Ο πομπός στέλνει μια σειρά από πλαίσια. Ο δέκτης ενημερώνει που ανίχνευσε σφάλμα (αλλοίωση ή απώλεια) και ο πομπός στέλνει μόνο τα εσφαλμένα. Το 4 ήρθε εκτός σειράς, πρέπει συνθέσω σωστά το μήνυμα. Δέκτης 0 1 2 3 5 6 7 4 Πλ. 0 ΟΚ 0 Πλ. 1 Πλ. 2 ΟΚ 1 ΟΚ 2 ΟΚ 3 ΟΚ 5 Σφάλμα/ Πλ. 2 Πλ. 5 Πλ. 6 Απώλεια Πλ. 4 ΟΚ 6 ΟΚ 7 ΟΚ 4 Πλ. 7 Πλ. 4 Πομπός 0 1 2 3 4 5 6 7 4 5?? Άρα το 4 Χάθηκε. Ξαναστέλνω μόνο το 4 Διάγραμμα 4: Διάγραμμα ελέγχου σφάλματος με την τεχνική ARQ Επιλεκτικής Απόρριψης Πομπός και Δέκτης πρέπει να έχουν την ικανότητα να συνθέσουν το μήνυμα από ετεροχρονισμένα πακέτα. 28
Τέλος Ενότητας
Ανάπτυξη Το παρόν εκπαιδευτικό υλικό αναπτύχθηκε από την Ερευνητική Ομάδα Δομικής Ανάλυσης και Ευφυών Υλικών του Εργαστηρίου Τεχνικής Μηχανικής και Ταλαντώσεων. http://saam.mech.upatras.gr 30
Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στο πλαίσιο του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Πανεπιστήμιο Πατρών» έχει χρηματοδοτήσει μόνο την αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 31
Σημείωμα Αναφοράς Copyright Πανεπιστήμιο Πατρών, Πολυτεχνική Σχολή, Τμήμα Μηχανολόγων & Αεροναυπηγών Μηχανικών, Δημήτρης Σαραβάνος. Δημήτρης Σαραβάνος. «Εισαγωγή στους Η/Υ.». Έκδοση: 1.0. Πάτρα 2014. Διαθέσιμο από τη δικτυακή διεύθυνση: https://eclass.upatras.gr/courses/mech1203/ 32
Σημείωμα Αδειοδότησης Το παρόν υλικό διατίθεται με τους όρους της άδειας χρήσης Creative Commons Αναφορά, Μη Εμπορική Χρήση Παρόμοια Διανομή 4.0 [1] ή μεταγενέστερη, Διεθνής Έκδοση. Εξαιρούνται τα αυτοτελή έργα τρίτων π.χ. φωτογραφίες, διαγράμματα κ.λ.π., τα οποία εμπεριέχονται σε αυτό και τα οποία αναφέρονται μαζί με τους όρους χρήσης τους στο «Σημείωμα Χρήσης Έργων Τρίτων». [1] http://creativecommons.org/licenses/by-nc-sa/4.0/ Ως Μη Εμπορική ορίζεται η χρήση: που δεν περιλαμβάνει άμεσο ή έμμεσο οικονομικό όφελος από την χρήση του έργου, για το διανομέα του έργου και αδειοδόχο που δεν περιλαμβάνει οικονομική συναλλαγή ως προϋπόθεση για τη χρήση ή πρόσβαση στο έργο που δεν προσπορίζει στο διανομέα του έργου και αδειοδόχο έμμεσο οικονομικό όφελος (π.χ. διαφημίσεις) από την προβολή του έργου σε διαδικτυακό τόπο Ο δικαιούχος μπορεί να παρέχει στον αδειοδόχο ξεχωριστή άδεια να χρησιμοποιεί το έργο για εμπορική χρήση, εφόσον αυτό του ζητηθεί. 33
Διατήρηση Σημειωμάτων Οποιαδήποτε αναπαραγωγή ή διασκευή του υλικού θα πρέπει να συμπεριλαμβάνει: το Σημείωμα Αναφοράς το Σημείωμα Αδειοδότησης τη δήλωση Διατήρησης Σημειωμάτων το Σημείωμα Χρήσης Έργων Τρίτων (εφόσον υπάρχει) μαζί με τους συνοδευόμενους υπερσυνδέσμους. 34
Σημείωμα Χρήσης Έργων Τρίτων Οποιοδήποτε έργο στην παρούσα ενότητα, έχει δημιουργηθεί από το διδάσκοντα του μαθήματος ή/και την Τμηματική Ομάδα Εργασίας και παρέχεται με την ίδια άδεια CC BY-NC-SA 4.0 35