Πρωτόκολλο στάσης και αναμονής Αριθμοί αίτησης Αντί για σήματα ACK και NAK, ο δέκτης στέλνει κάθε φορά τον αριθμό του πακέτου που περιμένει. Οι αριθμοί ακολουθίας και αίτησης μπορούν να στέλνονται mod 2 (επειδή τα πακέτα n & n+2 δε μπορούν να βρίσκονται ταυτόχρονα στο σύστημα).
Αποδοτικότερα πρωτόκολλα επαναμετάδοσης ARPANET ARQ Oπισθοχώρηση κατά n (go back n) Επιλεκτική επαναμετάδοση (selective repeat) ARPANET ARQ Τα πακέτα ανατίθενται σε ένα από 8 εικονικά κανάλια, τα οποία εξυπηρετούνται με κυκλική (round-robin) σειρά. Αν ξαναέρθει η σειρά για εξυπηρέτηση ενός (εικονικού) καναλιού πρίν φτάσει το αντίστοιχο σήμα ACK, το αντίστοιχο πακέτο ξαναστέλνεται.
ΑRPANET ARQ π.χ. 3 εικονικά κανάλια A, B και C
Οπισθοχώρηση κατά n O πομπός Α στέλνει τα πακέτα ακολουθιακά (SN = sequence number – αριθμός ακολουθίας). Ο λήπτης Β επιβεβαιώνει τη σωστή λήψη ενός πακέτου στέλνοντας τον αριθμό του επόμενου πακέτου που θέλει (RN = request number – αριθμός αίτησης). Ο λήπτης δέχεται τα πακέτα στη σωστή σειρά (αν RN ≠ SN, το πακέτο αγνοείται). Ο πομπός μπορεί να στείλει οποιοδήποτε πακέτο μέσα στο παράθυρο (window) [SNmin, SNmin+n-1], όπου SNmin είναι ίσο με το τελευταίο RN που έλαβε από τον δέκτη. Όταν ο πομπός στείλει και το τελευταίο πακέτο του παραθύρου, τότε ξαναστέλνει το πακέτο SNmin είτε (α) αμέσως, είτε (β) μετά από ένα χρονικό περιθώριο.
Παράδειγμα 1: (δε χρειάζονται επαναμεταδόσεις παρά τα λάθη στο κανάλι από τον Β στον Α) Παράδειγμα 2: (επαναμετάδοσης λόγω λαθών για το πρωτόκολλο οπισθοδρόμησης κατά 4)
Παράδειγμα 3: (επαναμεταδόσεις λόγω λαθών στο κανάλι από τον Β στον Α) Παράδειγμα 4: (επίδραση μεγάλων πλαισίων στο κανάλι από τον B στον Α) Τα σήματα ACK καθυστερούν λόγω των μεγάλων πλαισίων (σε σχέση με αυτά από τον Α στον Β) από τον Β στον Α οπότε ο Α οπισθοχωρεί κατά n.
Ορθότητα πρωτοκόλλου οπισθοδρόμισης κατά n με modulus m > n Tα SN και RN στέλνονται mod m, όπου m > n. Τυπικές τιμές είναι m=8 και m=128 (δορυφορικά κανάλια). SNmin(t1) ≤ SN ≤ SNmin(t1) + n - 1 SNmin(t1) = i = RN(t0) ≤ RN(t2) ≤ SNmin(t1) + n |SN – RN(t2)| ≤ n
Aπόδειξη ορθότητας (συνέχεια) Παλιοί κανόνες Νέοι κανόνες Θεωρούμε αρίθμηση των SN και RN mod m Έστω rn = RN mod m snmin = SNmin mod m sn = SN mod m Παλιοί κανόνες Νέοι κανόνες Ο δέκτης αποδέχεται ένα Ο δέκτης αποδέχεται ένα πακέτο όταν SN = RN(t2) πακέτο όταν sn = rn(t2) Στον πομπό, αν RN ≠ Snmin Στον πομπό, αν rn ≠ snmin θέσε Snmin = RN θέσε snmin = rn
Σχόλια για το πρωτόκολλο οπισθοχώρησης κατά n Η επιλογή m=8 (3 bits για SN και RN) μπορεί να είναι πολύ περιοριστική αφού πρέπει τότε n ≤ 7. Bάζοντας το RN στο τέλος (trailer) του πλαισίου θα μπορούσαμε να μειώσουμε τις συνέπειες του προβλήματος των καθυστερημένων ACKs. Μια άλλη λύση είναι να στέλνουμε τα RN σε μικρά εποπτικά πλαίσια. Στέλνοντας ρητά NAKs κάθε φορά που λαμβάνονται λανθασμένα πλαίσια μπορούμε να βελτιώσουμε την αποδοτικότητα. Αν τα πλαίσια στην αντίστροφη κατεύθυνση είναι περισσότερο από τριπλάσια από τα πλαίσια στην ορθή κατεύθυνση, είναι πολύ πιθανό να υπάρχουν επαναμεταδόσεις.
Επιλεκτική επαναληπτική ARQ (selective repeat ARQ) H αποδοτικότητα της οπισθοχώρησης κατά n μπορεί να αυξηθεί αν επιτρέψουμε στο δέκτη να λαμβάνει πακέτα εκτός σειράς (προϋποθέτει ύπαρξη μνήμης στο δέκτη). Ένα ρητό NAK (explicit NAK) μπορεί να ζητήσει να ξαναμεταδοθεί ένα συγκεκριμένο πακέτο. Η μνήμη του δέκτη (buffer size) θα πρέπει να είναι τουλάχιστον όση και ο αριθμός των πακέτων που στέλνονται σε χρόνο ίσο με την κυκλική διάδοση ενός πακέτου (από τον Α στον Β και από τον Β στον Α) (roundtrip delay). To modulus m που χρησιμοποιείται θα πρέπει να είναι m ≥ 2n.
Αποδοτικότητα (efficiency) p = πιθανότητα να ληφθεί πλαίσιο με σφάλμα. β = αναμενόμενος #πλαισίων ανά κυκλική διάδοση. η = αναμενόμενος #σταλμένων πλαίσια ανά ένα ληφθέν. Στην ιδανική επιλεκτική επαναληπτική ARQ, o πομπός γυρίζει πίσω μόνο αν υπάρξει σφάλμα: η = 1 - p + p(1 + η) αποδοτικότητα: Για ιδανική οπισθοχώρηση κατά n είναι: η = 1 – p + p(1 + β + η) Σημείωση: Ο τυπικός ρυθμός σφαλμάτων είναι < 0.0001. Η επιλεκτική επαναληπτική ARQ δεν έχει μεγάλο κέρδος στην απόδοση εκτός αν ο αριθμός των πακέτων που στέλνονται σε κάθε κυκλική διάδοση είναι μεγάλος (π.χ. δορυφορική επικοινωνία, δίκτυα οπτικής ίνας κ.τ.λ.).
Επιλεκτική επαναληπτική ARQ με n = 2β + 2 και μνήμη δέκτη για β + 1 πακέτα Έχουμε μείωση της μεταβλητότητας της καθυστέρησης.
Άσκηση για το καθαρό πρωτόκολλο στάσης και αναμονής Γράψτε τους αριθμούς των πακέτων που μεταδίδονται. Γράψτε κάθε φορά την κατάσταση (SN του Α mod 2, RN του Β mod 2) του συστήματος για την κυκλοφορία δεδομένων από τον A στον Β.
Πρωτόκολλο στάσης και αναμονής Το πακέτο 1 ΔΕΝ ξαναμεταδίδεται αμέσως. Μεταδίδονται πλεονάζοντα πακέτα αν έχουμε απευθείας επαναμετάδοση