Κεφάλαιο 3: Επίπεδο Μεταφοράς. Κεφάλαιο 3. Υπηρεσίες και πρωτόκολλα µεταφοράς. Στόχοι: επίπεδο µεταφοράς: 3.5 Συνδεσιστρεφής. 3.1 Υπηρεσίες επιπέδου

Σχετικά έγγραφα
Κεφάλαιο 3: Επίπεδο Μεταφοράς. Κεφάλαιο 3. Υπηρεσίες και πρωτόκολλα µεταφοράς

Κεφάλαιο 3 Επίπεδο Μεταφοράς

Κεφάλαιο 3: Επίπεδο Μεταφοράς

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

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

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

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Δίκτυα Υπολογιστών Το επίπεδο μεταφοράς (transport layer)

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

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

Έλεγχος συµφόρησης µε το Πρωτόκολλο TCP

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

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

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

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Έλεγχος και Αποφυγή Συμφόρησης στο TCP. Δίκτυα Υπολογιστών

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Έλεγχος και Αποφυγή Συμφόρησης στο TCP. Δίκτυα Υπολογιστών

Δίκτυα Επικοινωνιών Δίκτυα Υπολογιστών και Στρώμα Μεταφοράς Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας

Διάρθρωση. Δίκτυα Υπολογιστών Επικοινωνία από άκρο σε άκρο. Επικοινωνία από άκρο σε άκρο. Διάρθρωση

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

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

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

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

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας

Δίκτυα Υπολογιστών. Ενότητα 4: Μετάδοση δεδομένων από το στρώμα μεταφοράς. Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών Τ.

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

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

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

T C P. (Transmission Control Protocol) Αβραάµ Κεβρεκίδης Μανώλης Μελάκης Μάριος Ιακώβου 1

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

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

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

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

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

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

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Επίπεδο Μεταφοράς (Transport Layer)

Το Επίπεδο Μεταφοράς στο Internet

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Στρώμα μεταφοράς στο Internet. Δίκτυα Υπολογιστών

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

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Έλεγχος και Αποφυγή Συμφόρησης στο TCP. Δίκτυα Υπολογιστών

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

Δίκτυα Επικοινωνιών Δίκτυα Υπολογιστών Στρώμα Μεταφοράς (2) Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας

3.2 Το αυτοδύναμο πακέτο IP (datagram) Δομή πακέτου

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δίκτυα Υπολογιστών. Μαρία Παπαδοπούλη. Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Στρώμα μεταφοράς στο Internet. Δίκτυα Υπολογιστών

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

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Alternating Bit Protocol (ABP)

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

Εργαστήριο Ethereal: ICMP

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

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δίκτυα Υπολογιστών. Μαρία Παπαδοπούλη. Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

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

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

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

Δίκτυα Υπολογιστών Ενότητα 4: Transmission Control Protocol - TCP

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

Υπηρεσίες δικτύου και πρωτόκολλα για πολυμεσικές επικοινωνίες

ΔΊΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΏΝ ΔΊΚΤΥΑ ΥΠΟΛΟΓΙΣΤΏΝ ΚΑΙ ΣΤΡΏΜΑ ΜΕΤΑΦΟΡΆΣ ΔΙΔΆΣΚΟΝΤΕΣ: ΔΡ. ΕΥΓΕΝΊΑ ΑΔΑΜΟΠΟΎΛΟΥ, ΔΡ. ΚΏΣΤΑΣ ΔΕΜΈΣΤΙΧΑΣ

Εργαστήριο Wireshark: TCP

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

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

Transmission Control Protocol. Transmission Control Protocol

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

Συνεχής ροή πολυµέσων

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

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

Επίπεδο Μεταφοράς (Transport Layer)

Εργαστήριο Ethereal: TCP

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

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

Δίκτυα ATM. Τεχνολογία Πολυμέσων και Πολυμεσικές Επικοινωνίες 21-1

Εργαστήριο Δικτύων Υπολογιστών

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

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

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

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

ΕΑΠ/ΠΛΗ22/ΑΘΗ.3 4 η ΟΣΣ 15/03/2014 Συμπληρωματικές Διαφάνειες

Δίκτυα Υπολογιστών Λύσεις σειράς ασκήσεων επανάληψης

Κεφάλαιο 4ο ΕΠΙΠΕΔΟ ΜΕΤΑΦΟΡΑΣ

How do loss and delay occur?

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

Δίκτυα Επικοινωνιών. Ενότητα 3: Επίπεδο Μεταφοράς

Αλεξάνδρειο ΤΕΙ Θεσσαλονίκης Τμήμα Πληροφορικής ΔΙΑΔΙΚΤΥΑ ΜΕ TCP / IP. Βίτσας Βασίλειος

ΔΙΚΤΥΑ (23-26) Π. Φουληράς

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

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

Εγγυημένη ποιότητα υπηρεσίας

ίκτυα Υπολογιστών Φεβρουάριος 2002

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

Στρώμα μεταφοράς στο Internet. Δίκτυα Υπολογιστών

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

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

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

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

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

Transcript:

Κεφάλαιο 3 Επίπεδο Μεταφοράς Πηγή των ακόλουθων διαφανειών είναι οι διαφάνειες που συνοδεύουν ως διδακτικό υλικό το βιβλίο των J.F. Kurose and K.W. Ross: Computer Networking: A Top-Down Approach Featuring the Internet, 2η έκδοση ικτύωση Υπολογιστών: Προσέγγιση από Πάνω προς τα Κάτω µε Έµφαση στο ιαδίκτυο, Jim Kurose, Keith Ross 2η έκδοση, Addison- Wesley, 2002. (Μετάφραση Εκδόσεις Γκιούρδας, 2004) Επίπεδο Μεταφοράς 3-1 Κεφάλαιο 3: Επίπεδο Μεταφοράς Στόχοι: κατανόηση αρχών που εξέταση πρωτοκόλλων διέπουν τις υπηρεσίες που επιπέδου του παρέχονται από το ια: επίπεδο : UDP: ασυνδεσιστρεφής πολύπλεξη/αποπολύπλεξη µεταφορά multiplexing/demultiplexing TCP: συνδεσιστρεφής αξιόπιστη µεταφορά µεταφορά δεδοµένων έλεγχος στο TCP έλεγχος ροής έλεγχος Επίπεδο Μεταφοράς 3-2 Κεφάλαιο 3 Υπηρεσίες και πρωτόκολλα 3.1 Υπηρεσίες επιπέδου 3.2 Πολύπλεξη και αποπολύπλεξη 3.3 Ασυνδεσιστρεφής µεταφορά: UDP 3.4 Αρχές αξιόπιστης δεδοµένων 3.5 Συνδεσιστρεφής µεταφορά: TCP δοµή segment αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής διαχείριση συνδέσεων 3.6 Αρχές ελέγχου 3.7 Έλεγχος στο TCP Επίπεδο Μεταφοράς 3-3 παρέχουν λογική επικοινωνία µεταξύ των διεργασιών µίας που τρέχουν σε διαφορετικούς hosts τα πρωτόκολλα τρέχουν στα τερµατικά συστήµατα πλευρά αποστολέα: µετατροπή µηνυµάτων σε segments που προωθούνται στο επίπεδο πλευρά παραλήπτη: συναρµολόγηση των segments σε µηνύµατα που προωθούνται στο επίπεδο διάφορα πρωτόκολλα διαθέσιµα στις εφαρµογές ιαδίκτυο: TCP και UDP λογική µεταφορά από άκρο σε άκρο Επίπεδο Μεταφοράς 3-4 1

Σχέση µεταξύ επιπέδων & επίπεδο : λογική επικοινωνία µεταξύ διεργασιών επίπεδο : λογική επικοινωνία µεταξύ hosts το επίπεδο επεκτείνει την υπηρεσία παράδοσης από host σε host του επιπέδου σε µία υπηρεσία παράδοσης από διεργασία σε διεργασία (πολύπλεξη/αποπολύπλεξη) το επίπεδο στηρίζεται στις υπηρεσίες του επιπέδου και τις επαυξάνει Αναλογία 12 παιδιά στέλνουν γράµµατα σε 12 παιδιά διεργασίες = παιδιά µηνύµατα = γράµµατα σε φακέλους hosts = σπίτια πρωτόκολλο = οι συλλέκτες/διανοµείς γραµµάτων στο σπίτι πρωτόκολλο επιπ. = ταχυδροµική υπηρεσία Επίπεδο Μεταφοράς 3-5 Πρωτόκολλα επιπέδου στο ιαδίκτυο UDP: παρεχόµενες υπηρεσίες πολύπλεξη/αποπολύπλεξη έλεγχος ακεραιότητας UDP: αναξιόπιστη υπηρεσία επέκταση της αναξιόπιστης ( best-effort ) υπηρεσίας παράδοσης του IP TCP: πρόσθετες παρεχόµενες υπηρεσίες αξιόπιστη παράδοση έλεγχος ροής έλεγχος µη παρεχόµενες υπηρεσίες: εγγυήσεις ως προς καθυστέρηση bandwidth λογική µεταφορά από άκρο σε άκρο Επίπεδο Μεταφοράς 3-6 Κεφάλαιο 3 3.1 Υπηρεσίες επιπέδου 3.2 Πολύπλεξη και αποπολύπλεξη 3.3 Ασυνδεσιστρεφής µεταφορά: UDP 3.4 Αρχές αξιόπιστης δεδοµένων 3.5 Συνδεσιστρεφής µεταφορά: TCP δοµή segment αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής διαχείριση σύνδεσης 3.6 Αρχές ελέγχου 3.7 Έλεγχος στο TCP Επίπεδο Μεταφοράς 3-7 Αποπολύπλεξη host προορισµού: το επίπεδο λαµβάνει segments από το επίπεδο το επίπεδο πρέπει να παραδώσει τα segments στις σωστές διεργασίες, ή καλύτερα, στα σωστά sockets πολλαπλά sockets στον host απαιτείται socket identifier κάθε segment φέρει στην επικεφαλίδα πεδία που προσδιορίζουν το socket για το οποίο προορίζονται τα δεδοµένα: αριθµός θύρας πηγής (source port number) αριθµός θύρας προορισµού (destination port number) = socket P1 P1 host = διεργασία P2 αριθµός θύρας (port number): αριθµός από 16 bits (0 65535) καλά γνωστοί αριθµοί θύρας (wellknown port numbers): 0-1023 π.χ. θύρα HTTP server: 80 Επίπεδο Μεταφοράς 3-8 2

Πολύπλεξη/Αποπολύπλεξη Αποπολύπλεξη στον παραλήπτη host: παράδοση λαµβανοµένων segments στο σωστό socket = socket P3 = διεργασία P1 P1 host 1 host 2 Πολύπλεξη στον αποστολέα host: συγκέντρωση δεδοµένων από πολλαπλά sockets, ενθυλάκωση δεδοµένων σε segments, παράδοση segments στο επίπεδο P2 P4 host 3 Επίπεδο Μεταφοράς 3-9 Αποπολύπλεξη (συνέχεια) Ο host λαµβάνει IP datagrams κάθε datagram έχει διεύθυνση IP πηγής, διεύθυνση IP προορισµού κάθε datagram µεταφέρει ένα segment κάθε segment έχει αριθµό θύρας πηγής, αριθµό θύρας προορισµού Ο host χρησιµοποιεί διευθύνσεις IP & αριθµούς θύρας για να κατευθύνει το segment στο κατάλληλο socket UDP socket identifier TCP socket identifier αριθµός θύρας πηγής 32 bits δεδοµένα (µήνυµα) αριθµός θύρας προορισµού άλλα πεδία επικεφαλίδας δοµή TCP/UDP segment Επίπεδο Μεταφοράς 3-10 Αποπολύπλεξη στο UDP (ασυνδεσιστρεφής) ένα UDP socket προσδιορίζεται από το ζεύγος: (διεύθυνση IP προορισµού, αριθµός θύρας προορισµού) Όταν ο host λάβει ένα UDP segment: ελέγχει τον αριθµό θύρας προορισµού στο segment κατευθύνει το UDP segment στο socket µε αυτόν τον αριθµό θύρας IP datagrams µε διαφορετικές διευθύνσεις IP πηγής και/ή διαφορετικούς αριθµούς θύρας πηγής οδηγούνται στο ίδιο socket Αποπολύπλεξη στο UDP (συνέχεια) host A host C host B P1 socket ID socket ID (Α, 9157) P3 (C, 6428) P1 P2 socket ID SP: 6428 SP: 6428 (B, 5775) client IP: A SP: 9157 DP: 6428 S_IP: Α D_IP: C DP: 9157 S_IP: C D_IP: A server IP: C DP: 5775 S_IP: C D_IP: B SP: 5775 DP: 6428 S_IP: B D_IP: C client IP:B SP παρέχει διεύθυνση επιστροφής Επίπεδο Μεταφοράς 3-11 Επίπεδο Μεταφοράς 3-12 3

Αποπολύπλεξη στο TCP (συνδεσιστρεφής) Αποπολύπλεξη στο TCP (συνέχεια) ένα TCP socket προσδιορίζεται από την τετράδα: διεύθυνση IP πηγής αριθµός θύρας πηγής διεύθυνση IP προορισµού αριθµός θύρας προορισµού Ο host που λαµβάνει ένα segment (διεύθυνση IP προορισµού) χρησιµοποιεί και τις τρεις υπόλοιπες τιµές για να κατευθύνει το TCP segment στο κατάλληλο socket Ένας server host µπορεί να υποστηρίξει πολλά TCP sockets ταυτόχρονα: κάθε socket σε ένα host προσδιορίζεται από τη δική του τριάδα Οι web servers έχουν διαφορετικά sockets για κάθε συνδεδεµένο client το non-persistent HTTP έχει διαφορετικό socket για κάθε αίτηση HTTP Επίπεδο Μεταφοράς 3-13 host A host C host B P1 socket ID socket ID P3 P4 (Α, 9157,C,80) (B,5775,C,80) P1 P2 client IP: A SP: 9157 DP: 80 S_IP: A D_IP: C SP: 80 SP: 80 DP: 9157 S_IP: C D_IP: A server IP: C DP: 5775 S_IP: C D_IP: B SP: 5775 DP: 80 S_IP: B D_IP: C client IP:B Επίπεδο Μεταφοράς 3-14 Κεφάλαιο 3 3.1 Υπηρεσίες επιπέδου 3.2 Πολύπλεξη και αποπολύπλεξη 3.3 Ασυνδεσιστρεφής µεταφορά: UDP 3.4 Αρχές αξιόπιστης δεδοµένων 3.5 Συνδεσιστρεφής µεταφορά: TCP δοµή segment αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής διαχείριση σύνδεσης 3.6 Αρχές ελέγχου 3.7 Έλεγχος στο TCP Επίπεδο Μεταφοράς 3-15 UDP: User Datagram Protocol [RFC 768] µινιµαλιστικό πρωτόκολλο πολύπλεξη/αποπολύπλεξη έλεγχος σφαλµάτων υπηρεσία βέλτιστης προσπάθειας (best effort) Τα UDP segments ενδέχεται: να χαθούν να παραδοθούν εκτός σειράς connectionless: δεν γίνεται χειραψία (handshaking) µεταξύ UDP αποστολέα, παραλήπτη το επίπεδο χειρίζεται κάθε UDP segment ανεξάρτητα από άλλα Τι εξυπηρετεί το UDP; δεν απαιτεί εγκαθίδρυση σύνδεσης (που εισάγει καθυστέρηση) απλό: δεν διατηρεί κατάσταση σύνδεσης receive & send buffers παράµετροι ελέγχου sequence, acknowledgement # σε αποστολέα και παραλήπτη µικρή επικεφαλίδα segment 8 bytes (UDP) vs. 20 bytes (TCP) δεν παρέχει έλεγχο : το UDP µπορεί να στείλει δεδοµένα όσο γρήγορα µπορεί (εν δυνάµει πρόβληµα) δεν έχει καθυστερήσεις λόγω επαναµεταδόσεων Επίπεδο Μεταφοράς 3-16 4

UDP Εφαρµογές που χρησιµοποιούν UDP πολυµεσικές εφαρµογές συνεχούς ροής (streaming multimedia) µε ανοχή στις απώλειες ευαίσθητες ως προς το bandwidth άλλες εφαρµογές π.χ. DNS SNMP αξιόπιστη µεταφορά µε UDP: µε µηχανισµούς ανάκαµψης από σφάλµατα στο επίπεδο ο µηχανισµός εξαρτάται από τις απαιτήσεις της οµή UDP segment 32 bits source port # dest port # length δεδοµένα (µήνυµα) checksum length: µήκος UDP segment σε bytes (συµπεριλαµβανοµένης επικεφαλίδας) Επίπεδο Μεταφοράς 3-17 UDP checksum Στόχος: ανίχνευση σφαλµάτων (ανεστραµµένων bits) στο λαµβανόµενο segment Αποστολέας: χειρίζεται το περιεχόµενο του segment ως ακολουθία ακεραίων των 16 bits checksum: συµπλήρωµα ως προς 1 του αθροίσµατος των περιεχοµένων του segment ο αποστολέας τοποθετεί την τιµή του checksum στο πεδίο checksum του UDP segment Παραλήπτης: υπολογίζει το checksum του λαµβανόµενου segment ελέγχει εάν η υπολογισθείσα τιµή του checksum είναι ίση µε την τιµή στο πεδίο checksum: Όχι ανίχνευση σφάλµατος απόρριψη segment προώθηση µε προειδοποίηση Ναι δεν έχει ανιχνευθεί κανένα σφάλµα Επίπεδο Μεταφοράς 3-18 + CKS UDP checksum Έστω segment: 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 Αποστολέας: πρόσθεση 01 1 001 01 01 01 01 01 01 01 01 1 01 1 1 01 1 1 01 1 1 01 1 00001 1 1 00001 1 1 1 1 001 01 01 1 1 001 1 001 1 001 01 0 001 1 01 01 001 1 01 01 0 + σφάλµα Παραλήπτης: πρόσθεση 01 1 001 1 001 1 001 1 0 01 01 01 01 01 01 01 01 1 0001 1 1 1 00001 1 1 1 001 1 01 01 001 1 01 01 01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 Κεφάλαιο 3 3.1 Υπηρεσίες επιπέδου 3.2 Πολύπλεξη και αποπολύπλεξη 3.3 Ασυνδεσιστρεφής µεταφορά: UDP 3.4 Αρχές αξιόπιστης δεδοµένων 3.5 Συνδεσιστρεφής µεταφορά: TCP δοµή segment αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής διαχείριση σύνδεσης 3.6 Αρχές ελέγχου 3.7 Έλεγχος στο TCP Επίπεδο Μεταφοράς 3-19 Επίπεδο Μεταφοράς 3-20 5

TCP: Επισκόπηση RFCs: 793, 1122, 1323, 2018, 2581 connection-oriented: µε τη χειραψία (ανταλλαγή µηνυµάτων ελέγχου) γίνεται αρχικοποίηση της κατάστασης σε αποστολέα & παραλήπτη πριν αρχίσει η µεταφορά δεδοµένων full duplex data: αµφίδροµη ροή δεδοµένων στην ίδια σύνδεση point-to-point: ένας αποστολέας, ένας παραλήπτης socket door application writes data TCP send buffer segment application reads data TCP receive buffer socket door send & receive buffers MSS: maximum segment size αξιόπιστη, εν σειρά ροή από bytes (byte stream): δεν υπάρχουν όρια µηνυµάτων έλεγχος ροής: ώστε ο αποστολέας να µην υπερφορτώνει τον παραλήπτη pipelinιng: o έλεγχος ροής και ορίζουν το µέγεθος του παραθύρου στο TCP Επίπεδο Μεταφοράς 3-21 οµή TCP segment Πεδία: source, destination port #: πολύπλεξη/αποπολύπλεξη sequence, acknowledgment #: υλοποίηση αξιόπιστης δεδοµένων header length: µήκος επικεφαλίδας σε λέξεις των 32 bits receive window: αριθµός bytes που είναι διατεθειµένος να λάβει ο παραλήπτης checksum: όπως στο UDP options: προαιρετικό δεν χρησιµοποιείται συνήθως διαπραγµάτευση MSS µεταξύ αποστολέα & παραλήπτη application data: δεδοµένα (0 µήκος MSS) 32 bits source port # dest port # sequence number acknowledgement number head not UAP R S receive window len used flag F checksum urg data pnter options (µεταβλητό µήκος) application data (µεταβλητό µήκος) Επίπεδο Μεταφοράς 3-22 οµή TCP segment (συνέχεια) Flag bits: URG: υπάρχουν δεδοµένα στο segment που η εφαρµογή (πλευρά αποστολέα) έχει χαρακτηρίσει ως επείγοντα (δεν χρησιµοποιείται, εν γένει) : number έγκυρο PSH: άµεση προώθηση δεδοµένων στην εφαρµογή από τον παραλήπτη RST (reset), SYN (synchronize), FIN (finish): χρησιµοποιούνται για την εγκαθίδρυση και τερµατισµό σύνδεσηςtcp (περισσότερα σε λίγο) URG Πεδίο Flag PSH RST SYN urgent data pointer: εάν URG = 1, τότε το πεδίο αυτό δείχνει τη θέση του τελευταίου byte των επειγόντων δεδοµένων FIN Επίπεδο Μεταφοράς 3-23 Αριθµός ακολουθίας TCP Το TCP αντιµετωπίζει τα δεδοµένα που λαµβάνει από την εφαρµογή ως µία διατεταγµένη ακολουθία (ροή) από bytes Τα bytes µίας ροής είναι αριθµηµένα ακολουθιακά (αφανώς) Αριθµός ακολουθίας (sequence number) ενός segment: ο αριθµός του πρώτου byte δεδοµένων στο segment στη ροή των bytes Ο αρχικός αριθµός της ακολουθίας των bytes επιλέγεται τυχαία 52 53 54 // // δεδοµένα TCP segment αριθµός ακολ. segment = 53 ροή bytes 587 588 589 // // 713 δεδοµένα TCP segment αριθµός ακολ. segment = 588 714 Επίπεδο Μεταφοράς 3-24 6

Αριθµός επιβεβαίωσης TCP αριθµός επιβεβαίωσης (acknowledgement number): αριθµός ακολουθίας του επόµενου αναµενόµενου byte π.χ. ο host A λαµβάνει το segment µε bytes δεδοµένων (0-535) ο host A στέλνει επιβεβαίωση () µε αριθµό 536 αθροιστικές επιβεβαιώσεις (cumulative acknowledgements): το TCP στέλνει επιβεβαίωση για όλα τα bytes που έχει λάβει στη σωστή σειρά µέχρι το πρώτο byte που εκλείπει π.χ. ο host A λαµβάνει το segment_1 (0-535) και το segment_3 (900 1000) αλλά όχι το segment_2 (536-899) ο host A στέλνει επιβεβαίωση () µε αριθµό 536 segments εκτός σειράς: segments που λαµβάνονται εκτός σειράς είτε απορρίπτονται είτε παραµένουν σε buffers έως ότου φθάσουν τα υπολειπόµενα ανάλογα µε την υλοποίηση Επίπεδο Μεταφοράς 3-25 TCP seq #, ack # (παράδειγµα) Μετά την αρχικοποίηση κατά την εγκαθίδρυση σύνδεσης TCP: ο host B περιµένει το segment µε αριθµό ακολουθίας 42 ο host A περιµένει το segment µε αριθµό ακολουθίας 79 Ο χρήστης πληκτρολογεί C O host Α επιβεβαιώνει τη λήψη της ηχούς C Host A Host B Seq=42, =79, data = C Seq=79, =43, data = C piggyback Seq=43, =80 Απλό σενάριο telnet O host B επιβεβαιώνει τη λήψη του C στέλνοντας πίσω την ηχώ του Επίπεδο Μεταφοράς 3-26 TCP Round Trip Time και Timeout Επιλογή τιµής timeout στο TCP timeout > όµως είναι τυχαία µεταβλητή τιµή timeout πολύ µικρή: πρόωρο timeout άσκοπες επαναµεταδόσεις τιµή timeout πολύ µεγάλη: αργή αντίδραση στις απώλειες segments η τιµή του timeout καθορίζεται ως συνάρτηση της εκτιµώµενης, από µετρήσεις, τιµής του Εκτίµηση του : βασίζεται στις τιµές δειγµάτων Sample: µετρούµενος από τη µετάδοση ενός segment έως τη λήψη της επιβεβαίωσής του το TCP αγνοεί δείγµατα που προέρχονται από επαναµεταδιδόµενα segments (Γιατί;) Το TCP δεν λαµβάνει δείγµατα Sample για κάθε segment ένα Sample κάθε περίπου Για την εκτίµηση του επιλέγεται ένας µέσος όρος των πρόσφατων δειγµάτων Sample Επίπεδο Μεταφοράς 3-27 Εκτίµηση του Για την εκτίµηση του επιλέγεται ένας µέσος όρος των προσφάτων δειγµάτων Sample µε εκθετικά βάρη (exponential weighted moving average): EstimatedR TT(n) = (1 α)estimated(n 1) + αsample(n),α < 1 n n k Estimated(n) = α (1 α) Sample(k), n 1 k = 1 = αsample(n) + α(1- α)sample(n -1) + 2 n -1 α(1- α) Sample(n - 2) + L + α(1- α) Sample(1) ηεπίδραση των παλαιοτέρων δειγµάτων φθίνει εκθετικά µε το n όσο µεγαλύτερη η τιµή του α τόσο µεγαλύτερο το βάρος που δίνεται στις πιο πρόσφατες µετρήσεις τυπική τιµή: α = 0.125 (1/8) Επίπεδο Μεταφοράς 3-28 7

Παράδειγµα εκτίµησης του TCP Round Trip Time και Timeout (milliseconds) 350 300 250 200 : από gaia.cs.umass.edu : to fantasia.eurecom.fr σε fantasia.eurecom.fr Επιλογή τιµής timeout Estimated συν περιθώριο ασφαλείας µεγάλη µεταβλητότητα στο Estimated -> µεγαλύτερο περιθώριο ασφαλείας εκτίµηση της τυπικής απόκλισης του χρησιµοποιώντας τη µέση τιµή (µε εκθετικά βάρη) της απόλυτης απόκλισης του Sample από το Estimated: Dev(n) = (1 β)dev(n 1) + β Sample(n) Estimated(n) (συνήθως, β = 0.25) 150 Ητιµή του χρονικού διαστήµατος timeout τίθεται σε: 100 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds) (seconds) Sample Estimated TimeoutInterval = Estimated + 4*Dev Εάν Dev 0 τότε TimeoutInterval Estimated Επίπεδο Μεταφοράς 3-29 Επίπεδο Μεταφοράς 3-30 Κεφάλαιο 3 Αξιόπιστη µεταφορά δεδοµένων στο TCP 3.1 Υπηρεσίες επιπέδου 3.2 Πολύπλεξη και αποπολύπλεξη 3.3 Ασυνδεσιστρεφής µεταφορά: UDP 3.4 Αρχές αξιόπιστης δεδοµένων 3.5 Συνδεσιστρεφής µεταφορά: TCP δοµή segment αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής διαχείριση σύνδεσης 3.6 Αρχές ελέγχου 3.7 Έλεγχος στο TCP Το TCP δηµιουργεί υπηρεσία αξιόπιστης δεδοµένων πάνω από την αναξιόπιστη υπηρεσία του IP χρησιµοποιώντας επαναµεταδόσεις Το TCP χρησιµοποιεί: pipelining των segments αθροιστικές επιβεβαιώσεις (cumulative s) ένα µόνο timer επαναµετάδοσης Γεγονότα που προκαλούν επαναµεταδόσεις: timeouts διπλότυπες επιβεβαιώσεις (duplicate s) Θεωρούµε αρχικά απλοποιηµένο αποστολέα TCP αγνοώντας: διπλότυπες επιβεβαιώσεις έλεγχο ροής, έλεγχο Επίπεδο Μεταφοράς 3-31 Επίπεδο Μεταφοράς 3-32 8

Γεγονότα στον TCP αποστολέα: Γεγονότα που συµβαίνουν στην πλευρά του TCP αποστολέα: παραλαβή δεδοµένων από εφαρµογή timeout λήψη επιβεβαίωσης παραλαβή δεδοµένων από εφαρµογή: δηµιουργία segment που φέρει αριθµό ακολουθίας αριθµός ακολουθίας: αριθµός του πρώτου byte δεδοµένων στο segment όπως προκύπτει από την ακολουθιακή αρίθµηση των bytes της ροής εκκίνηση timer εφόσον δεν βρίσκεται σε λειτουργία (θεωρείστε τον timer ως τον timer για το παλαιότερο ανεπιβεβαίωτο segment) προθεσµία λήξης timer: TimeOutInterval Γεγονότα στον αποστολέα TCP: (συνέχεια) timeout: επαναµετάδοση ανεπιβεβαίωτου segment µε το µικρότερο αριθµό ακολουθίας εκκίνηση timer λήψη επιβεβαίωσης : Εάν πρόκειται για επιβεβαίωση segments που ήταν ανεπιβεβαίωτα προηγουµένως (πριν από τη λήψη του ): ενηµέρωση ως προς τα segments που επιβεβαιώνονται µε το παρόν εκκίνηση timer εφόσον παραµένουν ανεπιβεβαίωτα segments προώθηση segment στο IP Επίπεδο Μεταφοράς 3-33 Επίπεδο Μεταφοράς 3-34 NextSeqNum = InitialSeqNum SendBase = InitialSeqNum loop (forever) { switch(event) event: data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(data) event: timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer event: received, with field value of y if (y > SendBase) { SendBase = y if (there are currently not-yet-acknowledged segments) start timer } } /* end of loop forever */ Αποστολέας TCP (απλοποιηµένος) SendBase-1: αριθµός του τελευταίου byte που έχει επιβεβαιωθεί Ο αποστολέας ανα- µένει επιβεβαίωση των bytes µε αριθµό SendBase Ο παραλήπτης ανα- µένει bytes µε αριθµό y Παράδειγµα: SendBase = 72, y= 73 y > SendBase, οπότε επιβεβαιώνεται το byte 72 (SendBase = 73) Επίπεδο Μεταφοράς 3-35 TCP: σενάρια επαναµεταδόσεων SendBase = 92 timeout SendBase = 100 Host A Seq=92, 8 bytes data X απώλεια Host B =100 Seq=92, 8 bytes data =100 σενάριο απολεσθέντος SendBase = 92 SendBase = 100 SendBase = 120 SendBase = 120 Seq=92 timeout Seq=92 timeout Host A Seq=100, 20 bytes data =100 Host B Seq=92, 8 bytes data =120 Seq=92, 8 bytes data =120 σενάριο πρόωρου timeout Επίπεδο Μεταφοράς 3-36 9

TCP: σενάρια επαναµεταδόσεων (συνέχεια) SendBase = 92 SendBase = 120 timeout Host A Seq=92, 8 bytes data απώλεια Host B Seq=100, 20 bytes data X =120 =100 σενάριο αθροιστικών Επίπεδο Μεταφοράς 3-37 TCP: διπλασιασµός της διάρκειας του timeout Μετά από timeout, το segment επαναµεταδίδεται Το timeout ενδεχοµένως να οφείλεται σε συµφόρηση Προς αποφυγή περαιτέρω, το TimeOutInterval για το επαναµεταδιδόµενο segment υπολογίζεται ως TimeOutInterval = 2 TimeOutInterval To TimeOutInterval διπλασιάζεται για κάθε διαδοχικό επαναµεταδιδόµενο segment (εκθετική αύξηση) Η υπαναχώρηση παύει µε την εκκίνηση του timer για µη επαναµεταδιδόµενο segment timeout timeout Host A Host B Seq=92, 8 bytes data απώλεια X =100 Seq=92, 8 bytes data απώλεια X =100 Επίπεδο Μεταφοράς 3-38 Αποστολή στο TCP [RFC 1122, RFC 2581] Ταχεία Επαναµετάδοση (Fast Retransmit) Γεγονός στον παραλήπτη Άφιξη segment εν σειρά µε αναµενό- µενο αριθµό ακολουθίας. Όλα τα δεδοµένα έως τον αναµενόµενο αριθµό ακολουθίας είναι ήδη επιβεβαιωµένα. Άφιξη segment εν σειρά µε αναµενό- µενο αριθµό ακολουθίας. Εκκρεµεί το και ενός ακόµη segment. Άφιξη segment εκτός σειράς µε αριθµό ακολουθίας µεγαλύτερο του αναµενόµενου. Ανίχνευση κενού. Άφιξη segment το οποίο συµπληρώνει, µερικώς ή εξ ολοκλήρου, το κενό. ράση TCP παραλήπτη Καθυστερηµένο. Αναµονή έως 500 ms για το επόµενο segment, αποστολή. Άµεση αποστολή ενός αθροιστικού που επιβεβαιώνει αµφότερα τα εν σειρά segments. Άµεση αποστολή ενός διπλότυπου που υποδεικνύει τον αριθµό ακολουθίας του επόµενου αναµενόµενου byte. Άµεση αποστολή, υπό την προϋπόθεση ότι το segment αρχίζει στο κατώτερο άκρο του κενού. Επίπεδο Μεταφοράς 3-39 Ηδιάρκεια του timeout είναι συχνά σχετικά µεγάλη: µεγάλη καθυστέρηση πριν από την επαναµετάδοση απολεσθέντος segment Ανίχνευση απολεσθέντων segments µε διπλότυπα ιπλότυπο : που επιβεβαιώνει ένα segment για το οποίο ο αποστολέας έχει ήδη λάβει επιβεβαίωση Ο αποστολέας συχνά στέλνει πολλά segments το ένα αµέσως µετά το άλλο Εάν ένα segment χαθεί, ο αποστολέας θα λάβει πολλά διπλότυπα Εάν ο αποστολέας λάβει 3 διπλότυπα για το ίδιο segment, υποθέτει ότι το ακόλουθο segment (που µεταδόθηκε µετά από αυτό που έχει επιβεβαιωθεί) χάθηκε: ταχεία επαναµετάδοση: επαναµετάδοση του segment που θεωρείται χαµένο πριν από τη λήξη του timer επαναµετάδοσης Επίπεδο Μεταφοράς 3-40 10

Αλγόριθµος ταχείας επαναµετάδοσης: Ταχεία επαναµετάδοση event: received, with field value of y if (y > SendBase) { SendBase = y if (there are currently not-yet-acknowledged segments) start timer } else { increment count of dup s received for y if (count of dup s received for y = 3) { resend segment with sequence number y } διπλότυπο για segment που έχει ήδη επιβεβαιωθεί ταχεία επαναµετάδοση Επίπεδο Μεταφοράς 3-41 Παράδειγµα: Κάθε segment φέρει 20 bytes δεδοµένων Το τρίτο segment µε αριθµό ακολουθίας 60 χάνεται Μετά τη λήψη 3 διπλότυπων = 60 για το δεύτερο segment µε αριθµό ακολουθίας 40, το τρίτο segment µε αριθµό ακολουθίας 60 επαναµεταδίδεται SendBase = 20 SendBase = 40 SendBase = 60 = SendBase = SendBase = SendBase Host A Host B Seq=20 Seq=40 Seq=60 =40 =60Seq=100 Seq=120 =60 =60 =60 Seq=60 X Seq=80 Επίπεδο Μεταφοράς 3-42 Κεφάλαιο 3 3.1 Υπηρεσίες επιπέδου 3.2 Πολύπλεξη και αποπολύπλεξη 3.3 Ασυνδεσιστρεφής µεταφορά: UDP 3.4 Αρχές αξιόπιστης δεδοµένων 3.5 Συνδεσιστρεφής µεταφορά: TCP δοµή segment αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής διαχείριση σύνδεσης 3.6 Αρχές ελέγχου 3.7 Έλεγχος στο TCP Επίπεδο Μεταφοράς 3-43 δεδοµένα από IP Έλεγχος ροής στο TCP ησύνδεση TCP τοποθετεί τα bytes που λαµβάνει σωστά και εν σειρά στο receive buffer: RcvWindow ελεύθερος χώρος RcvBuffer δεδοµένα TCP στον buffer διεργασία όταν η διεργασία της αργεί να διαβάσει τα δεδοµένα από το receive buffer, τότε ενδέχεται να υπερχειλίσει ο buffer έλεγχος ροής ο αποστολέας δεν υπερχειλίζει τον buffer του παραλήπτη στέλνοντας µεγάλο όγκο δεδοµένων µε µεγάλο ρυθµό υπηρεσία προσαρµογής του ρυθµού αποστολής στο ρυθµό µε τον οποίο διαβάζονται τα δεδοµένα από τον παραλήπτη Επίπεδο Μεταφοράς 3-44 11

δεδοµένα από IP Έλεγχος ροής στο TCP: υλοποίηση RcvWindow ελεύθερος χώρος RcvBuffer δεδοµένα TCP στον buffer (Έστω ότι ο παραλήπτης απορρίπτει τα segments που λαµβάνει εκτός σειράς) o ελεύθερος χώρος στο buffer = RcvWindow = RcvBuffer-[LastByteRcvd - LastByteRead] µεταβάλλεται µε δυναµικό τρόπο Ο παραλήπτης ενηµερώνει τον αποστολέα για τον ελεύθερο χώρο στο buffer περιλαµβάνοντας την τρέχουσα τιµή του RcvWindow σε κάθε segment (πεδίο receive window) που στέλνει στον αποστολέα Ο αποστολέας περιορίζει τα ανεπιβεβαίωτα δεδοµένα στην τιµή του RcvWindow: LastByteSent LastByteAcked RcvWindow εγγύηση ότι ο receive buffer δεν θα υπερχειλίσει deadlock όταν RcvWindow = 0 διεργασία Επίπεδο Μεταφοράς 3-45 Κεφάλαιο 3 3.1 Υπηρεσίες επιπέδου 3.2 Πολύπλεξη και αποπολύπλεξη 3.3 Ασυνδεσιστρεφής µεταφορά: UDP 3.4 Αρχές αξιόπιστης δεδοµένων 3.5 Συνδεσιστρεφής µεταφορά: TCP δοµή segment αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής διαχείριση σύνδεσης 3.6 Αρχές ελέγχου 3.7 Έλεγχος στο TCP Επίπεδο Μεταφοράς 3-46 ιαχείριση σύνδεσης TCP Εγκαθίδρυση σύνδεσης µεταξύ TCP αποστολέα και παραλήπτη πριν από την ανταλλαγή δεδοµένων αρχικοποίηση µεταβλητών: sequence numbers buffers, πληροφορία ελέγχου ροής (π.χ. RcvWindow) O client ξεκινά τη σύνδεση µε τον server ακολουθώντας Χειραψία τριών βηµάτων: Βήµα 1: O client στέλνει TCP SYN segment (SYN = 1) στον server προσδιορίζει το αρχικό seqnum του client: seqnum = client_isn data = ιαχείριση σύνδεσης TCP (συνέχεια) Βήµα 2: Ο server λαµβάνει το SYN segment, απαντά µε SYN segment (SYN = 1, = 1) Ο server εκχωρεί buffers προσδιορίζει αρχικό seqnum seqnum = server_isn acknum = client_isn+1 data = Βήµα 3: Ο client λαµβάνει SYN, απαντά µε segment (SYN = 0, = 1) το οποίο µπορεί να περιέχει data Ο client εκχωρεί buffers seqnum = client_isn+1 acknum = server_isn+1 αίτηση σύνδεσης επιβεβαίωση χορήγησης σύνδεσης client server SYN=1, seq=client_isn SYN segment SYN=1, seq=server_isn =1, ack=client_isn+1 SYN segment SYN=0, seq=client_isn+1 =1, ack=server_isn+1 χορήγηση σύνδεσης Επίπεδο Μεταφοράς 3-47 Επίπεδο Μεταφοράς 3-48 12

ιαχείριση σύνδεσης TCP (συνέχεια) Τερµατισµός σύνδεσης: Ο client αποφασίζει να τερµατίσει τη σύνδεση Βήµα 1: Ο client στέλνει TCP FIN segment (FIN = 1) στον server Βήµα 2: Ο server λαµβάνει το FIN segment, απαντά µε Ο server αρχίζει διαδικασία τερµατισµού της σύνδεσης στέλνοντας FIN segment στον client έναρξη τερµατισµού timed wait λήξη τερµατισµού client FIN FIN server έναρξη τερµατισµού λήξη τερµατισµού ιαχείριση σύνδεσης TCP (συνέχεια) Βήµα 3: Ο client λαµβάνει το FIN segment, απαντά µε Κάνει µετάβαση στην κατάσταση timed wait απαντά µε σε λαµβανόµενα FIN segments Βήµα 4: O server λαµβάνει Η σύνδεση τερµατίζεται έναρξη τερµατισµού timed wait λήξη τερµατισµού client FIN FIN server έναρξη τερµατισµού λήξη τερµατισµού Επίπεδο Μεταφοράς 3-49 Επίπεδο Μεταφοράς 3-50 ιαχείριση σύνδεσης TCP (συνέχεια) ιαχείριση σύνδεσης TCP (συνέχεια) client server SYN_SENT SYN LISTEN κύκλος ζωής TCP server ESTABLISHED SYN SYN_RCVD κύκλος ζωής TCP client κύκλος ζωής TCP client FIN_WAIT_1 FIN_WAIT_2 TIME_WAIT FIN FIN ESTABLISHED CLOSE_WAIT LAST_ Επίπεδο Μεταφοράς 3-51 Επίπεδο Μεταφοράς 3-52 13

ιαχείριση σύνδεσης TCP (συνέχεια) client server Κεφάλαιο 3 κύκλος ζωής TCP server SYN_SENT ESTABLISHED FIN_WAIT_1 FIN_WAIT_2 TIME_WAIT SYN SYN FIN FIN LISTEN SYN_RCVD ESTABLISHED CLOSE_WAIT LAST_ 3.1 Υπηρεσίες επιπέδου 3.2 Πολύπλεξη και αποπολύπλεξη 3.3 Ασυνδεσιστρεφής µεταφορά: UDP 3.4 Αρχές αξιόπιστης δεδοµένων 3.5 Συνδεσιστρεφής µεταφορά: TCP δοµή segment αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής διαχείριση σύνδεσης 3.6 Αρχές ελέγχου 3.7 Έλεγχος στο TCP Επίπεδο Μεταφοράς 3-53 Επίπεδο Μεταφοράς 3-54 Αρχές ελέγχου Συµφόρηση: αίτια: το δίκτυο δεν µπορεί να ανταπεξέλθει στο φόρτο της κίνησης (µεγάλος αριθµός πηγών, µεγάλος όγκος δεδοµένων, υψηλός ρυθµός µετάδοσης των πηγών) αποτελέσµατα: απώλειες πακέτων (υπερχείλιση των buffers των δροµολογητών) µεγάλες καθυστερήσεις (αναµονή στους buffers των δροµολογητών) Έλεγχος : µηχανισµοί αποφυγής ή αντίδρασης στη συµφόρηση διαφέρει από τον έλεγχο ροής Επίπεδο Μεταφοράς 3-55 Αίτια/κόστος : σενάριο 1 δύο αποστολείς, δύο παραλήπτες ένας δροµολογητής, απεριόριστος αριθµός buffers χωρίς επαναµεταδόσεις Host B φορτίο προσφερόµενο στο δροµολογητή: λ in ανά σύνδεση χωρητικότητα εξόδου R throughput σύνδεσης λ out λ out R/2 R/2 καθυστέρηση Host A λ in R/2 λ in λ in : αρχικά δεδοµένα απεριόριστος αριθµός κοινών buffers στη ζεύξη εξόδου λ out ησυµφόρηση προκαλεί µεγάλες καθυστερήσεις αναµονής στην ουρά µέγιστο επιτευκτό throughput Επίπεδο Μεταφοράς 3-56 14

Αίτια/κόστος : σενάριο 2 ένας δροµολογητής, πεπερασµένος αριθµός buffers απώλειες πακέτων αξιόπιστες συνδέσεις επαναµεταδόσεις απωλεσθέντων segments λ in : ρυθµός αποστολής αρχικών δεδοµένων (εφαρµογή επίπεδο ) λ in : ρυθµός αποστολής αρχικών και επαναµεταδιδόµενων δεδοµένων ή φόρτος προσφερόµενος στο δίκτυο (επίπεδο δίκτυο) Host A λ in : αρχικά δεδοµένα λ out Αίτια/κόστος : σενάριο 2 a) Ιδανική περίπτωση: Έστω ότι ο host A γνωρίζει πότε υπάρχει ελεύθερος χώρος στο buffer και µόνο τότε στέλνει δεδοµένα δεν έχουµε απώλειες/επαναµεταδόσεις λ in = λ in = λ out < R/2 Host B λ' in : αρχικά δεδοµένα συν επαναµεταδιδόµενα δεδοµένα πεπερασµένος αριθµός κοινών buffers στη ζεύξη εξόδου λ out R/2 R/2 λ in = λ in απόδοση εξαρτάται από το µηχανισµό επαναµεταδόσεων ισχύει πάντοτε: λ in = λ out (goodput) Επίπεδο Μεταφοράς 3-57 Επίπεδο Μεταφοράς 3-58 Αίτια/κόστος : σενάριο 2 b) τέλεια επαναµετάδοση: Έστω ότι ο host A επαναµεταδίδει µόνο τα δεδοµένα που έχουν χαθεί λ in > λ out Για προσφερόµενο φόρτο λ in =R/2, το throughput είναι λ out = λ in = R/3 λ out Αίτια/κόστος : σενάριο 2 c) Έστω ότι ο host A επαναµεταδίδει δεδοµένα που έχουν καθυστερήσει χωρίς να έχουν χαθεί η ζεύξη µεταδίδει πολλαπλά αντίγραφα του ίδιου πακέτου Για την ίδια τιµή του λ out, η τιµή του λ in µεγαλύτερη από ότι στην περίπτωση της τέλειας επαναµετάδοσης R/2 R/3 επαναµεταδόσεις λ out R/2 R/3 λ out R/4 λ in R/2 λ in κόστος : περισσότερο έργο (επαναµεταδόσεις) για δεδοµένο goodput Επίπεδο Μεταφοράς 3-59 R/2 λ R/2 in λ in κόστος : σπατάλη χωρητικότητας που οφείλεται σε άσκοπες επαναµεταδόσεις λόγω υπερβολικών καθυστερήσεων Επίπεδο Μεταφοράς 3-60 15

Αίτια/κόστος : σενάριο 3 τέσσερις αποστολείς διαδροµές µε δύο δροµολογητές timeout/επαναµεταδόσεις Host A Ε: Τι συµβαίνει καθώς τα λ in και λ in αυξάνονται; λ in : αρχικά δεδοµένα λ' in : αρχικά δεδοµένα συν επαναµεταδιδόµενα δεδοµένα πεπερασµένος αριθµός κοινών buffers στη ζεύξη εξόδου λ out Host B Αίτια/κόστος : σενάριο 3 Για µικρές τιµές του λ in, οι buffers σπάνια υπερχειλίζουν και λ out λ in λ in Για µεγάλες τιµές του λ in και λ in, λ out 0 λ out R/2 Host D R 4 R 1 Host C λ in R 3 R 2 Άλλο ένα κόστος της : όταν ένα πακέτο απορρίπτεται, οποιαδήποτε upstream χωρητικότητα χρησιµοποιήθηκε για τη µετάδοση αυτού του πακέτου σπαταλιέται Επίπεδο Μεταφοράς 3-61 Επίπεδο Μεταφοράς 3-62 ιαφορετικές προσεγγίσεις στο πρόβληµα του ελέγχου ύο ευρείες κατηγορίες µεθόδων ελέγχου : Έλεγχος από άκρο σε άκρο: κανένα άµεσο feedback από το δίκτυο συµφόρηση συνάγεται από τις παρατηρούµενες απώλειες, καθυστερήσεις στα τερµατικά συστήµατα η προσέγγιση αυτή έχει υιοθετηθεί στο TCP Έλεγχος επιβοηθούµενος από το δίκτυο: οι δροµολογητές παρέχουν feedback στα τερµατικά συστήµατα ένα bit που υποδεικνύει συµφόρηση (DECbit, ATM EERC) ρητός ρυθµός για τον αποστολέα (ATM EERC) ακριβέστερος έλεγχος ρυθµού µετάδοσης αυξηµένη πολυπλοκότητα Κεφάλαιο 3 3.1 Υπηρεσίες επιπέδου 3.2 Πολύπλεξη και αποπολύπλεξη 3.3 Ασυνδεσιστρεφής µεταφορά: UDP 3.4 Αρχές αξιόπιστης δεδοµένων 3.5 Συνδεσιστρεφής µεταφορά: TCP δοµή segment αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής διαχείριση σύνδεσης 3.6 Αρχές ελέγχου 3.7 Έλεγχος στο TCP Επίπεδο Μεταφοράς 3-63 Επίπεδο Μεταφοράς 3-64 16

Έλεγχος στο TCP Το TCP αναγκαστικά χρησιµοποιεί έλεγχο από άκρο σε άκρο: το IP δεν παρέχει πληροφορία Κάθε αποστολέας ελέγχει το ρυθµό µετάδοσης ως συνάρτηση της που αντιλαµβάνεται Τρόπος µεταβολής ρυθµού: µε τη µεταβλητή congestion window (CongWin): LastByteSent-LastByteAcked min{congwin, RcvWindow} Χονδρικά, για το ρυθµό αποστολής ισχύει: CongWin ρυθµός = bytes/sec Το παράθυρο CongWin µεταβάλλεται δυναµικά, ως συνάρτηση της που αντιλαµβάνεται ο αποστολέας Επίπεδο Μεταφοράς 3-65 Έλεγχος στο TCP Τρόπος µε τον οποίο ο αποστολέας αντιλαµβάνεται τη συµφόρηση: γεγονός απώλειας = timeout ή 3 διπλότυπα ack ο αποστολέας µειώνει το ρυθµό (CongWin)µετά από ένα γεγονός απώλειας Αλγόριθµος ελέγχου TCP Reno: Τρεις κύριοι µηχανισµοί: προσθετική αύξηση πολλαπλασιαστική µείωση (Additive Increase Multiplicative Decrease - AIMD) αργή εκκίνηση (slow start) αντίδραση σε γεγονότα timeout Επίπεδο Μεταφοράς 3-66 Προσθετική αύξηση πολλαπλασιαστική µείωση στο TCP πολλαπλασιαστική µείωση: υποδιπλασιασµός του CongWin µετά από κάθε γεγονός απώλειας παράθυρο congestion CongWin window 24 Kbytes 16 Kbytes 8 Kbytes αποφυγή προσθετική αύξηση: αύξηση του CongWin κατά 1 MSS κάθε όσο δεν συµβαίνουν γεγονότα απώλειας: ανίχνευση (probing) αύξηση του CongWin κατά MSS (MSS/CongWin) µε κάθε λαµβανόµενη επιβεβαίωση Αργή εκκίνηση στο TCP αρχική τιµή CongWin = 1 MSS αρχικός ρυθµός αποστολής MSS/ π.χ. MSS = 500 bytes, = 200 msec αρχικός ρυθµός MSS/ = 20 kbps ενδεχοµένως διαθέσιµη χωρητικότητα >> MSS/ γραµµική αύξηση ρυθµού πολύ αργή σε σχέση µε διαθέσιµη χωρητικότητα επιθυµητή η ταχεία αύξηση του ρυθµού σε επιτρεπτό επίπεδο στο ξεκίνηµα της σύνδεσης ο αποστολέας αυξάνει το ρυθµό του εκθετικά µέχρι το πρώτο γεγονός απώλειας (αργή εκκίνηση αντί αποφυγή ) Σύνδεση TCP µεγάλης διάρκειας time Επίπεδο Μεταφοράς 3-67 Επίπεδο Μεταφοράς 3-68 17

Αργή εκκίνηση στο TCP (συνέχεια) στο ξεκίνηµα της σύνδεσης ο ρυθµός αυξάνει εκθετικά µέχρι το πρώτο γεγονός απώλειας διπλασιασµός της τιµής CongWin κάθε επιτυγχάνεται µε την αύξηση του CongWin κατά 1MSSµε κάθε λαµβανόµενη επιβεβαίωση Αργή εκκίνηση (slow start): µικρός αρχικός ρυθµός αποστολής που όµως αυξάνεται εκθετικά Host A Host B ένα segment δύο segments τέσσερα segments Επίπεδο Μεταφοράς 3-69 ιευκρίνιση Μετά από 3 διπλότυπα : CongWin µειώνεται στο µισό στη συνέχεια το παράθυρο αυξάνεται γραµµικά Όµως µετά από timeout: CongWin παίρνει τιµή 1 MSS στη συνέχεια το παράθυρο αυξάνεται εκθετικά έως ένα κατώφλι και µετά αυξάνεται γραµµικά µέγεθος παραθύρου (segments) 18 16 14 12 10 8 6 4 2 0 γεγονός απώλειας αργή εκκίνηση αποφυγή αργή εκκίνηση 1 2 3 4 5 6 7 8 9 10 11 12 3 διπλότυπα timeout αποφυγή Φιλοσοφία: 3 διπλότυπα είναι ένδειξη ότι το δίκτυο είναι σε θέση να παραδώσει µερικά segments ένα timeout πριν από 3 διπλότυπα είναι πιο ανησυχητικό σε Επίπεδο Μεταφοράς 3-70 ιευκρίνιση (συνέχεια) TCP Tahoe, TCP Reno, TCP Vegas ηαύξηση µεταβάλλεται από εκθετική σε γραµµική όταν η τιµή του CongWin φθάσει το µισό της τιµής πριν από το timeout Υλοποίηση: Μεταβλητή Threshold Όταν συµβεί ένα γεγονός απώλειας, η µεταβλητή Threshold παίρνει τιµή ίση µε το µισό της τιµής που είχε το CongWin ακριβώς πριν από το γεγονός µέγεθος παραθύρου (segments) 18 16 14 12 10 8 6 4 2 0 κατώφλι 1 2 3 4 5 6 7 8 9 10 11 12 σε TCP Tahoe: αργή εκκίνηση µετά από κάθε γεγονός απώλειας TCP Reno: ταχεία επαναφορά (fast recovery) µετά από 3 διπλότυπα µέγεθος παραθύρου (segments) 18 16 14 12 10 8 6 4 2 0 3 διπλότυπα ταχεία επαναφορά 1 2 3 4 5 6 7 8 9 10 11 12 TCP Reno TCP Tahoe TCP Vegas: ανίχνευση πριν από την εµφάνιση απωλειών συµφόρηση προβλέπεται από τους παρατηρούµενους χρόνους γραµµική µείωση του ρυθµού αποστολής όταν επίκειται συµφόρηση σε Επίπεδο Μεταφοράς 3-71 Επίπεδο Μεταφοράς 3-72 18

Σύνοψη: Έλεγχος στο TCP Όταν CongWin < Threshold, ο αποστολέας βρίσκεται στη φάση αργής εκκίνησης και CongWin αυξάνεται εκθετικά Όταν CongWin > Threshold, ο αποστολέας βρίσκεται στη φάση αποφυγής και CongWin αυξάνεται γραµµικά Όταν ληφθούν τρία διπλότυπα, Threshold CongWin/2 και CongWin Threshold Όταν συµβεί ένα timeout, Threshold CongWin/2 και CongWin 1 MSS Έλεγχος TCP Κατάσταση Slow Start (SS) Congestion Avoidance (CA) SS ή CA SS ή CA SS ή CA Timeout Γεγονός Λήψη για δεδοµένα που ήταν προηγουµένως ανεπιβεβαίωτα Λήψη για δεδοµένα που ήταν προηγουµένως ανεπιβεβαίωτα Τριπλό διπλότυπο ιπλότυπο ράση Αποστολέα TCP CongWin = CongWin + MSS, Εάν (CongWin > Threshold), τότε µετάβαση στην κατάσταση Congestion Avoidance CongWin = CongWin+MSS * (MSS/CongWin) Threshold = CongWin/2, CongWin = Threshold, Μετάβαση στην κατάσταση Congestion Avoidance Threshold = CongWin/2, CongWin = 1 MSS, Μετάβαση στην κατάσταση Slow Start Αύξηση µετρητή διπλότυπων για το segment που επιβεβαιώνεται Σχόλιο Έχει ως αποτέλεσµα το διπλασιασµό τουcongwin κάθε Αθροιστική αύξηση, µε αποτέλεσµα τηναύξησητου CongWin κατά 1 MSS κάθε Ταχεία ανάκαµψη µετά από πολλαπλασιαστική µείωση Ητιµή τουcongwin δεν πέφτει κάτω από 1 MSS Μετάβαση σε slow start Οι µεταβλητές CongWin και Threshold δε µεταβάλλονται Επίπεδο Μεταφοράς 3-73 Επίπεδο Μεταφοράς 3-74 Μέσο throughput σύνδεσης TCP αγνοούµε τις φάσεις αργής εκκίνησης µετά από timeout (µικρή διάρκεια) έστω W η τιµή του CongWin όταν συµβαίνει ένα γεγονός απώλειας θεωρούµε ότι W σταθ., σταθ. ορυθµός της σύνδεσης αυξάνεται γραµµικά από W/2 σε W/ (αύξηση κατά MSS/ κάθε ) µέσο throughput σύνδεσης = CongWin/ W 0.75W ίκαιη κατανοµή χωρητικότητας στο TCP Έστω ότι K συνδέσεις TCP µοιράζονται µία ζεύξη χωρητικότητας R Η ζεύξη αποτελεί bottleneck : οι υπόλοιπες ζεύξεις από τις οποίες διέρχονται οι συνδέσεις έχουν χωρητικότητα πολύ µεγαλύτερη από αυτήν του bottleneck Ένας µηχανισµός ελέγχου χαρακτηρίζεται ως δίκαιος εάν καθεµία από τις K συνδέσεις έχει µέσο ρυθµό µετάδοσης ίσο περίπου µε R/K Ο µηχανισµός προσθετικής αύξησης-πολλαπλασιαστικής µείωσης είναι δίκαιος TCP σύνδεση 1 W 2 Επίπεδο Μεταφοράς 3-75 TCP σύνδεση 2 δροµολογητής bottleneck χωρητικότητα εξόδου R Επίπεδο Μεταφοράς 3-76 19

ίκαιη κατανοµή χωρητικότητας στο TCP Υποθέσεις: ύο συνδέσεις TCP µοιράζονται µία ζεύξη χωρητικότητας R Από τη ζεύξη δεν διέρχονται άλλες συνδέσεις TCP ή κίνηση UDP Οι συνδέσεις έχουν το ίδιο MSS και (οπότε εάν έχουν το ίδιο CongWin θα έχουν και το ίδιο throughput) Οι συνδέσεις εφαρµόζουν τον µηχανισµό προσθετικής αύξησηςπολλαπλασιαστικής µείωσης (αγνοείται η σύντοµη φάση αργής εκκίνησης) TCP σύνδεση 1 TCP σύνδεση 2 δροµολογητής bottleneck χωρητικότητα εξόδου R Επίπεδο Μεταφοράς 3-77 Ισοκατανοµή χωρητικότητας στο TCP Two συνδέσεις ανταγωνίζονται για τη χωρητικότητα: Η προσθετική αύξηση έχει ως αποτέλεσµα την αύξηση του συνολικού throughput κατά µήκος µίας ευθείας µε κλήση 1 Η πολλαπλασιαστική µείωση έχει ως αποτέλεσµα τη µείωση του συνολικού throughput κατά µήκος µίας ευθείας που διέρχεται από την αρχή των αξόνων R throughput σύνδεσης 2 ισοκατανοµή χωρητικότητας Α (R 1, R 2 ) throughput σύνδεσης 1 απώλεια: υποδιπλασιασµός παραθύρου αποφυγή : προσθετική αύξηση απώλεια: υποδιπλασιασµός παραθύρου αποφυγή : προσθετική αύξηση R Επίπεδο Μεταφοράς 3-78 UDP ίκαιη κατανοµή χωρητικότητας Οι εφαρµογές πολυµέσων δεν χρησιµοποιούν συνήθως TCP: αποφεύγουν τον περιορισµό του ρυθµού από τον έλεγχο Προτιµούν να χρησιµοποιούν UDP: εισάγουν στο δίκτυο audio/ video µε σταθερό ρυθµό, ανέχονται τις απώλειες απαιτούνται βελτιωµένοι µηχανισµοί ελέγχου Παράλληλες συνδέσεις TCP µία εφαρµογή µπορεί να χρησιµοποιεί παράλληλες συνδέσεις ανάµεσα σε 2 hosts π.χ. Web browsers Παράδειγµα: ζεύξη χωρητικότητας R υποστηρίζει 9 συνδέσεις νέα εφαρµογή ζητά 1 σύνδεση TCP, λαµβάνει 1/10 της χωρητικότητας της νέα εφαρµογή ζητά 11 συνδέσεις TCP, λαµβάνει 1/2 της χωρητικότητας της! Επίπεδο Μεταφοράς 3-79 Μοντελοποίηση καθυστέρησης στο TCP Καθυστέρηση (latency): που απαιτείται από τη στιγµή που ένας client εγκαθιδρύει µία σύνδεση TCP µε ένα server µε σκοπό να ζητήσει ένα αντικείµενο µέχρι τη στιγµή που θα ολοκληρωθεί η λήψη του αντικειµένου από τον client Εάν αγνοήσουµε τη συµφόρηση, παράγοντες που επηρεάζουν την καθυστέρηση είναι: εγκαθίδρυση σύνδεσης TCP µετάδοση δεδοµένων µηχανισµός αργής εκκίνησης Μοντέλο : Ο client και ο server συνδέονται µεταξύ τους µε µία ζεύξη χωρητικότητας R client ζεύξη χωρητικότητας R server Επίπεδο Μεταφοράς 3-80 20

Μοντελοποίηση καθυστέρησης στο TCP Υποθέσεις: Αγνοούµε τον έλεγχο ροής εν υφίστανται επαναµεταδόσεις τα πακέτα ούτε χάνονται ούτε αλλοιώνονται από σφάλµατα Αγνοούµε τις επικεφαλίδες των πρωτοκόλλων Θεωρούµε αµελητέους τους χρόνους µετάδοσης των πακέτων που µεταφέρουν segments ελέγχου (π.χ. επιβεβαιώσεις) και µηνύµατα αιτήσεων Η τιµή του CongWin δεν φθάνει ποτέ την αρχική τιµή του Threshold Μέγιστο µέγεθος segment MSS = S bits Το αντικείµενο έχει µέγεθος Ο bits και αποτελείται από ακέραιο αριθµό segments µεγέθους MSS Επίπεδο Μεταφοράς 3-81 Παράθυρο άπειρου µεγέθους (0) Περίπτωση 0: εν υφίσταται περιορισµός από το παράθυρο Ο server µεταδίδει segments το ένα αµέσως µετά το άλλο µέχρι να ολοκληρωθεί η µετάδοση του αντικειµένου καθυστέρηση = 2 + O/R έναρξη σύνδεσης TCP αίτηση αντικειµένου O/R λήψη αντικειµένου στον client S/R στον server Επίπεδο Μεταφοράς 3-82 Παράθυρο σταθερού µεγέθους (1) Παράθυρο σταθερού µεγέθους (2) Μέγεθος παραθύρου σταθερό, ίσο µε W segments Περίπτωση 1: WS/R > + S/R η επιβεβαίωση για το πρώτο segment του παραθύρου επιστρέφει στον server πριν αυτός ολοκληρώσει την αποστολή των segments του παραθύρου έναρξη σύνδεσης TCP αίτηση αντικειµένου O/R W=4 segments S/R WS/R Περίπτωση 2: WS/R < + S/R αναµονή επιβεβαίωσης µετά την αποστολή των segments του παραθύρου καθυστέρηση = 2 + O/R + (K-1)[S/R + - WS/R] έναρξη σύνδεσης TCP αίτηση αντικειµένου διάστηµα αδράνειας W=2 segments S/R WS/R καθυστέρηση = 2 + O/R λήψη αντικειµένου στον client στον server διάστηµα αδράνειας K: αριθµός παραθύρων που απαιτούνται για να καλυφθεί το αντικείµενο, K = O/WS K-1: αριθµός διαστηµάτων αδρανείας στον client στον server Επίπεδο Μεταφοράς 3-83 Επίπεδο Μεταφοράς 3-84 21

Μοντελοποίηση καθυστέρησης στο TCP: αργή εκκίνηση (0) initiate έναρξη TCP σύνδεσης connection TCP Μοντελοποίηση καθυστέρησης στο TCP: αργή εκκίνηση (1) Θα δείξουµε ότι η καθυστέρηση για ένα αντικείµενο δίνεται από Υποθέτουµε δυναµικό παράθυρο που αυξάνεται σύµφωνα µε τον µηχανισµό αργής εκκίνησης αίτηση request αντικειµένου object παράδοση object αντικειµένου delivered time at στον client client πρώτο first window παράθυρο = =S/R δεύτερο second παράθυρο window = = 2S/R τρίτο third window παράθυρο = = 4S/R 4S/R τέταρτο fourth window παράθυρο = = 8S/R 8S/R ολοκλήρωση complete transmission µετάδοσης time at στον server Επίπεδο Μεταφοράς 3-85 O S καθυστέρηση = 2 + + P (2 R + R P S 1) R όπου P ο αριθµός των διαστηµάτων αδράνειας στον server: P = min{q,k 1} όπου -Q:αριθµός των διαστηµάτων αδρανείας στον server εάν το αντικείµενο είχε άπειρο µέγεθος -K:αριθµός παραθύρων που απαιτούνται για να καλυφθεί το αντικείµενο Επίπεδο Μεταφοράς 3-86 Μοντελοποίηση καθυστέρησης στο TCP: αργή εκκίνηση (2) Συνιστώσες καθυστέρησης: 2 για εγκαθίδρυση σύνδεσης και αίτηση O/R για µετάδοση αντικειµένου αδράνειας του server λόγω αργής εκκίνησης Αριθµός διαστηµάτων αδράνειας στον server: P = min{k-1, Q} Παράδειγµα: O/S = 15 segments K = 4 παράθυρα Q = 2 P = min{k-1,q} = 2 Ο server αδρανεί P = 2 φορές initiate έναρξη TCP σύνδεσης connection TCP αίτηση request αντικειµένου object παράδοση object αντικειµένου delivered time at στον client client time at στον server server πρώτο first window παράθυρο = =S/R δεύτερο second παράθυρο window = = 2S/R τρίτο third window παράθυρο = = 4S/R 4S/R τέταρτο fourth window παράθυρο = = 8S/R 8S/R ολοκλήρωση complete transmission µετάδοσης Επίπεδο Μεταφοράς 3-87 Μοντελοποίηση καθυστέρησης στο TCP (3) S + = από τη στιγµή που ο server αρχίζει να R στέλνει το segment µέχρι να λάβει την επιβεβαίωση k S 2 1 = µετάδοσης k - οστού παραθύρου R S max + 2 R k 1 S,0 = αδρανής µετά R τo k - οστό παράθυρο καθυστέρηση = P O = + 2 + αδρανής_k R k = 1 P O S k 1 S = + 2 + 2 R + k 1 R R = O S P S = + 2 + P (2 1) R + R R initiate έναρξη TCP σύνδεσης connection TCP αίτηση request object αντικειµένου παράδοση object αντικειµένου delivered time at στον client client πρώτο first window παράθυρο = =S/R δεύτερο second παράθυρο window = 2S/R τρίτο third παράθυρο window = 4S/R τέταρτο fourth window παράθυρο = 8S/R time at στον server ολοκλήρωση complete µετάδοσης transmission Επίπεδο Μεταφοράς 3-88 22

Μοντελοποίηση καθυστέρησης στο TCP (4) Υπολογισµός του αριθµού των παραθύρων που καλύπτουν το αντικείµενο, K Το k-οστό παράθυρο περιέχει 2 k-1 segments ή 2 k-1 S bits 0 1 K = min{ k : 2 S + 2 S + L+ 2 = min{ k : 2 = min{ k : 2 O = min{ k : k log2 + 1 } S O = log2 + 1 S 0 k 1 + 2 + L+ 2 1 O / S} k 1 k 1 S O} O / S} Ο υπολογισµός του Q, του αριθµού των αδρανών διαστηµάτων στον server για αντικείµενο άπειρου µεγέθους, γίνεται µε παρόµοιο τρόπο: Q S 1 max{ : + > k S k 2 } = L = log2 1 + + 1 R R / S R = Επίπεδο Μεταφοράς 3-89 Μοντελοποίηση HTTP Έστω ότι µία ιστοσελίδα αποτελείται από: 1 βασική σελίδα HTML (µεγέθους O bits) M εικόνες (καθεµία µεγέθους O bits) Non-persistent HTTP: M+1 διαδοχικές συνδέσεις TCP Χρόνος απόκρισης = (M+1)O/R + (M+1)2 + άθροισµα διαστηµάτων αδράνειας Persistent HTTP: 2 για να ζητήσει και να λάβει τη βασική σελίδα HTML 1 για να ζητήσει και να λάβει M εικόνες Χρόνος απόκρισης = (M+1)O/R + 3 + άθροισµα διαστηµάτων αδράνειας Non-persistent HTTP µε X παράλληλες συνδέσεις: Έστω M/X ακέραιος 1 σύνδεση TCP για τη βασική σελίδα HTML M/X σύνολα παράλληλων συνδέσεων για τις Μ εικόνες Χρόνος απόκρισης = (M+1)O/R + (M/X + 1)2 + άθροισµα διαστηµάτων αδράνειας Επίπεδο Μεταφοράς 3-90 Χρόνος απόκρισης του HTTP = 100 msec, S = 536 bytes, O = 5 Kbytes, M = 10 και X = 5 Χρόνος απόκρισης (sec) 20 18 16 14 12 10 8 6 4 2 0 28 Kbps 100 Kbps 1 Mbps 10 Mbps non-persistent persistent parallel nonpersistent Για µικρές τιµές της χωρητικότητας ο µετάδοσης κυριαρχεί στο χρόνο απόκρισης έναντι του χρόνου εγκαθίδρυσης συνδέσεων και των καθυστερήσεων λόγω αδράνειας του server To persistent HTTP επιφέρει ελάχιστη βελτίωση σε σχέση µε το non-persistent HTTP µε παράλληλες συνδέσεις Επίπεδο Μεταφοράς 3-91 Χρόνος απόκρισης του HTTP = 1 sec, S = 536 bytes, O = 5 Kbytes, M = 10 και X = 5 Χρόνος απόκρισης (sec) 70 60 50 40 30 20 10 0 28 Kbps 100 Kbps 1 Mbps 10 Mbps non-persistent persistent parallel nonpersistent Για µεγαλύτερες τιµές του, ο απόκρισης κυριαρχείται από τις καθυστερήσεις εγκαθίδρυσης συνδέσεων και αργής εκκίνησης Το persistent HTTP επιφέρει σηµαντική βελτίωση: ειδικότερα σε δίκτυα µε µεγάλες τιµές του γινοµένου καθυστέρηση διάδοσης bandwidth Επίπεδο Μεταφοράς 3-92 23

Κεφάλαιο 3: Σύνοψη αρχές που διέπουν τις υπηρεσίες του επιπέδου : πολύπλεξη, αποπολύπλεξη αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής έλεγχος εφαρµογή και υλοποίηση στο ιαδίκτυο: UDP TCP Στη συνέχεια: αφήνουµε το άκρο του (επίπεδα, ) εισερχόµαστε στον πυρήνα του Επίπεδο Μεταφοράς 3-93 24