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

Σχετικά έγγραφα
Κεφάλαιο 3: Επίπεδο Μεταφοράς

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Alternating Bit Protocol (ABP)

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

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

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

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

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

Transmission Control Protocol. Transmission Control Protocol

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

How do loss and delay occur?

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

Δίκτυα Επικοινωνιών Ι

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

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

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

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

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

Πρωτόκολλα Μεταφοράς: UDP και TCP. Άγγελος Ρούσκας

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

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

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

Αξιόπιστη μεταφορά δεδομένων πάνω από αναξιόπιστο δίκτυο. Κατανεμημένα Συστήματα 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: Επίπεδο Μεταφοράς Στόχοι: κατανόηση αρχών που διέπουν τις υπηρεσίες που παρέχονται από το επίπεδο µεταφοράς: πολύπλεξη/αποπολύπλεξη multiplexing/demultiplexing αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής έλεγχος συµφόρησης εξέταση πρωτοκόλλων επιπέδου µεταφοράς του ιαδικτύου: UDP: ασυνδεσιστρεφής µεταφορά 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

Σχέση µεταξύ επιπέδων µεταφοράς & δικτύου επίπεδο µεταφοράς: λογική επικοινωνία µεταξύ διεργασιών επίπεδο δικτύου: λογική επικοινωνία µεταξύ 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

Πολύπλεξη/Αποπολύπλεξη Αποπολύπλεξη στον παραλήπτη host: παράδοση λαµβανοµένων segments στο σωστό socket Πολύπλεξη στον αποστολέα host: συγκέντρωση δεδοµένων από πολλαπλά sockets, ενθυλάκωση δεδοµένων σε segments, παράδοση segments στο επίπεδο δικτύου = socket = διεργασία εφαρµογής P3 P1 P1 εφαρµογής P2 P4 εφαρµογής µεταφοράς µεταφοράς µεταφοράς δικτύου δικτύου δικτύου ζεύξης ζεύξης ζεύξης φυσικό φυσικό host 1 host 2 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 Επίπεδο Μεταφοράς 3-11

Αποπολύπλεξη στο UDP (συνέχεια) host A host C host B P1 socket ID socket ID (Α, 9157) P3 (C, 6428) P1 P2 socket ID (B, 5775) client IP: A SP: 9157 DP: 6428 S_IP: Α D_IP: C SP: 6428 DP: 9157 S_IP: C D_IP: A server IP: C SP παρέχει διεύθυνση επιστροφής SP: 6428 DP: 5775 S_IP: C D_IP: B SP: 5775 DP: 6428 S_IP: B D_IP: C client IP:B Επίπεδο Μεταφοράς 3-12

Αποπολύπλεξη στο 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

Αποπολύπλεξη στο TCP (συνέχεια) host A host C host B P1 socket ID socket ID P3 P4 (Α, 9157,C,80) (B, 5775, C, 80) P1 P2 SP: 80 SP: 80 DP: 9157 S_IP: C DP: 5775 S_IP: C client IP: A SP: 9157 DP: 80 D_IP: A server IP: C D_IP: B SP: 5775 DP: 80 client IP:B S_IP: A D_IP: C S_IP: B D_IP: C Επίπεδο Μεταφοράς 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

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 1 001 1 001 1 0 01 01 01 01 01 01 01 01 1011101110111011 0000111100001111 1100101011001010 001 1 01 01 001 1 01 01 + σφάλµα πρόσθεση 01 1 001 1 001 1 001 1 0 01 01 01 01 01 01 01 01 1000111100001111 001 1 01 01 001 1 01 01 0111111111111111 Επίπεδο Μεταφοράς 3-19

Κεφάλαιο 3 3.1 Υπηρεσίες επιπέδου µεταφοράς 3.2 Πολύπλεξη και αποπολύπλεξη 3.3 Ασυνδεσιστρεφής µεταφορά: UDP 3.4 Αρχές αξιόπιστης µεταφοράς δεδοµένων 3.5 Συνδεσιστρεφής µεταφορά: TCP δοµή segment αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής διαχείριση σύνδεσης 3.6 Αρχές ελέγχου συµφόρησης 3.7 Έλεγχος συµφόρησης στο TCP Επίπεδο Μεταφοράς 3-20

TCP: Επισκόπηση RFCs: 793, 1122, 1323, 2018, 2581 connection-oriented: µε τη χειραψία (ανταλλαγή µηνυµάτων ελέγχου) γίνεται αρχικοποίηση της κατάστασης σε αποστολέα & παραλήπτη πριν αρχίσει η µεταφορά δεδοµένων full duplex data: αµφίδροµη ροή δεδοµένων στην ίδια σύνδεση point-to-point: ένας αποστολέας, ένας παραλήπτης send & receive buffers MSS: maximum segment size αξιόπιστη, εν σειρά ροή από bytes (byte stream): δεν υπάρχουν όρια µηνυµάτων έλεγχος ροής: ώστε ο αποστολέας να µην υπερφορτώνει τον παραλήπτη pipelinιng: o έλεγχος ροής και συµφόρησης ορίζουν το µέγεθος του παραθύρου στο TCP socket door application writes data TCP send buffer application reads data TCP receive buffer socket door segment Επίπεδο Μεταφοράς 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 # head len sequence number acknowledgement number not used UAP flag R S F checksum receive window urg data pnter options (µεταβλητό µήκος) application data (µεταβλητό µήκος) Επίπεδο Μεταφοράς 3-22

οµή TCP segment (συνέχεια) Flag bits: URG: υπάρχουν δεδοµένα στο segment που η εφαρµογή (πλευρά αποστολέα) έχει χαρακτηρίσει ως επείγοντα (δεν χρησιµοποιείται, εν γένει) ACK: ACK number έγκυρο PSH: άµεση προώθηση δεδοµένων στην εφαρµογή από τον παραλήπτη RST (reset), SYN (synchronize), FIN (finish): χρησιµοποιούνται για την εγκαθίδρυση και τερµατισµό σύνδεσηςtcp (περισσότερα σε λίγο) Πεδίο Flag URG ACK PSH RST SYN FIN urgent data pointer: εάν URG = 1, τότε το πεδίο αυτό δείχνει τη θέση του τελευταίου byte των επειγόντων δεδοµένων Επίπεδο Μεταφοράς 3-23

Αριθµός ακολουθίας TCP Το TCP αντιµετωπίζει τα δεδοµένα που λαµβάνει από την εφαρµογή ως µία διατεταγµένη ακολουθία (ροή) από bytes Τα bytes µίας ροής είναι αριθµηµένα ακολουθιακά (αφανώς) Αριθµός ακολουθίας (sequence number) ενός segment: ο αριθµός του πρώτου byte δεδοµένων στο segment στη ροή των bytes Ο αρχικός αριθµός της ακολουθίας των bytes επιλέγεται τυχαία // ροή bytes // 52 53 54 587 588 589 713 714 // // δεδοµένα TCP segment αριθµός ακολ. segment = 53 δεδοµένα TCP segment αριθµός ακολ. segment = 588 Επίπεδο Μεταφοράς 3-24

Αριθµός επιβεβαίωσης TCP αριθµός επιβεβαίωσης (acknowledgement number): αριθµός ακολουθίας του επόµενου αναµενόµενου byte π.χ. ο host A λαµβάνει το segment µε bytes δεδοµένων (0-535) ο host A στέλνει επιβεβαίωση (ACK) µε αριθµό 536 αθροιστικές επιβεβαιώσεις (cumulative acknowledgements): το TCP στέλνει επιβεβαίωση για όλα τα bytes που έχει λάβει στη σωστή σειρά µέχρι το πρώτο byte που εκλείπει π.χ. ο host A λαµβάνει το segment_1 (0-535) και το segment_3 (900 1000) αλλά όχι το segment_2 (536-899) ο host A στέλνει επιβεβαίωση (ACK) µε αριθµό 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, ACK=79, data = C Seq=79, ACK=43, data = C piggyback Seq=43, ACK=80 O host B επιβεβαιώνει τη λήψη του C στέλνοντας πίσω την ηχώ του Απλό σενάριο εφαρµογής telnet χρόνος Επίπεδο Μεταφοράς 3-26

TCP Round Trip Time και Timeout Επιλογή τιµής timeout στο TCP timeout > RTT όµως RTT είναι τυχαία µεταβλητή τιµή timeout πολύ µικρή: πρόωρο timeout άσκοπες επαναµεταδόσεις τιµή timeout πολύ µεγάλη: αργή αντίδραση στις απώλειες segments η τιµή του timeout καθορίζεται ως συνάρτηση της εκτιµώµενης, από µετρήσεις, τιµής του RTT Εκτίµηση του RTT: βασίζεται στις τιµές δειγµάτων SampleRTT: µετρούµενος χρόνος από τη µετάδοση ενός segment έως τη λήψη της επιβεβαίωσής του το TCP αγνοεί δείγµατα που προέρχονται από επαναµεταδιδόµενα segments (Γιατί;) Το TCP δεν λαµβάνει δείγµατα SampleRTT για κάθε segment ένα SampleRTT κάθε RTT περίπου Για την εκτίµηση του RTT επιλέγεται ένας µέσος όρος των πρόσφατων δειγµάτων SampleRTT Επίπεδο Μεταφοράς 3-27

Εκτίµηση του RTT Για την εκτίµηση του RTT επιλέγεται ένας µέσος όρος των προσφάτων δειγµάτων SampleRTT µε εκθετικά βάρη (exponential weighted moving average): EstimatedR TT(n) = (1 α)estimatedrtt(n 1) + αsamplertt(n), α < 1 EstimatedRTT(n) = = n n k α (1 α) SampleRTT(k), k = 1 αsamplertt(n) + α(1- α)samplertt(n - 1) + 2 α(1- α) SampleRTT(n - 2) + L + n 1 n -1 α(1- α) SampleRTT(1) ηεπίδραση των παλαιοτέρων δειγµάτων φθίνει εκθετικά µε το n όσο µεγαλύτερη η τιµή του α τόσο µεγαλύτερο το βάρος που δίνεται στις πιο πρόσφατες µετρήσεις τυπική τιµή: α = 0.125 Επίπεδο Μεταφοράς 3-28

Παράδειγµα εκτίµησης του RTT RTT: από gaia.cs.umass.edu RTT: to fantasia.eurecom.fr σε fantasia.eurecom.fr 350 300 RTT (milliseconds) RTT (milliseconds) 250 200 150 100 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 χρόνος time (seconnds) (seconds) SampleRTT Estimated RTT Επίπεδο Μεταφοράς 3-29

TCP Round Trip Time και Timeout Επιλογή τιµής timeout EstimatedRTT συν περιθώριο ασφαλείας µεγάλη µεταβλητότητα στο EstimatedRTT -> µεγαλύτερο περιθώριο ασφαλείας εκτίµηση της τυπικής απόκλισης του RTT χρησιµοποιώντας τη µέση τιµή (µε εκθετικά βάρη) της απόλυτης απόκλισης του SampleRTT από το EstimatedRTT: DevRTT(n) = (1 β)devrtt(n (συνήθως, β = 0.25) 1) + β SampleRTT(n) EstimatedRTT(n) Η τιµή του χρονικού διαστήµατος timeout τίθεται σε: TimeoutInterval = EstimatedRTT + 4*DevRTT Εάν DevRTT 0 τότε TimeoutInterval EstimatedRTT Επίπεδο Μεταφοράς 3-30

Κεφάλαιο 3 3.1 Υπηρεσίες επιπέδου µεταφοράς 3.2 Πολύπλεξη και αποπολύπλεξη 3.3 Ασυνδεσιστρεφής µεταφορά: UDP 3.4 Αρχές αξιόπιστης µεταφοράς δεδοµένων 3.5 Συνδεσιστρεφής µεταφορά: TCP δοµή segment αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής διαχείριση σύνδεσης 3.6 Αρχές ελέγχου συµφόρησης 3.7 Έλεγχος συµφόρησης στο TCP Επίπεδο Μεταφοράς 3-31

Αξιόπιστη µεταφορά δεδοµένων στο TCP Το TCP δηµιουργεί υπηρεσία αξιόπιστης µεταφοράς δεδοµένων πάνω από την αναξιόπιστη υπηρεσία του IP χρησιµοποιώντας επαναµεταδόσεις Το TCP χρησιµοποιεί: pipelining των segments αθροιστικές επιβεβαιώσεις (cumulative ACKs) ένα µόνο timer επαναµετάδοσης Γεγονότα που προκαλούν επαναµεταδόσεις: timeouts διπλότυπες επιβεβαιώσεις (duplicate ACKs) Θεωρούµε αρχικά απλοποιηµένο αποστολέα TCP αγνοώντας: διπλότυπες επιβεβαιώσεις έλεγχο ροής, έλεγχο συµφόρησης Επίπεδο Μεταφοράς 3-32

Γεγονότα στον TCP αποστολέα: Γεγονότα που συµβαίνουν στην πλευρά του TCP αποστολέα: παραλαβή δεδοµένων από εφαρµογή timeout λήψη επιβεβαίωσης ACK παραλαβή δεδοµένων από εφαρµογή: δηµιουργία segment που φέρει αριθµό ακολουθίας αριθµός ακολουθίας: αριθµός του πρώτου byte δεδοµένων στο segment όπως προκύπτει από την ακολουθιακή αρίθµηση των bytes της ροής εκκίνηση timer εφόσον δεν βρίσκεται σε λειτουργία (θεωρείστε τον timer ως τον timer για το παλαιότερο ανεπιβεβαίωτο segment) προθεσµία λήξης timer: TimeOutInterval προώθηση segment στο IP Επίπεδο Μεταφοράς 3-33

Γεγονότα στον αποστολέα TCP: (συνέχεια) timeout: επαναµετάδοση ανεπιβεβαίωτου segment µε το µικρότερο αριθµό ακολουθίας εκκίνηση timer λήψη επιβεβαίωσης ACK: Εάν πρόκειται για επιβεβαίωση segments που ήταν ανεπιβεβαίωτα προηγουµένως (πριν από τη λήψη του ACK): ενηµέρωση ως προς τα segments που επιβεβαιώνονται µε το παρόν ACK εκκίνηση timer εφόσον παραµένουν ανεπιβεβαίωτα segments Επίπεδο Μεταφοράς 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: ACK received, with ACK 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: σενάρια επαναµεταδόσεων Host A Host B Host A Host B Seq=92, 8 bytes data SendBase = 92 Seq=100, 20 bytes data ACK=120 ACK=100 Seq=92 timeout Seq=92, 8 bytes data SendBase = 92 ACK=100 X Seq=92, 8 bytes data ACK=120 Seq=92 timeout timeout απώλεια SendBase = 100 SendBase = 120 Seq=92, 8 bytes data ACK=100 SendBase = 100 χρόνος σενάριο απολεσθέντος ACK SendBase = 120 χρόνος σενάριο πρόωρου timeout Επίπεδο Μεταφοράς 3-36

TCP: σενάρια επαναµεταδόσεων (συνέχεια) Host A Host B SendBase = 92 Seq=92, 8 bytes data timeout Seq=100, 20 bytes data X απώλεια ACK=100 SendBase = 120 ACK=120 χρόνος σενάριο αθροιστικών ACK Επίπεδο Μεταφοράς 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 ACK=100 Seq=92, 8 bytes data απώλεια X ACK=100 Επίπεδο Μεταφοράς 3-38

Αποστολή ACK στο TCP [RFC 1122, RFC 2581] Γεγονός στον παραλήπτη Άφιξη segment εν σειρά µε αναµενό- µενο αριθµό ακολουθίας. Όλα τα δεδοµένα έως τον αναµενόµενο αριθµό ακολουθίας είναι ήδη επιβεβαιωµένα. Άφιξη segment εν σειρά µε αναµενό- µενο αριθµό ακολουθίας. Εκκρεµεί το ACK και ενός ακόµη segment. Άφιξη segment εκτός σειράς µε αριθµό ακολουθίας µεγαλύτερο του αναµενόµενου. Ανίχνευση κενού. Άφιξη segment το οποίο συµπληρώνει, µερικώς ή εξ ολοκλήρου, το κενό. ράση TCP παραλήπτη Καθυστερηµένο ACK. Αναµονή έως 500 ms για το επόµενο segment, αποστολή ACK. Άµεση αποστολή ενός αθροιστικού ACK που επιβεβαιώνει αµφότερα τα εν σειρά segments. Άµεση αποστολή ενός διπλότυπου ACK που υποδεικνύει τον αριθµό ακολουθίας του επόµενου αναµενόµενου byte. Άµεση αποστολή ACK, υπό την προϋπόθεση ότι το segment αρχίζει στο κατώτερο άκρο του κενού. Επίπεδο Μεταφοράς 3-39

Ταχεία Επαναµετάδοση (Fast Retransmit) Ηδιάρκεια του timeout είναι συχνά σχετικά µεγάλη: µεγάλη καθυστέρηση πριν από την επαναµετάδοση απολεσθέντος segment Ανίχνευση απολεσθέντων segments µε διπλότυπαack ιπλότυπο ACK: ACK που επιβεβαιώνει ένα segment για το οποίο ο αποστολέας έχει ήδη λάβει επιβεβαίωση Ο αποστολέας συχνά στέλνει πολλά segments το ένα αµέσως µετά το άλλο Εάν ένα segment χαθεί, ο αποστολέας θα λάβει πολλά διπλότυπα ACK Εάν ο αποστολέας λάβει 3 διπλότυπα ACK για το ίδιο segment, υποθέτει ότι το ακόλουθο segment (που µεταδόθηκε µετά από αυτό που έχει επιβεβαιωθεί) χάθηκε: ταχεία επαναµετάδοση: επαναµετάδοση του segment που θεωρείται χαµένο πριν από τη λήξη του timer επαναµετάδοσης Επίπεδο Μεταφοράς 3-40

Αλγόριθµος ταχείας επαναµετάδοσης: event: ACK received, with ACK field value of y if (y > SendBase) { SendBase = y if (there are currently not-yet-acknowledged segments) start timer } else { increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) { resend segment with sequence number y } διπλότυπο ACK για segment που έχει ήδη επιβεβαιωθεί ταχεία επαναµετάδοση Επίπεδο Μεταφοράς 3-41

Ταχεία επαναµετάδοση Παράδειγµα: Κάθε segment φέρει 20 bytes δεδοµένων SendBase = 20 Host A Seq=20 Seq=40 Host B Το τρίτο segment µε αριθµό ακολουθίας 60 χάνεται Μετά τη λήψη 3 διπλότυπων ACK = 60 για το δεύτερο segment µε αριθµό ακολουθίας 40, το τρίτο segment µε αριθµό ακολουθίας 60 επαναµεταδίδεται SendBase = 40 SendBase = 60 ACK = SendBase ACK = SendBase ACK = SendBase χρόνος Seq=60 ACK=40 ACK=60 ACK=60 ACK=60 ACK=60 Seq=100 Seq=120 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

Έλεγχος ροής στο TCP η σύνδεση TCP τοποθετεί τα bytes που λαµβάνει σωστά και εν σειρά στο receive buffer: RcvWindow έλεγχος ροής οαποστολέας δεν υπερχειλίζει τον buffer του παραλήπτη στέλνοντας µεγάλο όγκο δεδοµένων µε µεγάλο ρυθµό δεδοµένα από IP ελεύθερος χώρος RcvBuffer δεδοµένα TCP στον buffer διεργασία εφαρµογής όταν η διεργασία της εφαρµογής αργεί να διαβάσει τα δεδοµένα από το receive buffer, τότε ενδέχεται να υπερχειλίσει ο buffer υπηρεσία προσαρµογής του ρυθµού αποστολής στο ρυθµό µε τον οποίο διαβάζονται τα δεδοµένα από τον παραλήπτη Επίπεδο Μεταφοράς 3-44

Έλεγχος ροής στο TCP: υλοποίηση δεδοµένα από IP 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 = Επίπεδο Μεταφοράς 3-47

ιαχείριση σύνδεσης TCP (συνέχεια) Βήµα 2: Ο server λαµβάνει το SYN segment, απαντά µε SYNACK segment (SYN = 1, ACK = 1) Ο server εκχωρεί buffers προσδιορίζει αρχικό seqnum seqnum = server_isn acknum = client_isn+1 data = Βήµα 3: Ο client λαµβάνει SYNACK, απαντά µε ACK segment (SYN = 0, ACK = 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 ACK=1, ack=client_isn+1 SYNACK segment SYN=0, seq=client_isn+1 ACK=1, ack=server_isn+1 χορήγηση σύνδεσης Επίπεδο Μεταφοράς 3-48

ιαχείριση σύνδεσης TCP (συνέχεια) Τερµατισµός σύνδεσης: Ο client αποφασίζει να τερµατίσει τη σύνδεση Βήµα 1: Ο client στέλνει TCP FIN segment (FIN = 1) στον server Βήµα 2: Ο server λαµβάνει το FIN segment, απαντά µε ACK Ο server αρχίζει διαδικασία τερµατισµού της σύνδεσης στέλνοντας FIN segment στον client έναρξη τερµατισµού timed wait λήξη τερµατισµού client FIN ACK FIN ACK server έναρξη τερµατισµού λήξη τερµατισµού Επίπεδο Μεταφοράς 3-49

ιαχείριση σύνδεσης TCP (συνέχεια) Βήµα 3: Ο client λαµβάνει το FIN segment, απαντά µε ACK Κάνει µετάβαση στην κατάσταση timed wait απαντά µε ACK σε λαµβανόµενα FIN segments έναρξη τερµατισµού client FIN ACK FIN server έναρξη τερµατισµού Βήµα 4: O server λαµβάνει ACK Η σύνδεση τερµατίζεται timed wait λήξη τερµατισµού ACK λήξη τερµατισµού Επίπεδο Μεταφοράς 3-50

ιαχείριση σύνδεσης TCP (συνέχεια) κύκλος ζωής TCP server κύκλος ζωής TCP client Επίπεδο Μεταφοράς 3-51

ιαχείριση σύνδεσης TCP (συνέχεια) client server SYN_SENT SYN LISTEN SYNACK SYN_RCVD ESTABLISHED ACK FIN_WAIT_1 FIN ESTABLISHED ACK CLOSE_WAIT κύκλος ζωής TCP client FIN_WAIT_2 TIME_WAIT FIN ACK LAST_ACK χρόνος Επίπεδο Μεταφοράς 3-52

ιαχείριση σύνδεσης TCP (συνέχεια) client server SYN_SENT SYN LISTEN SYNACK SYN_RCVD ESTABLISHED ACK FIN_WAIT_1 FIN ESTABLISHED ACK CLOSE_WAIT κύκλος ζωής TCP server FIN_WAIT_2 TIME_WAIT FIN ACK LAST_ACK χρόνος Επίπεδο Μεταφοράς 3-53

Κεφάλαιο 3 3.1 Υπηρεσίες επιπέδου µεταφοράς 3.2 Πολύπλεξη και αποπολύπλεξη 3.3 Ασυνδεσιστρεφής µεταφορά: UDP 3.4 Αρχές αξιόπιστης µεταφοράς δεδοµένων 3.5 Συνδεσιστρεφής µεταφορά: TCP δοµή segment αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής διαχείριση σύνδεσης 3.6 Αρχές ελέγχου συµφόρησης 3.7 Έλεγχος συµφόρησης στο TCP Επίπεδο Μεταφοράς 3-54

Αρχές ελέγχου συµφόρησης Συµφόρηση: αίτια: το δίκτυο δεν µπορεί να ανταπεξέλθει στο φόρτο της κίνησης (µεγάλος αριθµός πηγών, µεγάλος όγκος δεδοµένων, υψηλός ρυθµός µετάδοσης των πηγών) αποτελέσµατα: απώλειες πακέτων (υπερχείλιση των buffers των δροµολογητών) µεγάλες καθυστερήσεις (αναµονή στους buffers των δροµολογητών) Έλεγχος συµφόρησης: µηχανισµοί αποφυγής συµφόρησης ή αντίδρασης στη συµφόρηση διαφέρει από τον έλεγχο ροής Επίπεδο Μεταφοράς 3-55

Αίτια/κόστος συµφόρησης: σενάριο 1 δύο αποστολείς, δύο παραλήπτες ένας δροµολογητής, απεριόριστος αριθµός buffers χωρίς επαναµεταδόσεις φορτίο προσφερόµενο στο δροµολογητή: λ in ανά σύνδεση χωρητικότητα ζεύξης εξόδου R Host B Host A λ in : αρχικά δεδοµένα απεριόριστος αριθµός κοινών buffers στη ζεύξη εξόδου λ out throughput σύνδεσης λ out λ out R/2 καθυστέρηση ησυµφόρηση προκαλεί µεγάλες καθυστερήσεις αναµονής στην ουρά µέγιστο επιτευκτό throughput R/2 λ in R/2 λ in Επίπεδο Μεταφοράς 3-56

Αίτια/κόστος συµφόρησης: σενάριο 2 ένας δροµολογητής, πεπερασµένος αριθµός buffers απώλειες πακέτων αξιόπιστες συνδέσεις επαναµεταδόσεις απωλεσθέντων segments λ in : ρυθµός αποστολής αρχικών δεδοµένων (εφαρµογή επίπεδο µεταφοράς) λ in : ρυθµός αποστολής αρχικών και επαναµεταδιδόµενων δεδοµένων ή φόρτος προσφερόµενος στο δίκτυο (επίπεδο µεταφοράς δίκτυο) Host A λ in : αρχικά δεδοµένα λ out Host B λ' in : αρχικά δεδοµένα συν επαναµεταδιδόµενα δεδοµένα πεπερασµένος αριθµός κοινών buffers στη ζεύξη εξόδου απόδοση εξαρτάται από το µηχανισµό επαναµεταδόσεων ισχύει πάντοτε: λ in = λ out (goodput) Επίπεδο Μεταφοράς 3-57

Αίτια/κόστος συµφόρησης: σενάριο 2 a) Ιδανική περίπτωση: Έστω ότι ο host A γνωρίζει πότε υπάρχει ελεύθερος χώρος στο buffer και µόνο τότε στέλνει δεδοµένα δεν έχουµε απώλειες/επαναµεταδόσεις λ in = λ in = λ out < R/2 λ out R/2 R/2 λ in = λ in Επίπεδο Μεταφοράς 3-58

Αίτια/κόστος συµφόρησης: σενάριο 2 b) τέλεια επαναµετάδοση: Έστω ότι ο host A επαναµεταδίδει µόνο τα δεδοµένα που έχουν χαθεί λ in > λ out Για προσφερόµενο φόρτο λ in =R/2, το throughput είναι λ out = λ in = R/3 λ out R/2 R/3 επαναµεταδόσεις λ in R/2 λ in κόστος συµφόρησης: περισσότερο έργο (επαναµεταδόσεις) για δεδοµένο goodput Επίπεδο Μεταφοράς 3-59

Αίτια/κόστος συµφόρησης: σενάριο 2 c) Έστω ότι ο host A επαναµεταδίδει δεδοµένα που έχουν καθυστερήσει χωρίς να έχουν χαθεί η ζεύξη µεταδίδει πολλαπλά αντίγραφα του ίδιου πακέτου Για την ίδια τιµή του λ out, η τιµή του λ in µεγαλύτερη από ότι στην περίπτωση της τέλειας επαναµετάδοσης λ out λ out R/2 R/3 R/4 R/2 λ in R/2 λ in κόστος συµφόρησης: σπατάλη χωρητικότητας που οφείλεται σε άσκοπες επαναµεταδόσεις λόγω υπερβολικών καθυστερήσεων Επίπεδο Μεταφοράς 3-60

Αίτια/κόστος συµφόρησης: σενάριο 3 τέσσερις αποστολείς διαδροµές µε δύο δροµολογητές timeout/επαναµεταδόσεις Host A Ε: Τι συµβαίνει καθώς τα λ in και λ in αυξάνονται; λ in : αρχικά δεδοµένα λ' in : αρχικά δεδοµένα συν επαναµεταδιδόµενα δεδοµένα πεπερασµένος αριθµός κοινών buffers στη ζεύξη εξόδου λ out Host B Host D R 4 R 1 R 2 Host C R 3 Επίπεδο Μεταφοράς 3-61

Αίτια/κόστος συµφόρησης: σενάριο 3 Για µικρές τιµές του λ in, οι buffers σπάνια υπερχειλίζουν και λ out λ in λ in Για µεγάλες τιµές του λ in και λ in, λ out 0 λ out R/2 λ in Άλλο ένα κόστος της συµφόρησης: όταν ένα πακέτο απορρίπτεται, οποιαδήποτε upstream χωρητικότητα χρησιµοποιήθηκε για τη µετάδοση αυτού του πακέτου σπαταλιέται Επίπεδο Μεταφοράς 3-62

ιαφορετικές προσεγγίσεις στο πρόβληµα του ελέγχου συµφόρησης ύο ευρείες κατηγορίες µεθόδων ελέγχου συµφόρησης: Έλεγχος συµφόρησης από άκρο σε άκρο: κανένα άµεσο feedback από το δίκτυο συµφόρηση συνάγεται από τις παρατηρούµενες απώλειες, καθυστερήσεις στα τερµατικά συστήµατα η προσέγγιση αυτή έχει υιοθετηθεί στο TCP Έλεγχος συµφόρησης επιβοηθούµενος από το δίκτυο: οι δροµολογητές παρέχουν feedback στα τερµατικά συστήµατα ένα bit που υποδεικνύει συµφόρηση (DECbit, ATM EERC) ρητός ρυθµός για τον αποστολέα (ATM EERC) ακριβέστερος έλεγχος ρυθµού µετάδοσης αυξηµένη πολυπλοκότητα Επίπεδο Μεταφοράς 3-63

Κεφάλαιο 3 3.1 Υπηρεσίες επιπέδου µεταφοράς 3.2 Πολύπλεξη και αποπολύπλεξη 3.3 Ασυνδεσιστρεφής µεταφορά: UDP 3.4 Αρχές αξιόπιστης µεταφοράς δεδοµένων 3.5 Συνδεσιστρεφής µεταφορά: TCP δοµή segment αξιόπιστη µεταφορά δεδοµένων έλεγχος ροής διαχείριση σύνδεσης 3.6 Αρχές ελέγχου συµφόρησης 3.7 Έλεγχος συµφόρησης στο TCP Επίπεδο Μεταφοράς 3-64

Έλεγχος συµφόρησης στο TCP Το TCP αναγκαστικά χρησιµοποιεί έλεγχο από άκρο σε άκρο: το IP δεν παρέχει πληροφορία συµφόρησης Κάθε αποστολέας ελέγχει το ρυθµό µετάδοσης ως συνάρτηση της συµφόρησης που αντιλαµβάνεται Τρόπος µεταβολής ρυθµού: µε τη µεταβλητή congestion window (CongWin): LastByteSent-LastByteAcked min{congwin, RcvWindow} Χονδρικά, για το ρυθµό αποστολής ισχύει: ρυθµός = CongWin RTT 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 προσθετική αύξηση: αύξηση του CongWin κατά 1 MSS κάθε RTT όσο δεν συµβαίνουν γεγονότα απώλειας: ανίχνευση (probing) αύξηση του CongWin κατά MSS (MSS/CongWin) µε κάθε λαµβανόµενη επιβεβαίωση 16 Kbytes 8 Kbytes αποφυγή συµφόρησης Σύνδεση TCP µεγάλης διάρκειας χρόνος time Επίπεδο Μεταφοράς 3-67

Αργή εκκίνηση στο TCP αρχική τιµή CongWin = 1 MSS αρχικός ρυθµός αποστολής MSS/RTT π.χ. MSS = 500 bytes, RTT = 200 msec αρχικός ρυθµός MSS/RTT = 20 kbps ενδεχοµένως διαθέσιµη χωρητικότητα >> MSS/RTT γραµµική αύξηση ρυθµού πολύ αργή σε σχέση µε διαθέσιµη χωρητικότητα επιθυµητή η ταχεία αύξηση του ρυθµού σε επιτρεπτό επίπεδο στο ξεκίνηµα της σύνδεσης ο αποστολέας αυξάνει το ρυθµό του εκθετικά µέχρι το πρώτο γεγονός απώλειας (αργή εκκίνηση αντί αποφυγή συµφόρησης) Επίπεδο Μεταφοράς 3-68

Αργή εκκίνηση στο TCP (συνέχεια) στο ξεκίνηµα της σύνδεσης ο ρυθµός αυξάνει εκθετικά µέχρι το πρώτο γεγονός απώλειας διπλασιασµός της τιµής CongWin κάθε RTT RTT Host A Host B ένα segment δύο segments επιτυγχάνεται µε την αύξηση του CongWin κατά 1MSSµε κάθε λαµβανόµενη επιβεβαίωση ACK τέσσερα segments Αργή εκκίνηση (slow start): µικρός αρχικός ρυθµός αποστολής που όµως αυξάνεται εκθετικά χρόνος Επίπεδο Μεταφοράς 3-69

ιευκρίνιση Μετά από 3 διπλότυπα ACK: 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 διπλότυπα ACK timeout αποφυγή συµφόρησης Φιλοσοφία: 3 διπλότυπα ACK είναι ένδειξη ότι το δίκτυο είναι σε θέση να παραδώσει µερικά segments ένα timeout πριν από 3 διπλότυπα ACK είναι πιο ανησυχητικό χρόνος σε RTT Επίπεδο Μεταφοράς 3-70

ιευκρίνιση (συνέχεια) η αύξηση µεταβάλλεται από εκθετική σε γραµµική όταν η τιµή του 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 χρόνος σε RTT Επίπεδο Μεταφοράς 3-71

TCP Tahoe, TCP Reno, TCP Vegas TCP Tahoe: αργή εκκίνηση µετά από κάθε γεγονός απώλειας TCP Reno: ταχεία επαναφορά (fast recovery) µετά από 3 διπλότυπα ACK TCP Vegas: µέγεθος παραθύρου (segments) 18 16 14 12 10 8 6 4 2 0 3 διπλότυπα ACK ταχεία επαναφορά TCP Reno 1 2 3 4 5 6 7 8 9 10 11 12 TCP Tahoe ανίχνευση συµφόρησης πριν από την εµφάνιση απωλειών συµφόρηση προβλέπεται από τους παρατηρούµενους χρόνους RTT γραµµική µείωση του ρυθµού αποστολής όταν επίκειται συµφόρηση χρόνος σε RTT Επίπεδο Μεταφοράς 3-72

Σύνοψη: Έλεγχος συµφόρησης στο TCP Όταν CongWin < Threshold, ο αποστολέας βρίσκεται στη φάση αργής εκκίνησης και CongWin αυξάνεται εκθετικά Όταν CongWin > Threshold, ο αποστολέας βρίσκεται στη φάση αποφυγής συµφόρησης και CongWin αυξάνεται γραµµικά Όταν ληφθούν τρία διπλότυπα ACK, Threshold CongWin/2 και CongWin Threshold Όταν συµβεί ένα timeout, Threshold CongWin/2 και CongWin 1 MSS Επίπεδο Μεταφοράς 3-73

Επίπεδο Μεταφοράς 3-74

Μέσο throughput σύνδεσης TCP αγνοούµε τις φάσεις αργής εκκίνησης µετά από timeout (µικρή διάρκεια) έστω W η τιµή του CongWin όταν συµβαίνει ένα γεγονός απώλειας θεωρούµε ότι W σταθ., RTT σταθ. ορυθµός της σύνδεσης αυξάνεται γραµµικά από W/2RTT σε W/RTT (αύξηση κατά MSS/RTT κάθε RTT) µέσο throughput σύνδεσης = 0.75W RTT CongWin/RTT W RTT W 2RTT χρόνος Επίπεδο Μεταφοράς 3-75

ίκαιη κατανοµή χωρητικότητας στο TCP Έστω ότι K συνδέσεις TCP µοιράζονται µία ζεύξη χωρητικότητας R Η ζεύξη αποτελεί bottleneck : οι υπόλοιπες ζεύξεις από τις οποίες διέρχονται οι συνδέσεις έχουν χωρητικότητα πολύ µεγαλύτερη από αυτήν του bottleneck Ένας µηχανισµός ελέγχου συµφόρησης χαρακτηρίζεται ως δίκαιος εάν καθεµία από τις K συνδέσεις έχει µέσο ρυθµό µετάδοσης ίσο περίπου µε R/K Ο µηχανισµός προσθετικής αύξησης-πολλαπλασιαστικής µείωσης είναι δίκαιος TCP σύνδεση 1 TCP σύνδεση 2 δροµολογητής bottleneck χωρητικότητα ζεύξης εξόδου R Επίπεδο Μεταφοράς 3-76

ίκαιη κατανοµή χωρητικότητας στο TCP Υποθέσεις: ύο συνδέσεις TCP µοιράζονται µία ζεύξη χωρητικότητας R Από τη ζεύξη δεν διέρχονται άλλες συνδέσεις TCP ή κίνηση UDP Οι συνδέσεις έχουν το ίδιο MSS και RTT (οπότε εάν έχουν το ίδιο 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 server ζεύξη χωρητικότητας R Επίπεδο Μεταφοράς 3-80

Μοντελοποίηση καθυστέρησης στο TCP Υποθέσεις: Αγνοούµε τον έλεγχο ροής εν υφίστανται επαναµεταδόσεις τα πακέτα ούτε χάνονται ούτε αλλοιώνονται από σφάλµατα Αγνοούµε τις επικεφαλίδες των πρωτοκόλλων Θεωρούµε αµελητέους τους χρόνους µετάδοσης των πακέτων που µεταφέρουν segments ελέγχου (π.χ. επιβεβαιώσεις) και µηνύµατα αιτήσεων Η τιµή του CongWin δεν φθάνει ποτέ την αρχική τιµή του Threshold Μέγιστο µέγεθος segment MSS = S bits Το αντικείµενο έχει µέγεθος Ο bits και αποτελείται από ακέραιο αριθµό segments µεγέθους MSS Επίπεδο Μεταφοράς 3-81

Παράθυρο συµφόρησης άπειρου µεγέθους (0) έναρξη σύνδεσης TCP Περίπτωση 0: εν υφίσταται περιορισµός από το παράθυρο συµφόρησης Ο server µεταδίδει segments το ένα αµέσως µετά το άλλο µέχρι να ολοκληρωθεί η µετάδοση του αντικειµένου αίτηση αντικειµένου O/R RTT S/R καθυστέρηση = 2RTT + O/R λήψη αντικειµένου χρόνος στον client χρόνος στον server Επίπεδο Μεταφοράς 3-82

Παράθυρο συµφόρησης σταθερού µεγέθους (1) Μέγεθος παραθύρου συµφόρησης σταθερό, ίσο µε W segments Περίπτωση 1: WS/R > RTT + S/R η επιβεβαίωση για το πρώτο segment του παραθύρου επιστρέφει στον server πριν αυτός ολοκληρώσει την αποστολή των segments του παραθύρου έναρξη σύνδεσης TCP αίτηση αντικειµένου O/R W=4 segments RTT S/R RTT WS/R καθυστέρηση = 2RTT + O/R λήψη αντικειµένου χρόνος στον client χρόνος στον server Επίπεδο Μεταφοράς 3-83

Παράθυρο συµφόρησης σταθερού µεγέθους (2) Περίπτωση 2: WS/R < RTT + S/R αναµονή επιβεβαίωσης µετά την αποστολή των segments του παραθύρου έναρξη σύνδεσης TCP αίτηση αντικειµένου W=2 segments RTT S/R WS/R καθυστέρηση = 2RTT + O/R + (K-1)[S/R + RTT - WS/R] διάστηµα αδράνειας RTT διάστηµα αδράνειας K: αριθµός παραθύρων που απαιτούνται για να καλυφθεί το αντικείµενο, K = O/WS K-1: αριθµός διαστηµάτων αδρανείας χρόνος στον client χρόνος στον server Επίπεδο Μεταφοράς 3-84

Μοντελοποίηση καθυστέρησης στο TCP: αργή εκκίνηση (0) initiate έναρξη TCP σύνδεσης connection TCP αίτηση request αντικειµένου object πρώτο first window παράθυρο = =S/R Υποθέτουµε δυναµικό παράθυρο συµφόρησης που αυξάνεται σύµφωνα µε τον µηχανισµό αργής εκκίνησης RTT δεύτερο second παράθυρο window = 2S/R τρίτο third window παράθυρο = = 4S/R 4S/R τέταρτο fourth window παράθυρο = = 8S/R 8S/R παράδοση object αντικειµένου delivered χρόνος time at στον client client ολοκλήρωση complete transmission µετάδοσης χρόνος time at στον server Επίπεδο Μεταφοράς 3-85

Μοντελοποίηση καθυστέρησης στο TCP: αργή εκκίνηση (1) Θα δείξουµε ότι η καθυστέρηση για ένα αντικείµενο δίνεται από καθυστέρηση = 2RTT + O R + P RTT + S (2 R P S 1) R όπου P ο αριθµός των διαστηµάτων αδράνειας στον server: P = min{q,k 1} όπου -Q:αριθµός των διαστηµάτων αδρανείας στον server εάν το αντικείµενο είχε άπειρο µέγεθος -K:αριθµός παραθύρων που απαιτούνται για να καλυφθεί το αντικείµενο Επίπεδο Μεταφοράς 3-86

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

S R Μοντελοποίηση καθυστέρησης στο TCP (3) + RTT = χρόνος από τη στιγµή που ο server αρχίζει να στέλνει το segment µέχρι να λάβει την επιβεβαίωση k S 2 1 = χρόνος µετάδοσης k - οστού παραθύρου R max S R + RTT 2 k 1 S R,0 = αδρανής χρόνος µετά τo k - οστό παράθυρο initiate έναρξη TCP σύνδεσης connection TCP αίτηση request object αντικειµένου RTT πρώτο first window παράθυρο = =S/R δεύτερο second παράθυρο window = 2S/R τρίτο third παράθυρο window = 4S/R καθυστέρηση = = = = O R O R O R + 2RTT + + 2RTT + S R + 2RTT + P RTT + P k = 1 P k = 1 αδρανής_χρόνος + RTT S R 2 (2 k 1 P k S R 1) S R παράδοση object αντικειµένου delivered χρόνος time at στον client τέταρτο fourth window παράθυρο = 8S/R ολοκλήρωση complete µετάδοσης transmission χρόνος time at στον server Επίπεδο Μεταφοράς 3-88

Μοντελοποίηση καθυστέρησης στο TCP (4) Υπολογισµός του αριθµού των παραθύρων που καλύπτουν το αντικείµενο, K Το k-οστό παράθυρο περιέχει 2 k-1 segments ή 2 k-1 S bits + = + = = + + + = + + + = 1 log } 1 log : min{ } / 1 2 : min{ } / 2 2 2 : min{ } 2 2 2 : min{ 2 2 1 1 0 1 1 0 S O S O k k S O k S O k O S S S k K k k k L L Ουπολογισµός του Q, του αριθµού των αδρανών διαστηµάτων στον server για αντικείµενο άπειρου µεγέθους, γίνεται µε παρόµοιο τρόπο: 1 / 1 log } 2 : { max 2 1 + + = = > + = R S RTT R S RTT R S k Q k L Επίπεδο Μεταφοράς 3-89

Μοντελοποίηση HTTP Έστω ότι µία ιστοσελίδα αποτελείται από: 1 βασική σελίδα HTML (µεγέθους O bits) M εικόνες (καθεµία µεγέθους O bits) Non-persistent HTTP: M+1 διαδοχικές συνδέσεις TCP Χρόνος απόκρισης = (M+1)O/R + (M+1)2RTT + άθροισµα διαστηµάτων αδράνειας Persistent HTTP: 2 RTT για να ζητήσει και να λάβει τη βασική σελίδα HTML 1 RTT για να ζητήσει και να λάβει M εικόνες Χρόνος απόκρισης = (M+1)O/R + 3RTT + άθροισµα διαστηµάτων αδράνειας Non-persistent HTTP µε X παράλληλες συνδέσεις: Έστω M/X ακέραιος 1 σύνδεση TCP για τη βασική σελίδα HTML M/X σύνολα παράλληλων συνδέσεων για τις Μ εικόνες Χρόνος απόκρισης = (M+1)O/R + (M/X + 1)2RTT + άθροισµα διαστηµάτων αδράνειας Επίπεδο Μεταφοράς 3-90

Χρόνος απόκρισης του HTTP RTT = 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 RTT = 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 Για µεγαλύτερες τιµές του RTT, ο χρόνος απόκρισης κυριαρχείται από τις καθυστερήσεις εγκαθίδρυσης συνδέσεων και αργής εκκίνησης Το persistent HTTP επιφέρει σηµαντική βελτίωση: ειδικότερα σε δίκτυα µε µεγάλες τιµές του γινοµένου καθυστέρηση διάδοσης bandwidth Επίπεδο Μεταφοράς 3-92

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