Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1

Σχετικά έγγραφα
Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1

ΗΥ335 - Δίκτυα Υπολογιστών Χειμερινό εξάμηνο Φροντιστήριο Ασκήσεις στο TCP

Άσκηση 2. Αν συμβούν 2 duplicate ACKs αντί για timeout τι γίνεται σε αυτή την περίπτωσή;

Improving the performance of TCP in the case of packet reordering. Στρατάκη Μαρία

Τρίτη Πρόοδος [110 μονάδες] Απαντήσεις

Τρίτη Σειρά Ασκήσεων ΑΣΚΗΣΗ 1 ΑΣΚΗΣΗ 1 ΛΥΣΗ ΑΣΚΗΣΗ 2

4.1.1 Πρωτόκολλο TCP - Δομή πακέτου

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή σε Έννοιες των Δικτύων Υπολογιστών Κεφάλαιο 2 Αξιοπιστία Κεφάλαιο 3 Αλγόριθμοι Πολλαπλής Πρόσβασης...

How do loss and delay occur?

Καθυστέρηση επεξεργασίας (processing delay) Έλεγχος επικεφαλίδας Καθορισµός εξερχόµενης ζεύξης 3

Άσκηση 1. (σημειώστε πως 1KB = 2 10 bytes, 1Mbps = 10 6 bits/sec).

Λουκάς Ελευθέριος

Λύση: Λύση: Λύση: Λύση:

Δίκτυα Απευθείας Ζεύξης. Επικοινωνία µεταξύ δύο υπολογιστών οι οποίοι είναι απευθείας συνδεδεµένοι.

Καθυστέρηση σε δίκτυα μεταγωγής πακέτων. ΗΥ335 Φροντιστήριο 3

Επίπεδο ύνδεσης Δεδομένων (Data Link Layer DLL)

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα. λ από τον ρυθμό μετάδοσής της. Υποθέτοντας ότι ο κόμβος A

Κεφάλαιο 5: Τοπικά ίκτυα

Πρωτόκολλα επανεκποµπής

Δίκτυα Επικοινωνιών ΙΙ: Transmission Control Protocol

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις για το φυσικό στρώμα

ιαδίκτυα & Ενδοδίκτυα Η/Υ

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

7.3 Πρωτόκολλο TCP. 1. Το TCP πρωτόκολλο παρέχει υπηρεσίες προσανατολισµένες σε σύνδεση. Σ Λ

Κεφάλαιο 7.3. Πρωτόκολλο TCP

... Αν ν = 16 εγκαταλείπει τις προσπάθειες μετάδοσης του πακέτου. Τοπολογία Διαύλου (BUS).

Δίκτυα Θεωρία

Πρωτόκολλα Διαδικτύου

2 η Σειρά Ασκήσεων Data Link Layer

7.4 Πρωτόκολλο UDP. 3. Στη περίπτωση που ένα μήνυμα χωράει σε ένα τμήμα, χρησιμοποιούμε το πρωτόκολλο TCP.

Α2. Να γράψετε τους αριθμούς 1-5 από τη Στήλη Α και δίπλα το γράμμα της Στήλης Β που δίνει τη σωστή αντιστοίχηση.

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ

Πρωτόκολλο TCP Διάλεξη ΙΙI

Μηχανισμοί Λογικής σύνδεσης. Διάρθρωση. Δομή πλαισίου. Καθορισμός ορίων πλαισίου

Δεύτερη Σειρά Ασκήσεων

ΚΕΦΑΛΑΙΟ 11: Διαδικασία Μετάδοσης Δεδομένων Εισαγωγή

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

ΙΑΛΕΞΗ 6 Η. ίκτυα Υπολογιστών & Επικοινωνία. ιδάσκουσα: : ρ. Παντάνο Ρόκου Φράνκα. ίκτυα Υπολογιστών και Επικοινωνία. ιάλεξη 6: H Πολύπλεξη

Κεφάλαιο 1 Το Πρωτόκολλο TCP (Transmission Control Protocol)

3/40. (acknowledged connectionless), (acknowledged connection oriented) 4/40

HY-335 : Δίκτυα Υπολογιστών

ίκτυα Επικοινωνίας Υπολογιστών

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 1

ΗΜΥ 654: ίκτυα Υπολογιστών Τελική Εξέταση 8 εκεµβρίου 2004 Η εξέταση αποτελείται από δύο µέρη. Απαντήστε όλες τις ερωτήσεις του Μέρους Ι και 3 από

Δίκτυα Υπολογιστών I Εργαστήρια

ΔΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Ασκήσεις στα Τοπικά Δίκτυα

Υπολογιστές και ίκτυα Η/Υ.

Δίκτυα Υπολογιστών Ενότητα 5: User Datagram Protocol - UDP

Πρωτόκολλα Διαδικτύου

Χρόνοι Μετάδοσης και Διάδοσης

Επαλήθευση Πρωτοκόλλων

α. Συνόδου β. Μεταφοράς γ. Δικτύου δ. Διασύνδεσης δεδομένων ε. Φυσικού Επιπέδου (Μονάδες 5)

Εργαστήριο ίκτυα Η/Υ ΙΙΙ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΔΙΚΤΥΩΝ

ΕΠΙΚΟΙΝΩΝΙΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΕΣ INTERNET

Βασικές λειτουργίες Ανίχνευση πλαισίων Τι κάνει το επίπεδο ζεύξης Χρησιμοποιεί τις υπηρεσίες του φυσικού επιπέδου, ήτοι την (ανασφαλή) μεταφορά δεδομέ

Ευρυζωνικά δίκτυα (2) Αγγελική Αλεξίου

ΔΙΑΓΩΝΙΣΜΑ ΤΕΛΙΚΗΣ ΕΠΑΝΑΛΗΨΗΣ ΣΤΙΣ ΕΝΟΤΗΤΕΣ

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Επιδόσεις. Κ. Βασιλάκης

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Υπόστρωμα Ελέγχου Πρόσβασης Μέσου. Medium Access Control Sub-layer.

Δίκτυα Επικοινωνίας Υπολογιστών Ενότητα 3: Εισαγωγή. Μιχαήλ Λογοθέτης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

Γενικές Αρχές. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Αρχές Δικτύων Επικοινωνιών. Επικοινωνίες Δεδομένων Μάθημα 4 ο

ΗΥ335: 7ο Φροντηστήριο. Fontas Fafoutis

Δίκτυα και Διαδίκτυο

Δίκτυα Επικοινωνίας Υπολογιστών Ενότητα 13: Στρώμα μεταφοράς

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Επιδόσεις. Κ. Βασιλάκης

Συνοπτική Μεθοδολογία Ασκήσεων Κεφαλαίου 7. Ασκήσεις στο IP Fragmentation

LAYER 3 ( NETWORΚ LEVEL ) - ΣΤΡΩΜΑ 3 ( ΕΠΙΠΕ Ο ΙΚΤΥΟΥ)

Περίληψη. Ethernet Δίκτυα Δακτυλίου, (Token Ring) Άλλα Δίκτυα Σύνδεση Τοπικών Δικτύων.

ΑΝΑΛΥΣΗ TCP ΚΙΝΗΣΗΣ ΜΕ ΤΟ ΠΡΟΓΡΑΜΜΑ TCPTRACE.

Δίκτυα Υπολογιστών Εμβάθυνση και Ασκήσεις στο Επίπεδο Μεταφοράς και στο Επίπεδο Εφαρμογής Ιωάννης Κορίνθιος Δρ. Ηλεκτρολόγος Μηχανικός ΕΜΠ

ΤΕΙ Κρήτης, Παράρτηµα Χανίων

HY-335a Project: microtcp *, μία lightweight TCP βιβλιοθήκη

Πρωτόκολλα Διαδικτύου

Τι είναι το πρωτόκολλο Διαδικτύου (Internet Protocol, IP);

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

Παιχνίδι TCP-IP (περιγραφή πρωτοκόλλων)

7.5 Πρωτόκολλο IP. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

Δίκτυα Υπολογιστών. Αξιόπιστη επικοινωνία μέσα από ένα σύνδεσμο. Ευάγγελος Παπαπέτρου. Τμ. Μηχ. Η/Υ & Πληροφορικής, Παν. Ιωαννίνων

ΤΕΧΝΟΛΟΓΙΑ ΔΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ 7ο ΚΕΦΑΛΑΙΟ

Θέματα Πανελλαδικών Εξετάσεων

1.1 Επαναλήπτες (repeaters ή regenerators)

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας

Δίκτυα ΙΙ. Κεφάλαιο 7

Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Π ΑΤ Ρ Ω Ν

Ενότητα 3. Στρώµα Ζεύξης: Αρχές Λειτουργίας & Το Υπόδειγµα του Ethernet

ΣΥΣΤΗΜΑΤΑ ΑΝΑΜΟΝΗΣ Queuing Systems

MF = 0 Μήκος Επικεφαλίδας = 5

Παραδείγµατα δικτυακών τεχνολογιών. Ethernet Internet ATM

Άσκηση Διάλεξης 5. Router. Δεδομένα: Οι ζεύξεις ειναι τεχνολογίας ενσύρματου Ethernet των 10 Mbps και 100 Mbps αντίστοιχα.

7.5 Πρωτόκολλο IP. & Ερωτήσεις

Extra Ασκήσεις. Τσομπανίδης Ηλίας Φώντας Φαφούτης

Δρομολόγηση (Routing)

Τοπικά Δίκτυα. Ethernet Δίκτυα Δακτυλίου, (Token Ring) Άλλα Δίκτυα Σύνδεση Τοπικών Δικτύων.

Χρήση βασικών εργαλείων συλλογής πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου

Εισαγωγή. Λύση: Λύση:

ΜΑΘΗΜΑ / ΤΑΞΗ : ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ ΙΙ / ΕΠΑΛ(Α & Β ΟΜΑΔΑ) ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 11/12/2011 ΑΠΑΝΤΗΣΕΙΣ

ΙΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΩΝ Εργαστηριακή Άσκηση 5

Transcript:

I. Παράδειγμα 1: Απόδοση TCP με παράθυρο αποστολέα = 1 a. Ο μηχανισμός όπως έχει περιγραφεί ως τώρα στέλνει μόνο ένα πακέτο και σταματάει να μεταδίδει έως ότου πάρει το ack του πακέτου αυτού (λειτουργία stop-and-wait). Αυτός ο τρόπος όμως δεν είναι αποδοτικός. b. Προτού παρουσιαστεί παράδειγμα παρουσίαση κλασσικού διαγράμματος για TCP και επεξήγηση propagation delay και transmission delay. Σχήμα 1: TCP αποστολέας με παράθυρο αποστολέα = 1 Propagation Delay Καθυστέρηση διάδοσης σήματος στο φυσικό μέσο χρόνος που απαιτείται για να φθάσει στον παραλήπτη το πρώτο bit της μετάδοσης. Transmission Delay (D t r a n s) Χρόνος που χρειάζεται για να προωθηθούν όλα τα bits του πακέτου στη ζεύξη. Εξαρτάται από το ρυθμό μετάδοσης της ζεύξης και από το μέγεθος του πακέτου. Ack t r a n s Χρόνος που χρειάζεται για να μεταδοθεί το ACK στο μέσο. Throughput (ρυθμαπόδοση) Ρυθμός με τον οποίο ο παραλήπτης μίας ζεύξης λαμβάνει δεδομένα. Μπορεί να υπολογιστεί γενικά ως τον λόγο του συνολικού αριθμού από bytes που λήφθηκαν από ένα κόμβο δια το συνολικό χρόνο που χρειάστηκε για να τα παραλάβει. Utilization (Χρησιμοποίηση του μέσου μετάδοσης): Κλάσμα του χρόνου που ο αποστολέας μετέδιδε δεδομένα στο κανάλι σε σχέση με το συνολικό χρόνο που χρειάζεται για να ολοκληρωθεί η μετάδοση

c. Σενάριο: δύο τερματικά κατά μήκος ενός μονοπατιού στο internet. Υπόθεση για μηδενικό queuing και processing delay καθώς και για Ack trans = 0. Έστω επίσης μέγεθος πακέτου L= 1000bytes, χωρητικότητα μονοπατιού R= 1Gps και καθυστέρηση διάδοσης Dprop = 15msec. L 1000 *8 O χρόνος για να μεταδοθεί το πακέτο στο μέσο είναι: Dt r a n s = = = 0,008msec. 9 R 10 Ο συνολικός χρόνος που χρειάζεται για να ολοκληρωθεί η μετάδοση του πακέτου είναι: D + ACK t + 2 * Dprop = 30, 008 t r ans r a n s ACK t r a n s =0 0,008 Συνεπώς, το utilization του καναλιού είναι U = = 0,00027. 30,008 Συνολικά το throughput που επιτυγχάνεται περνώντας από ένα μονοπάτι με χωρητικότητα 1Gbps είναι 267Kbps. II. Παράδειγμα 2: Κίνητρο για σωλήνωση μεταδόσεων παράδειγμα με περισσότερες μεταδόσεις χωρίς αναμονή για επιβεβαίωση Έστω ότι πραγματοποιούνται 3 μεταδόσεις πακέτων ταυτόχρονα προτού ληφθεί το πρώτο ACK. Σχήμα 2: Αποστολέας TCP με παράθυρο μετάδοσης = 3 Τώρα σε συνολικό χρόνο D + ACK t + 2 * Dprop = 30, 008 γίνεται η μετάδοση 3 t r ans r a n s ACK t r a n s πακέτων αντί για 1 άρα το utilization κατά παρόμοιο τρόπο θα είναι: =0

3* 0,008 U = = 3* 0,00027 άρα έχει τριπλασιαστεί. 30,008 Τα τρία πακέτα τα οποία μεταδίδονται χωρίς αναμονή έως ότου ληφθεί το πρώτο ACK λέμε ότι μεταδίδονται με τη χρήση σωλήνωσης ή αλλιώς ότι έχουμε pipelined transmissions. III. Επέκταση αξιοπιστίας για TCP με παράθυρο αποστολέα > 1 Με την προηγούμενη τεχνική είναι σαν να έχουμε αυξήσει το πλάτος της σωλήνωσης μέσα από την οποία διέρχονται πακέτα γιαυτό και αυτή η τεχνική ονομάζεται και σωλήνωση μεταδόσεων. Οι pipelined μεταδόσεις περιπλέκουν το χειρισμό των απωλειών πακέτων καθώς τώρα μπορεί να έχει χαθεί οποιοδήποτε και οσαδήποτε από όσα στέλνονται ταυτόχρονα. Απαιτούνται λοιπόν μηχανισμοί οι οποίοι θα υποστηρίζουν α)παράλληλες (pipelined) μεταδόσεις πακέτων β)διαχείριση σφαλμάτων πακέτων ή επιβεβαιώσεων εντός ενός παραθύρου μεταδόσεων γ)παράδοση πακέτων στη σωστή σειρά στο επίπεδο εφαρμογής στην πλευρά του παραλήπτη (inorder packet delivery) δ)επιβεβαιώσεις για τη σήμανση σωστής λήψης πακέτων. Ας υποτεθεί ότι ο αποστολέας χρησιμοποιεί ένα παράθυρο μεγέθους N. Το Ν με άλλα λόγια παριστάνει τον αριθμό των πακέτων (bytes) τα οποία έχουν μεταδοθεί και δεν έχουν επιβεβαιωθεί. Οι αλλαγές που απαιτούνται στο TCP ώστε να ικανοποιεί τις παραπάνω απαιτήσεις είναι: o Αύξηση του εύρους των αριθμών ακολουθίας o Χρήση ενταμιευτών στον αποστολέα και στον παραλήπτη. Γιατί? Τι μέγεθος έχουν? Εφόσον ο αποστολέας μπορεί να στείλει π.χ. το πολύ Ν πακέτα ταυτόχρονα χωρίς να πάρει επιβεβαίωση, θα πρέπει να κρατάει αυτά τα Ν πακέτα κάπου αποθηκευμένα έως ότου έρθει επιβεβαίωση γιατί μπορεί να χρειαστεί να τα ξαναστείλει (sender buffer). Αυτά τα Ν πακέτα στον παραλήπτη μπορεί να μη φτάσουν στη σειρά. Μπορεί πχ να έρθει το 4 ο πακέτο, μετά το 7 ο το 1 ο κ.ο.κ. Το πρωτόκολλο TCP παρέχει υπηρεσία in-order-delivery στο υψηλότερο επίπεδο του δικτύου. Αυτό σημαίνει ότι στο επίπεδο που είναι αμέσως μετά από αυτό θα παραδίδει τα πακέτα με τη σωστή σειρά. Όσο λοιπόν παραλαμβάνει πακέτα χρειάζεται να τα αποθηκεύει κάπου έως ότου έρθουν πακέτα που καλύπτουν πιθανά κενά από αριθμούς ακολουθίας (receiver buffer). o Με βάση την αρχική υπόθεση ότι ο αποστολέας χρησιμοποιεί ένα παράθυρο μεγέθους Ν, σε κάθε μετάδοση μπορούν να σταλούν κάποια ακόμα πακέτα χωρίς να περιμένει επιβεβαίωση. Αυτός ο έλεγχος υλοποιείται με τη χρήση ενός κυλιόμενου παραθύρου πάνω από τους διαθέσιμους αριθμούς ακολουθίας. Όπως φαίνεται και στο σχήμα 3, τα σημειωμένο με πράσινο πακέτα έχουν σταλεί και έχει ληφθεί το ACK τους. Το ενεργό παράθυρο περιλαμβάνει τα sequence numbers που είναι κίτρινα και γαλάζια. Τα sequence numbers που είναι μαρκαρισμένο με κίτρινο αντιστοιχούν σε πακέτα που έχουν σταλεί αλλά δεν έχει πάρει ακόμα επιβεβαίωση ο αποστολέας. Οι παράμετροι send_base (sb) και nextseqnum (nsn) είναι μεταβαλλόμενες (αυξάνονται) δεν είναι σταθερές. Κάθε φορά ανάλογα με το γεγονός η τιμή τους αυξάνεται με βάση το μέγεθος του πακέτου που αποστέλλεται ή που γίνεται Ack. Επί της ουσίας η μεταβλητή send_base παριστάνει το παλαιότερο μη γνωστοποιηθέν αριθμό ακολουθίας πακέτου ενώ η nextseqnum τον επόμενο διαθέσιμο αριθμό ακολουθίας.

Σχήμα 3: Διαχείριση παραθύρου αποστολέας o Χρήση χρονομετρητών (timeout counters) στη μεριά του αποστολέα για το διάστημα αναμονής για επιβεβαίωση (ack). IV. Υλοποίηση TCP αποστολέα και παραλήπτη o Λειτουργικότητα αποστολέα: Θα πρέπει να διαχειριστεί τρία βασικά γεγονότα: a)λήψη δεδομένων από το επίπεδο εφαρμογής b)εκπνοή ενός timeout counter c)λήψη επιβεβαίωσης a) Για κάθε πακέτο που παραλαμβάνει από το επίπεδο εφαρμογής ελέγχει αν nextsequnum < send_base + N. Ελέγχει δηλαδή αν το παράθυρο είναι ήδη γεμάτο. Γεμάτο είναι το παράθυρο του αποστολέα όταν εκκρεμεί η επιβεβαίωση αριθμού πακέτων (bytes) όσο και το μέγεθος του παραθύρου του. Στη συνέχεια, αν ο timeout counter ΔΕΝ είναι ενεργοποιημένος, ενεργοποιείται και αρχίζει να μετράει το διάστημα για το οποίο ο αποστολέας θα περιμένει μια επιβεβαίωση. Τέλος, υπολογίζει nextseqnum += Μέγεθος πακέτου και παραδίδει το πακέτο στο IP b) Αν παρατηρηθεί εκπνοή του timeout counter τότε επαναμεταδίδει (παίρνοντας το από στον sender buffer) το πακέτο με το μικρότερο sequence number για το οποίο δεν έχει ληφθεί κάποια επιβεβαίωση. Στη συνέχεια επανεκκινεί τον timeout counter. c) Αν ληφθεί μια επιβεβαίωση διαβάζει τον αριθμό ακολουθίας που περιλαμβάνει η επιβεβαίωση και τη συγκρίνει με τη παράμετρο send_base. Υπενθυμίζεται ότι η μεταβλητή send_base παριστάνει το παλαιότερο μη γνωστοποιηθέν αριθμό ακολουθίας πακέτου. Επειδή το TCP χρησιμοποιεί cumulative acks, μια επιβεβαίωση με αριθμό ακολουθίας y υποδεικνύει στον παραλήπτη ότι έχει παραλάβει σωστά όλα τα bytes πακέτων έως και y-1. Αν y > send_base -> send_base = y Αν υπάρχουν μη γνωστοποιηθέντα πακέτα στον αποστολέα, επανεκκινείται ο timeout counter o Λειτουργικότητα παραλήπτη: Αν ληφθεί πακέτο με αριθμό ακολουθίας n και μέγεθος L και στη σωστή σειρά τότε στέλνεται στον αποστολέα μια επιβεβαίωση με πεδίο n+l καταδεικνύοντας τον επόμενο αναμενόμενο αριθμό ακολουθίας.

Σε οποιαδήποτε άλλη περίπτωση, ξαναστέλνει ένα ACK για το πακέτο που λήφθηκε πιο πρόσφατα και στη σωστή σειρά. V. Παράδειγμα 3: Απώλεια επιβεβαίωσης από ένα παράθυρο με μέγεθος 400 bytes Σχήμα 4: Απώλεια πακέτου από ένα παράθυρο με μέγεθος 400bytes Έστω αρχικά ότι sb=100, nsn=100. Επίσης εφόσον το παράθυρο του αποστολέα είναι 400bytes αυτό σημαίνει ότι ανά πάσα στιγμή μπορούν να έχουν σταλεί και να παραμένουν μη επιβεβαιωμένα πακέτα των οποίων το συνολικό μέγεθος είναι 400bytes. Έστω επίσης ότι όλα τα πακέτα που μεταδίδει ο αποστολέας έχουν σταθερό μέγεθος L=100bytes. To σχήμα 4 παριστάνει τις ενέργειες που γίνονται τόσο στη μεριά του αποστολέα όσο και στη μεριά του παραλήπτη για κάθε γεγονός. Ο παρακάτω πίνακας συνοψίζει τις ενέργειες του αποστολέα και του παραλήπτη για κάθε γεγονός: Γεγονός Απoστολέας Παραλήπτης Nsn < sb + N Send( p(100) ) Send( p(100) ) 1)Nsn = Nsn + L = 200 2)Set Timer

3)Nsn < sb+n Send( p(200) ) Send( p(200) ) 1)Nsn = Nsn + L = 300 2)Nsn < sb+n = 500, Send( p(300) ) Send( p(300) ) 1)Nsn = Nsn + L = 400 2)Nsn < sb+n = 500, Send( p(400) ) Send( p(400) ) 1)Nsn = Nsn + L = 500 Recv( p(100) ) Last correct sn = 100 Ack(200) Recv( p(200) ) Last correct sn = 200 Ack(300) Recv( p(300) ) Last correct sn = 300 Ack(400) Recv( p(400) ) Last correct sn = 500 Ack(500) Ack(200) - for packet p(100) Sb = 200 Reset Timer p(100) = Acked Ack(300) Sb = 300 Reset Timer p(200) = Acked If( data from APP layer) Nsn < sb + N = 300 + 400= 700 Send( p(500) ) Send( p(500) ) 1)Nsn = Nsn + L = 600 2)Nsn < sb+n = 700, Send( p(600) ) Send( p(600) ) 1)Nsn = Nsn + L = 700 Timeout Send( p(300) ) Reset Timer VI. Παράδειγμα 4: Απώλεια επιβεβαίωσης τυχαίου πακέτου εν μέσω παραθύρου και υπολογισμός ελάχιστων και μέγιστων αναγκαίων επαναμεταδόσεων H συσκευή A στέλνει ένα αρχείο μεγέθους Μ bits σε μία συσκευή Β χρησιμοποιώντας TCP. Το κάθε πακέτο έχει μέγεθος p. Όλα τα πακέτα λαμβάνονται στη σωστή σειρά χωρίς κανένα λάθος από τον Β. Ας υποθέσουμε όμως ότι ακριβώς ένα ACK για ένα από τα παραπάνω data packets χάνεται, αλλά όλα τα υπόλοιπα φτάνουν σωστά στον Α πριν το δικό τους timeout. Ποιός είναι ο μέγιστος και ποιός ο ελάχιστος αριθμός data packets που θα ξαναστείλει ο Α και γιατί? Έστω ότι το παράθυρο που χρησιμοποιεί η συσκευή Α ισοδυναμεί σε 3 πακέτα. Αυτό σημαίνει ότι μπορεί να έχει ανά πάσα στιγμή το πολύ 3 πακέτα που έχουν ήδη μεταδοθεί χωρίς να έχει λάβει επιβεβαίωση για κανένα από αυτά. Αν 100bytes είναι το μέγεθος του πακέτου και αρχικά sb=nsn=100 ο αποστολέας μπορεί να έχει το πολύ 300bytes δεδομένων τα οποία έχει στείλει σε πακέτα στον παραλήπτη και δεν έχουν επιβεβαιωθεί. Ο ελάχιστος και ο μέγιστος αριθμός επαναμεταδόσεων που θα απαιτηθούν εξαρτάται από το ποια επιβεβαίωση θα χαθεί. Στο Scenario Α του σχήματος 5, ο αποστολέας παραλαμβάνει σωστά τα ack(200), ack(400) που αφορούν τα πακέτα με sequence numbers 100 και 300 αντίστοιχα. Το

ack(300) αντιθέτως χάνεται. Επειδή όμως το TCP χρησιμοποιεί cumulative acks, το ack(400) επιβεβαιώνει όλα τα bytes με sequence number < 400 που σημαίνει ότι επιβεβαιώνει στον αποστολέα ότι έχει παραλάβει σωστά και τα 3 πακέτα. Συνεπώς, όταν λήξει ο timeout counter που έγινε set με την λήψη του ack(400), το παράθυρο του αποστολέα θα είναι άδειο καθώς sb=nsn=400 που σημαίνει ότι δεν υπάρχουν δεδομένα on-the-fly στο δίκτυο τα οποία δεν έχουν επιβεβαιωθεί. Στο δεύτερο σενάριο, (scenario B στο σχήμα 5) χάνεται το τελευταίο ack -> ack(400) ενώ τα ack(200), ack(300) παραλαμβάνονται σωστά. Μόλις εκπνεύσει o timeout counter το μόνο πακέτο για το οποίο ο παραλήπτης δεν έχει πάρει επιβεβαίωση είναι το πακέτο με sequence number 400 άρα θα γίνει μία επαναμετάδοση. Συνεπώς ο ελάχιστος αριθμός επιβεβαιώσεων που μπορούν να χρειαστούν είναι 0 και ο μέγιστος 1. Σχήμα 5: Απώλεια τυχαίου πακέτου εν μέσω παραθύρου μετάδοσης Γενικεύοντας το παραπάνω παράδειγμα: αν το παράθυρο αποστολέα (sender s window) που χρησιμοποιεί η συσκευή Α είναι Ν (πακέτα) τότε διακρίνουμε δύο περιπτώσεις: Αν χαθεί η επιβεβαίωση για οποιοδήποτε από τα Ν-1 πακέτα, τότε η επιβεβαίωση για το τελευταίο (N-th) πακέτο εφόσον είναι συσωρευτική θα επιβεβαιώσει τη παραλαβή όλων των πακέτων στη Β οπότε δε θα χρειαστεί καμία επαναμετάδοση. Μόνο στην περίπτωση που χαθεί η επιβεβαίωση για το τελευταίο πακέτο του παραθύρου, θα χρειαστεί μία επαναμετάδοση. VII. Παράδειγμα 5: Παράδειγμα συσσωρευτικής επιβεβαίωσης Ας υποθέσουμε ένα σενάριο όπου ο αποστολέας στέλνει δύο πακέτα στον παραλήπτη με αριθμούς ακολουθίας 92 και 100 αντίστοιχα. Έστω επίσης ότι το μέγεθος των πακέτων είναι 8 και 20 αντίστοιχα ενώ το μέγεθος του παραθύρου είναι 28bytes. Αν αρχικά, sb=nsn=92, μόλις ο αποστολέας στείλει τα δύο πακέτα, nsn = 92+8+20 = 120. O παραλήπτης δημιουργεί δύο επιβεβαιώσεις με αριθμούς ακολουθίας 100 και 120 αντίστοιχα. Η επιβεβαίωση με αριθμό ακολουθίας 100 χάνεται και παραλαμβάνεται μόνο το ack(120).

Όταν ο αποστολέας παραλάβει το ack(120) θα θέσει sb=120=nsn που σημαίνει ότι ο παραλήπτης έχει πάρει σωστά όλα τα bytes από 92 έως και 119. Όταν θα εκπνεύσει ο timeout counter, δεν θα υπάρχουν ανεπιβεβαίωτα δεδομένα στον αποστολέα και έτσι δεν θα γίνει καμία επαναμετάδοση. Σχήμα 6: Απώλεια τυχαίας επιβεβαίωσης VIII. Παράδειγμα 6: Υπολογισμός μεγέθος παραθύρου Εστω το σενάριο που μελετήθηκε στην Παράδειγμα 1 αυτής της αναφοράς (σχήμα 1). Γίνεται υπόθεση για μηδενικό queuing και processing delay καθώς και για Acktrans = 0. Έστω επίσης μέγεθος πακέτου L= 1000bytes, χωρητικότητα μονοπατιού R= 1Gps και καθυστέρηση διάδοσης Dprop = 15msec. L 1000 *8 O χρόνος για να μεταδοθεί το πακέτο στο μέσο είναι: Dt r a n s = = = 0,008msec 9 R 10 Πόσο θα πρέπει να είναι το μέγεθος του παραθύρου έτσι ώστε να χρησιμοποιείται το 90% της χωρητικότητας του μονοπατιού απόν τον source στον destination? Για να χρησιμοποιείται το 90% της χωρητικότητας, τότε θα πρέπει ο αποστολέας το 90% του χρόνου που χρειάζεται για να σταλούν n πακέτα να μεταδίδει κίνηση στο δίκτυο. Γνωρίζουμε από το προηγούμενο παράδειγμα ότι ο συνολικός χρόνος για να σταλεί ένα πακέτο είναι:

D + ACK t + 2 * Dprop = 30,008 και ότι L/R = 0,008. t r a n s r a n s ACK t r a n s =0 n *0,008 Έτσι θέλουμε: = 0, 9 όπου n το μέγεθος του παραθύρου. Συνεπώς, o αριθμός των πακέτων 30,008 που πρέπει να σταλούν ταυτόχρονα είναι περίπου 3376.