130 likes | 272 Views
Εύρος του RN που λαμβάνεται από τον Β. SN B ≥ RN B - n. SN B ≤ RN B + n - 1. RN B - n ≤ SN B ≤ RN B + n - 1. Modulus m = 2n για την επιλεκτική επαναληπτική ARQ. n = 4 SN B 0 1 2 3 4 5 6 7 RN B 4 m = n + 1 = 5 ( οπισθοχώρηση κατά 4)
E N D
Εύρος του RN που λαμβάνεται από τον Β SNB≥ RNB - n SNB≤ RNB + n - 1 RNB - n ≤ SNB≤ RNB + n - 1
Modulus m = 2n για την επιλεκτική επαναληπτική ARQ n = 4 SNB 0 1 2 3 4 5 6 7 RNB 4 m = n + 1 = 5 (οπισθοχώρηση κατά 4) SNB mod 5 0 1 2 3 4 0 1 2 RNB mod5 4 m = 4 SNB mod 4 0 1 2 3 0 1 2 3 RNB mod 4 0 m = 2n = 8 (επιλεκτική επαναληπτική ARQ) SNB mod 8 0 1 2 345 6 7 RNB mod 8 4 αποδεκτό αγνοούνται αποθηκεύονται
Επιλεκτική επαναληπτική ARQ με n = 2β + 2 και μνήμη δέκτη για β + 1 πακέτα Έχουμε μείωση της μεταβλητότητας της καθυστέρησης.
Data Link Control (DLC) • Θέματα: • Ανίχνευση εσφαλμένων bits, ανάκαμψη από σφάλματα είτε ζητώντας την επαναμετάδοση του πλαισίου, είτε με απευθείας διόρθωση (error detection and retransmission ή error correction). • Πλαισίωση (framing): καθορισμός (DLC λήπτη) της αρχής και του τέλους κάθε πλαισίου.
Ανίχνευση σφαλμάτων σε μια ακολουθία bits • Απλούστερη: πρόσθεση bit ελέγχου ισοτιμίας (parity check). (parity bit=άθροισμα των bits mod 2) 1011010 0 sk-1…s1 s0 c Ανιχνεύει κάθε περιττό αριθμό λαθών. • Βελτίωση: πρόσθεση περισσότερων bits ελέγχου ισοτιμίας. π.χ. οριζόντιος και κάθετος έλεγχος ισοτιμίας 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 0 1 1 0 1 1 0 0 0 0 0 1 1 1 0 0 Ανιχνεύει κάθε 3-άδα λαθών και κάθε περιττό αριθμό λαθών. συμβολοσειρά ισοτιμία οριζόντιος έλεγχος κάθετος έλεγχος
Αποδοτικότητα ενός κώδικα ελέγχου • Ελάχιστη απόσταση: ο ελάχιστος αριθμός σφαλμάτων που μπορούν να περάσουν χωρίς να ανιχνευθούν. • Ένα bit ελέγχου ισοτιμίας: dmin=2. • Οριζόντιος & κάθετος έλεγχος ισοτιμίας: dmin=4. • Δυνατότητα ανίχνευσης καταιγιστικών λαθών (burst detecting capability): το μέγιστο μήκος καταιγιστικών λαθώνπου μπορεί πάντα να ανιχνευθεί. • Το μήκος ενός καταιγισμού λαθών είναι ο αριθμός των bits από το πρώτο μέχρι το τελευταίο λάθος. • Ένα bit ελέγχου ισοτιμίας: 1. • Οριζόντιος & κάθετος έλεγχος ισοτιμίας: μήκος γραμμής + 1. • Πιθανότητα να θεωρηθεί χωρίς λάθη μια τυχαία ακολουθία από bits. • Γενικά:
Κυκλικός Πλεονάζων Κώδικας Ελέγχου (CRC) Αναπαριστούμε τα bit δεδομένων και τα bit ελέγχου με πολυώνυμα: S(x) ∙xL +C(x)= sK-1xK+L-1 + sK-2xK+L-2 + … + s1xL+1 + s0xL +cL-1xL-1 + cL-2xL-2 + … + c1x + c0 π.χ. bit δεδομένων = 101111 S(x) = x5 + 0 ∙ x4 + x3 + x2 + x + 1 (K=6) Ολόκληρο πακέτο: S(x) ∙ xL + C(x) π.χ. 101101 10 (Κ=6) (L=2) συμβολοσειρά ισοτιμία
Κυκλικός Πλεονάζων Κώδικας Ελέγχου (Cyclic Redundancy Check Code – CRC) S(x) = sK-1xK-1 + sK-2xK-2 + … + s1x + s0 C(x) είναι το υπόλοιπο της διαίρεσης του S(x) ∙ xLμε ένα γεννητικό πολυώνυμο g(x). C(x) = Remainder Παράδειγμα: string = 101111, χρήση L = 2 bit ελέγχου και g(x) = x2 + x x7 + + x5 + x4 + x3 + x2 x2 + x x7 + x6 x5 + x4 + x2 + 1 x6 + x5 + x4 + x3 + x2 x6 + x5 x4 + x3 + x2 x4 + x3 x2 x2 + x Tελικά:10111110 x C(x) c1 = 1, c0 = 0 CRC
Πολυώνυμο που αντιστοιχεί σε ολόκληρο πακέτο: • S(x) ∙ xL + C(x) = x7 + 0 ∙ x6 + x5 + x4 + x3 + x2 + x + 0 • K=6 L=2 • Διαιρείται με το g(x). • Γενικά S(x) ∙ xL = Q(x) ∙ g(x) + C(x) • S(x) ∙ xL – C(x) = S(x) ∙ xL + C(x) = Q(x) ∙ g(x) • Το πολυώνυμο που αντιστοιχεί στο πλαίσιο που στέλνει ο (πομπός) DLC διαιρείται με το γεννητικό πολυώνυμο g(x). • Όταν ο λαμβάνων DLC λαμβάνει ένα πλαίσιο ελέγχει αν το πολυώνυμο που του αντιστοιχεί διαιρείται με το g(x). • Aν το υπόλοιπο R(x) = 0, τότε υποθέτει ότι το πλαίσιο δεν περιέχει λάθη. • Αν το υπόλοιπο R(x) ≠ 0, τότε ανιχνεύει λάθη.
Λανθασμένη αποδοχή (false acceptance) SC: 1 0 1 1 1 1 1 0 M: 1 0 0 1 1 1 1 1 σφάλμα: 0 0 1 0 0 0 0 1 Ε(x) = x5 + 1 eK+L-1 … e2 e1 e0(πολυώνυμο σφάλματος) Ε(x) = eK+L-1xK+L-1 + … + e1x + e0 στέλνεται: S(x) ∙ xL + C(x) διαιρείται με το g(x) λαμβάνεται: S(x) ∙ xL + C(x) + E(x) =M(x) O δέκτης υπολογίζει: R(x) =Remainder = Remainder Έχουμε λανθασμένη αποδοχή όταν το g(x) διαιρεί το E(x) και είναι E(x) ≠ 0. π.χ. Αν g(x) = x2 + x και Ε(x) = x2 + x, x3 + x2 συμβολοσειρά
Iδιότητες των κώδικων CRC • Στην πραγματικότητα η επιλογή του g(x) γίνεται ως εξής: • g(x) = (xL-1 + … + 1)∙ (x+1) • = xL + gL-1xL-1 + … + g1x + 1 • Ελάχιστη απόσταση = 4. • Δυνατότητα ανίχνευσης καταιγιστικών λαθών = L. • Πιθανότητα αποδοχής τυχαίων συμβολοσειρών: 2-L. «πρωτογενές (primitive) πολυώνυμο»
Eλάχιστη απόσταση = 4 • Μπορεί να ανιχνευθεί κάθε περιττός αριθμός λαθών: Αν το Ε(x) διαιρείται από το g(x), τότε E(x) = q(x) ∙ g(x) π.χ. E(x) = x5 + x3 + x2, E(1) = 1 Αλλά g(1) = 0 αφού για x=1 • είναι x + 1 = 0, οπότε E(x) ≠ q(x) ∙ g(x) (περιττός αριθμός λαθών) • Ένα πρωτογενές πολυώνυμο δεν διαιρεί το πολυώνυμο xn + 1 αν n < 2L – 1 2 λάθη:Ε(x) = xi + xj = xj ( xi-j + 1) i - j < K + L( συνήθως < 2L ) • K+L: μήκος πλαισίου
Δυνατότητα ανίχνευσης μαζικών λαθών = L E(x) = xm+b-1 + a2xm+b-2 + … + ab-1xm+1 + xm= xm (xb-1 + a2xb-2 + … + ab-1x + 1) δεν είναι διαιρέσιμο από το xL + gL-1xL-1 + … + g1x + 1, αν b-1 < L. Μπορούν να ανιχνευθούν πάντα καταιγιστικά λάθη μήκους b ≤ L.