Το παρακάτω διάγραμμα απεικονίζει αυτήν την αποτυχία. Θα απλοποιήσουμε το διάγραμμα, εστιάζοντας στις κρίσιμες πτυχές της αναδιάταξης μηνυμάτων και στην κατανομή του πρωτοκόλλου.
`` `
+--------+Δίκτυο (αναδιάταξη)+--------+
| Αποστολέας | --------------------------------> | Δέκτης |
+--------+<-------------------------------------------------------------+
| |
| Πακέτο 2 (seqnum =1) |
V ^
+-------+-------> [Δίκτυο] <--------+--------+
| | | Πακέτο 1 (seqnum =0)
| Πακέτο 1 (seqnum =0) |
+-------+-------> [Δίκτυο] <--------+--------+
+-------------------++------------------+
| Ενέργειες αποστολέα | | Ενέργειες δέκτη |
+-------------------++------------------+
| Στέλνει πακέτο 1 | | Λαμβάνει πακέτο 2 (seqnum =1) - απροσδόκητο! |
| Στέλνει πακέτο 2 | | (Το πακέτο 2 είναι εκτός λειτουργίας, το RDT3.0 δεν το χειρίζεται αυτό) |
| | | Ο δέκτης περιμένει τον αριθμό ακολουθίας 0. |
+-------------------++------------------+
^ |
| (Το χρονικό όριο τελικά εμφανίζεται στον αποστολέα εάν δεν ληφθεί κανένα ACK)
| V
| Πακέτο Retransmits αποστολέα 1 | Ο δέκτης λαμβάνει τελικά το πακέτο 1 (seqnum =0) - αλλά εξακολουθεί να είναι δυνητικά προβληματικό λόγω των επικαλυμμάτων εάν χάθηκε το ACK.
`` `
Επεξήγηση:
1. αποστολέας: Στέλνει το πακέτο 1 (seqnum =0) και το πακέτο 2 (seqnum =1).
2. Δίκτυο: Το δίκτυο ανακατασκευάζει τα πακέτα, παρέχοντας πακέτο 2 πριν από το πακέτο 1 στον δέκτη.
3. δέκτης: Ο δέκτης αναμένει πακέτο 1 (seqnum =0), αλλά λαμβάνει πακέτο 2 (seqnum =1). Ο σχεδιασμός του RDT3.0 υπαγορεύει ότι θα απορρίψει το πακέτο 2 επειδή δεν είναι ο αναμενόμενος αριθμός ακολουθίας. Δεν θα στείλει ένα ACK για το Packet 2 επειδή είναι εκτός λειτουργίας.
4. Αποτυχία: Οι φορές ο αποστολέας περιμένουν ένα ACK για το πακέτο 1 (ή ενδεχομένως το πακέτο 2 ανάλογα με την υλοποίηση του χρονικού ορίου). Αναμεταδίδει, οδηγώντας σε πιθανή επικάλυψη στον δέκτη. Ο δέκτης ενδέχεται να έχει προβλήματα επεξεργασίας των διπλών πακέτων και σωστά συμβάντα αλληλουχίας εάν ένας μηχανισμός για την αντιμετώπιση αυτού δεν εφαρμόστηκε.
κρίσιμο σημείο: Το RDT3.0 βασίζεται στο υποκείμενο δίκτυο για την παροχή πακέτων με τη σειρά που στάλθηκαν. Εάν τα πακέτα του δικτύου ανακατασκευάσουν, ο απλός μηχανισμός αναγνώρισης του πρωτοκόλλου καταρρέει, με αποτέλεσμα την αναξιόπιστη παράδοση δεδομένων. Για να χειριστείτε την παράδοση εκτός παραγγελίας, θα ήταν απαραίτητο ένα πιο εξελιγμένο πρωτόκολλο (όπως ο μηχανισμός παραθύρου ολίσθησης του TCP ή ένα πρωτόκολλο που έχει σχεδιαστεί ρητά για να χειριστεί την αναδιάταξη).
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα