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

Σχετικά έγγραφα
ΔΊΚΤΥΑ ΕΠΙΚΟΙΝΩΝΙΏΝ ΔΊΚΤΥΑ ΥΠΟΛΟΓΙΣΤΏΝ ΚΑΙ ΣΤΡΏΜΑ ΜΕΤΑΦΟΡΆΣ ΔΙΔΆΣΚΟΝΤΕΣ: ΔΡ. ΕΥΓΕΝΊΑ ΑΔΑΜΟΠΟΎΛΟΥ, ΔΡ. ΚΏΣΤΑΣ ΔΕΜΈΣΤΙΧΑΣ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Εργαστηριακή Άσκηση 7 Πρωτόκολλα TCP και UDP

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

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

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

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

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

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

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

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

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

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP

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

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

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

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

Εργαστηριακή Άσκηση 7 Πρωτόκολλα TCP και UDP

Δίκτυα Υπολογιστών. Ασκήσεις επανάληψης

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

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

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

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

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

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

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

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

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

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

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

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

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

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

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

ΣΕΜΙΝΑΡΙΟ ΔΙΚΤΥΩΝ ΜΑΡΤΙΟΣ ΜΑΙΟΣ 2010 ΔΙΟΡΓΑΝΩΣΗ ΑΜΠΑΡΙΩΤΗΣ ΑΠΟΣΤΟΛΟΣ ΓΙΑΜΜΑΚΗΣ ΓΙΑΝΝΗΣ ΛΕΒΑΝΤΗΣ ΟΔΥΣΣΕΑΣ ΠΑΠΑΔΟΠΟΥΛΟΣ ΜΑΡΙΟΣ ΨΙΑΧΟΣ ΧΡΗΣΤΟΣ

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

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

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

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

Μάθημα 6: Αρχιτεκτονική TCP/IP

Network Address Translation (NAT)

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

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

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Transmission Control Protocol. Transmission Control Protocol

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

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

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

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

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

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

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

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

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

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Ειδικά Θέματα Προγραμματισμού

Κεφάλαιο > Ε Π Α Ν Α Λ Η Ψ Η Επικοινωνιακό Υποδίκτυο / TCP / UDP. Σελ

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

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

ΠΡΩΤΟΚΟΛΛΟ TCP/IP ΜΑΚΡΟΠΟΥΛΟΣ ΝΙΚΟΛΑΟΣ

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

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

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ Γ Τάξη ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΑ.Λ. ΤΕΤΡΑΔΙΟ ΜΑΘΗΤΗ Κωνσταντοπούλου Μ., Χρυσοστόμου Γ.

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

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

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

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

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Transcript:

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

Ιστοσελίδα Μαθήματος 2 http://people.cn.ntua.gr/jenny/index.php/courses Εργασία: μπόνους έως 2 μονάδες http://people.cn.ntua.gr/jenny/images/mydata/ dialekseis/ergasies2015.pdf e-mail επικοινωνίας: eadam@cn.ntua.gr cdemest@cn.ntua.gr

Βιβλιογραφία 3 J. Kurose and K. Ross, Computer Networking A top down approach, Pearson, 6 th edition, 2013

Υπηρεσίες και πρωτόκολλα του στρώματος μεταφοράς 4 Οι υπηρεσίες του στρώματος μεταφοράς προσφέρουν λογική επικοινωνία μεταξύ διεργασιών που τρέχουν σε διαφορετικούς σταθμούς Τα πρωτόκολλα του στρώματος μεταφοράς τρέχουν στους τερματικούς σταθμούς (όχι στους ενδιάμεσους κόμβους) πλευρά του αποστολέα: χωρίζει τα μηνύματα της εφαρμογής σε τεμάχια (segments) και τα περνά στο στρώμα δικτύου για περαιτέρω ενθυλάκωση πλευρά του παραλήπτη: επανασυνδέει («συναρμολογεί») τα τεμάχια σε μηνύματα, τα οποία και περνά στο στρώμα εφαρμογής Οι εφαρμογές έχουν δύο επιλογές για τη χρήση πρωτοκόλλου στρώματος μεταφοράς TCP UDP application transport network data link physical application transport network data link physical

Στρώμα μεταφοράς vs. Στρώμα 5 δικτύου Στρώμα μεταφοράς λογική επικοινωνία μεταξύ διεργασιών (που τρέχουν σε διαφορετικούς τερματικούς σταθμούς) Στρώμα δικτύου λογική επικοινωνία μεταξύ τερματικών σταθμών

Πρωτόκολλα στρώματος μεταφοράς 6 TCP: Αξιόπιστη μεταφορά, με σωστή σειρά (διατήρηση σειράς) έλεγχος συμφόρησης έλεγχος ροής δεδομένων εγκατάσταση σύνδεσης UDP: Μη αξιόπιστη μεταφορά, χωρίς εγγύηση παράδοσης δεδομένων με τη σωστή σειρά best effort Μη διαθέσιμες υπηρεσίες εγγύηση (μέγιστης) καθυστέρησης εγγύηση (ελάχιστου) ρυθμού μετάδοσης application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link network physical data link physical network data link physical application transport network data link physical

Multiplexing/Demultiplexing 7 multiplexing στον αποστολέα: διαχείριση δεδομένων από πολλαπλά sockets, προσθήκη επικεφαλίδας στρώματος μεταφοράς (θα χρησιμεύσει στο demultiplexing) demultiplexing στον παραλήπτη: χρήση της επικεφαλίδας του στρώματος μεταφοράς για την παράδοση των τεμαχίων στο σωστό socket application application P3 transport network link P1 transport network link physical P2 application P4 transport network link socket process physical physical

Multiplexing/Demultiplexing 8 Θύρες Οι αριθμοί θύρας (port numbers) χρησιμεύουν στη διαδικασία multiplexing/demultiplexing Οι αριθμοί θύρας έχουν μήκος 16 bit Ο πελάτης πρέπει να γνωρίζει τη θύρα του εξυπηρετητή προκειμένου να επικοινωνήσει Πασίγνωστες θύρες (0-1023): όλοι συμφωνούν ποιες υπηρεσίες τρέχουν σε αυτές τις θύρες π.χ., FTP:21, SMTP:25, DNS:53, HTTP:80 Εφήμερες θύρες (1024-65535): δεσμεύονται και αποδεσμεύονται δυναμικά από το Λειτουργικό Σύστημα του σταθμού

Demultiplexing 9 Πώς λειτουργεί το demultiplexing (απόπλεξη, αποπολυπλεξία)? Ο σταθμός λαμβάνει IP πακέτα (packets, datagrams) Κάθε πακέτο έχει IP διεύθυνση προέλευσης και προορισμού Κάθε πακέτο περιέχει ένα τεμάχιο στρώματος μεταφοράς Κάθε τεμάχιο έχει αριθμό θύρας (port number) προέλευσης και προορισμού Για την απόπλεξη, κάθε σταθμός χρησιμοποιεί αυτές τις διευθύνσεις IP και τους αριθμούς θύρας για να τοποθετήσει το τεμάχιο στο σωστό socket 32 bits source port # dest port # other header fields application data (payload) Γενική Δομή TCP/UDP segment

Connectionless Demultiplexing 10 Όταν ο σταθμός λάβει ένα UDP τεμάχιο Ελέγχει τον αριθμό θύρας προορισμού στο τεμάχιο Κατευθύνει και τοποθετεί το τεμάχιο στο τοπικό socket που αντιστοιχεί σε αυτόν τον αριθμό θύρας Ένα UDP socket προσδιορίζεται από το ζεύγος IP διεύθυνση προορισμού αριθμός θύρας προορισμού Για την απόπλεξη, ο παραλήπτης χρησιμοποιεί μόνο τα 2 παραπάνω στοιχεία για να κατευθύνει το τεμάχιο UDP στο σωστό socket Κατά συνέπεια: Τεμάχια προς τον ίδιο σταθμό και με τον ίδιο αριθμό θύρας προορισμού αλλά διαφορετικές IP διευθύνσεις ή/και θύρες προέλευσης θα κατευθυνθούν στο ίδιο socket μόλις παραληφθούν Με αυτόν τον τρόπο γίνεται η απόπλεξη στην περίπτωση του UDP

Connectionless Demultiplexing 11 DatagramSocket mysocket2 = new DatagramSocket (9157); application transport link P3 network physical DatagramSocket serversocket = new DatagramSocket (6428); application transport network link P1 physical DatagramSocket mysocket1 = new DatagramSocket (5775); application transport network link P4 physical source port: 6428 dest port: 9157 source port:? dest port:? source port: 9157 dest port: 6428 source port:? dest port:?

Connection-oriented demultiplexing 12 Ένα TCP socket ταυτοποιείται μοναδικά από την ακόλουθη τετράδα IP διεύθυνση προέλευσης αριθμός θύρας προέλευσης IP διεύθυνση προορισμού αριθμός θύρας προορισμού Για την απόπλεξη, ο παραλήπτης χρησιμοποιεί και τα 4 παραπάνω στοιχεία για να κατευθύνει το TCP τεμάχιο στο σωστό socket Ένας εξυπηρετητής μπορεί έτσι να υποστηρίξει πολλά TCP sockets ταυτόχρονα, ακόμα και αν αυτά έχουν ίδιο τοπικό αριθμό θύρας (αφού η παραπάνω τετράδα διακρίνει τα TCP sockets) Π.χ. ένας Web server έχει πολλά διαφορετικά sockets ταυτόχρονα Με αυτόν τον τρόπο γίνεται η απόπλεξη στην περίπτωση του TCP

Connection-oriented demultiplexing 13 application P3 transport network link physical application P4 P5 transport network link physical P6 server: IP address B application P2 P3 transport network link physical host: IP address A source IP,port: B,80 dest IP,port: A,9157 source IP,port: C,5775 dest IP,port: B,80 host: IP address C source IP,port: A,9157 dest IP, port: B,80 source IP,port: C,9157 dest IP,port: B,80 τρία τεμάχια που και τα τρία προορίζονται προς <IP address: B, dest port: 80> αποπλέκονται σε διαφορετικά sockets

UDP User Datagram Protocol 14 Απλό πρωτόκολλο στρώματος μεταφοράς στο Διαδίκτυο Best-effort υπηρεσία, διότι τα UDP τεμάχια μπορεί να χαθούν παραδοθούν εκτός σειράς στην εφαρμογή Connectionless = χωρίς εγκατάσταση σύνδεσης καμία χειραψία μεταξύ αποστολέα και παραλήπτη χειριζόμαστε κάθε UDP τεμάχιο ανεξάρτητα από τα υπόλοιπα Χρήση του UDP σε εφαρμογές multimedia streaming DNS SNMP Προσθήκη αξιοπιστίας μόνο στο στρώμα εφαρμογής

UDP Επικεφαλίδα 15 source port # dest port # length 32 bits application data (payload) checksum Δομή UDP segment Το μήκος τεμαχίου UDP είναι τουλάχιστον 8 byte και το πολύ 65,535 byte Γιατί? μέγεθος σε bytes του τεμαχίου UDP συμπεριλαμβανομένης της επικεφαλίδας Γιατί υπάρχει το UDP? μεταφορά χωρίς εγκατάσταση σύνδεσης (η οποία μπορεί να προσθέσει καθυστέρηση) απλότητα (χωρίς διατήρηση κατάστασης στον αποστολέα και στον παραλήπτη) μικρό μέγεθος επικεφαλίδας απουσία ελέγχου συμφόρησης (το UDP μπορεί να επιτύχει μεγαλύτερες ταχύτητες)

UDP Checksum 16 Στόχος της χρήσης του πεδίου checksum (άθροισμα ελέγχου) είναι ο εντοπισμός ύπαρξης λαθών (αλλοίωση bits) σε ένα μεταδιδόμενο τεμάχιο Πλευρά του αποστολέα Χωρισμός των περιεχομένων του τεμαχίου (μαζί με τα πεδία της επικεφαλίδας) σε μια σειρά λέξεων μήκους 16 bits Υπολογισμός checksum: Πρόσθεση των λέξεων αυτών και εύρεση του συμπληρώματος ως προς 1 του αθροίσματος n wrap around σε περίπτωση κρατούμενου Τοποθέτηση της τιμής του checksum στο πεδίο checksum της επικεφαλίδας UDP Πλευρά του παραλήπτη Χωρισμός των περιεχομένων του τεμαχίου που παρελήφθη (μαζί με τα πεδία της επικεφαλίδας) σε μια σειρά λέξεων μήκους 16 bits Πρόσθεση όλων αυτών των λέξεων και έλεγχος αν το αποτέλεσμα ταυτίζεται με το 0xffff (όλα τα bit να είναι 1)

UDP Checksum 17 Παράδειγμα: πρόσθεση δύο ακεραίων αριθμών 16-bit 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 wraparound sum checksum 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 Σημ.: Όταν προστίθενται οι αριθμοί κατά τον υπολογισμό του checksum, το κρατούμενο προστίθεται στο αποτέλεσμα

Αξιόπιστη μεταφορά δεδομένων 18 Η αξιοπιστία είναι ένα από τα πιο σημαντικά ζητήματα στη δικτύωση Τα χαρακτηριστικά του μη αξιόπιστου καναλιού είναι εκείνα που καθορίζουν και την πολυπλοκότητα του αξιόπιστου πρωτοκόλλου μεταφοράς Application layer Transport layer Network layer Sending process Reliable channel Receiver process Τεχνολογία Πληροφορίας και Επικοινωνιών - Ε. Αδαμοπούλου, a. Provided service Κ. Δεμέστιχας

Αξιόπιστη μεταφορά δεδομένων 19 Ακρωνύμιο rdt = reliable data transfer (αξιόπιστη μεταφορά δεδομένων) rdt_send(): Καλείται από την εφαρμογή, περνώντας τα προς αποστολή δεδομένα deliver_data(): Καλείται από τη διαδικασία rdt, για την παράδοση δεδομένων στην εφαρμογή send side receive side udt_send(): Καλείται από τη διαδικασία rdt, για την αποστολή των δεδομένων μέσα από το μη αξιόπιστο κανάλι rdt_rcv(): Καλείται όταν καταφθάνει ένα τεμάχιο στην πλευρά του παραλήπτη

TCP Transmission Control Protocol 20 Είναι πρωτόκολλο μεταφοράς με σύνδεση, που προσφέρει αξιόπιστη μετάδοση συρμού byte από άκρο εις άκρο πάνω από μη αξιόπιστο δίκτυο Συρµός byte TCP TCP Δίκτυο IP

TCP Γενικά 21 Μετάδοση σημείου προς σημείο ένας πομπός (αποστολέας), ένας δέκτης (παραλήπτης) Αξιόπιστη μετάδοση (παράδοση με τη σειρά) συρμού byte το μήνυμα εφαρμογής μπορεί να έχει αυθαίρετο μήκος Συνεχής παροχή ο έλεγχος συμφόρησης και ροής στο TCP καθορίζουν το μέγεθος του παραθύρου Buffers εκπομπής και λήψης υποδοχή Η εφαρµογή γράφει δεδοµένα Η εφαρµογή διαβάζει δεδοµένα υποδοχή θύρα TCP buffer εκποµπής TCP buffer λήψης θύρα τεµάχιο

TCP Γενικά 22 Αμφίδρομη μετάδοση Αμφίδρομη ροή δεδομένων στην ίδια σύνδεση MSS Maximum Segment Size (μέγιστος μήκος τεμαχίου) Υπηρεσία με σύνδεση Η λεγόμενη τριμερής χειραψία αρχικοποιεί την κατάσταση πομπού και δέκτη πριν την ανταλλαγή δεδομένων Έλεγχος ροής Ο πομπός δεν υπερχειλίζει τον δέκτη Έλεγχος και αποφυγή συμφόρησης Πολλά παραδείγματα χρησιμοποίησης FTP, HTTP, SMTP (e-mail),...

TCP Γενικά 23 Πριν από οποιανδήποτε μεταφορά δεδομένων, το TCP εγκαθιστά μια σύνδεση Η μία πλευρά αναμένει για σύνδεση (εξυπηρετητής server) Η άλλη πλευρά (πελάτης client) συνδέεται με τον server Η διαδικασία εγκατάστασης σύνδεσης είναι στην πραγματικότητα πιο πολύπλοκη Κάθε σύνδεση είναι αμφίδρομη, σημείου προς σημείο CLIENT Αίτηση για σύνδεση Αποδοχή σύνδεσης SERVER αναµονή για αίτηση σύνδεσης Μεταφορά δεδοµένων Απόλυση σύνδεσης

Byte 80 Byte 3 Byte 2 Byte 1 Byte 0 Byte 80 Byte 3 Byte 2 Byte 1 Byte 0 TCP Υπηρεσία συρμού byte 24 Host A TCP Data Το τεμάχιο στέλνεται όταν: 1. Είναι πλήρες (MSS byte) 2. Όχι πλήρες, αλλά λήγει ο χρόνος 3. Ωθείται από την εφαρμογή Host B TCP Data

TCP Υπηρεσία συρμού byte 25 Στα κατώτερα στρώματα, το TCP παραδίδει δεδομένα σε τμήματα, τα τεμάχια Στα ανώτερα στρώματα, το TCP παραδίδει δεδομένα ως ακολουθία από byte και δεν καθορίζει όρια μεταξύ των byte Συνεπώς, τα ανώτερα στρώματα δεν γνωρίζουν την αρχή και το τέλος των τεμαχίων Εφαρµογή 1. write 100 byte 2. write 20 byte Εφαρµογή 1. read 40 byte 2. read 40 byte 3. read 40 byte TCP byte για µετάδοση τεµάχια TCP ληφθέντα byte

TCP Maximum Segment Size 26 MSS (Maximum Segment Size Μέγιστο Μήκος Τεμαχίου) είναι ο μέγιστος αριθμός δεδομένων του στρώματος εφαρμογής που εμπεριέχονται στο τεμάχιο και όχι το μέγιστο μέγεθος του τεμαχίου Εξαρτάται από την υλοποίηση του TCP (καθοριζόμενη από το Λειτουργικό Σύστημα) και μπορεί να επιλεγεί Συνήθεις τιμές: 1500, 536, 512 byte Επιλέγεται το μέγιστο μέγεθος κατά τρόπο που να αποφεύγεται ο θρυμματισμός στο ΙΡ

TCP Δομή τεμαχίου 27 Επικεφαλίδα ΙΡ Επικεφαλίδα TCP Δεδομένα εφαρμογής 20 byte Μήκος επικ. θύρα πηγής not used 32 bit θύρα προορισµού αύξων αριθµός αριθµός επαλήθευσης checksum U A P R S F µέγεθος παραθύρου δείκτης επείγοντος επιλογές (µεταβλητό µήκος) µέτρηση σε byte δεδοµένων δεδοµένα εφαρµογής (µεταβλητό µήκος) (65.535-20-20=65.495 byte)

TCP Δομή τεμαχίου 28 ACK: έγκυρη ACK URG: επείγοντα δεδοµένα λέξεις 32 bit PSH: pushed data RST, SYN, FIN Έλεγχος λαθών Μήκος επικ. θύρα πηγής not used 32 bit αύξων αριθµός θύρα προορισµού αριθµός επαλήθευσης checksum U A P R S F µέγεθος παραθύρου δείκτης επείγοντος επιλογές (µεταβλητό µήκος) δεδοµένα εφαρµογής (µεταβλητό µήκος) (65.535-20-20=65.495 byte) αριθµός byte που µπορεί να δεχθεί ο δέκτης θέση του τελευταίου byte των urgent data

TCP Αύξοντες αριθμοί και 29 αριθμοί επαλήθευσης Οι αύξοντες αριθμοί (sequence numbers SEQ) και οι αριθμοί επαληθεύσεων (acknowledgment numbers ACK) έχουν μήκος 32 bit Η περιοχή τιμών τους είναι 0 Sequence number 2 32-1 4.3 GB Ο client και ο server επιλέγουν ο καθένας τους τον ISN με τυχαίο τρόπο κατά την εγκατάσταση της σύνδεσης Host A ISN (initial sequence number) Αύξων αριθµός = πρώτο byte TCP HDR TCP Data Αριθµός Ack = επόµενο αναµενόµενο byte TCP HDR TCP Data Host B

TCP Αύξοντες αριθμοί και 30 αριθμοί επαλήθευσης Το TCP χρησιμοποιεί παραλλαγή του λεγόμενου αλγορίθμου ολισθαίνοντος παραθύρου (sliding window) για τον έλεγχο ροής δεδομένων μεταξύ πομπού και δέκτη τόσο ο πομπός όσο και ο δέκτης διαθέτουν έναν buffer πεπερασμένου μεγέθους για να διατηρούν τα εξερχόμενα και τα εισερχόμενα τεμάχια της άλλης πλευράς κάθε τεμάχιο που στέλνεται από τον πομπό πρέπει να επαληθεύεται από το δέκτη n ο πομπός διατηρεί ένα χρονόμετρο για κάθε απεσταλμένο τεμάχιο και κάθε μη- επαληθευμένο τεμάχιο εντός του προκαθορισμένου χρόνου επαναμεταδίδεται ο πομπός δε χρειάζεται να περιμένει την επαλήθευση ενός τεμαχίου προτού στείλει το επόμενο n μπορεί να στείλει ένα ολόκληρο σύνολο (συμφωνημένου μεγέθους) τεμαχίων, το λεγόμενο «παράθυρο», προτού λάβει την επιβεβαίωση για το πρώτο τεμάχιο του παραθύρου έτσι, επιτυγχάνεται υψηλότερος ρυθμός μετάδοσης δεδομένων ο δέκτης ανακοινώνει ένα μέγεθος παραθύρου το οποίο υποδεικνύει στον πομπό πόσα δεδομένα μπορεί να λάβει ώστε να μη γεμίσει ο buffer του

TCP Αύξοντες αριθμοί και 31 αριθμοί επαλήθευσης Το TCP χρησιμοποιεί παραλλαγή του αλγορίθμου ολισθαίνοντος παραθύρου, στην οποία δε χρησιμοποιούνται αρνητικές επιβεβαιώσεις (NACK Nega ve Acknowledgment) αλλά μόνο συσσωρευτικές θετικές επιβεβαιωτικές (ACK) Παράδειγμα: Ο πομπός στέλνει δύο τεμάχια με 1...1500 (bytes δεδομένων) και 1501 3000, αλλά ο δέκτης λαμβάνει μόνο το δεύτερο Ο δέκτης δεν μπορεί να επαληθεύσει το δεύτερο τεμάχιο n Θα ειδοποιήσει τον πομπό ότι περιμένει να λάβει το πρώτο τεμάχιο

TCP Αύξοντες αριθμοί και 32 αριθμοί επαλήθευσης Παράδειγμα telnet Ο χρήστης πληκτρολογεί C Host A Host B Seq=42, ACK=79, data = C Seq=79, ACK=43, data = C Ο host επαληθεύει τη λήψη του C, Στέλνει πίσω ηχώ του C Ο host επαληθεύει τη λήψη ηχούς του C Seq=43, ACK=80 απλό σενάριο telnet χρόνος

TCP Προαιρετικές επιλογές 33 (options) Είναι ένας τρόπος να προστεθούν επιπλέον δυνατότητες που δεν καλύπτονται από την κανονική επικεφαλίδα Χρησιμοποιείται για παραγέμισμα της επικεφαλίδας TCP ώστε να είναι πολλαπλάσιο των 4 byte

TCP Αξιόπιστη μετάδοση 34 Το TCP δημιουργεί υπηρεσία αξιόπιστης μεταφοράς δεδομένων πάνω από την αναξιόπιστη υπηρεσία του ΙΡ Δύο τύποι σφαλμάτων Απωλεσθέντα τεμάχια Κατεστραμμένα τεμάχια Το TCP χρησιμοποιεί checksum (άθροισμα ελέγχου) για την επικεφαλίδα και τα δεδομένα Τεμάχια με μη έγκυρα αθροίσματα ελέγχου απορρίπτονται Ο δέκτης στέλνει επαληθεύσεις (ACKs) για τα σωστά τεμάχια Οι ACKs μπορεί να είναι συσσωρευτικές

TCP Αξιόπιστη μετάδοση 35 Το TCP χρησιμοποιεί ένα χρονόμετρο (timer) επαναμετάδοσης Οι επαναμεταδόσεις των τεμαχίων προκαλούνται από λήξεις χρόνου (expiration) ή από διπλές ACK Ο αριθμός της ACK είναι ο επόμενος αναμενόμενος αύξων αριθμός Καθυστερημένη ACK: ο δέκτης TCP συνήθως καθυστερεί (εσκεμμένα) τη μετάδοση μιας ACK (για περίπου 200ms) Οι ACK δεν καθυστερούνται εσκεμμένα όταν τα τεμάχια λαμβάνονται εκτός σειράς

TCP Αξιόπιστη μετάδοση 36 Απλοποιημένος πομπός TCP Περίπτωση άφιξης δεδομένων από το στρώμα εφαρμογής: Δημιουργία τεμαχίου με seq # Ο seq # αντιστοιχεί στο πρώτο byte του συρμού δεδομένων Εκκίνηση χρονομέτρου, εάν δεν ξεκίνησε ήδη (χρονόμετρο για προηγούμενο ανεπιβεβαίωτο τεμάχιο) Χρόνος εκπνοής: TimeOutInterval Περίπτωση εκπνοής χρόνου: Επαναμετάδοση του τεμαχίου που προκάλεσε meout Επανεκκίνηση του mer Περίπτωση λήψη ACK: Αν επαληθεύει προηγούμενα μη- επαληθευμένα τεμάχια: n ενημέρωση των ήδη επαληθευμένων n εκκίνηση του mer αν υπάρχουν τεμάχια που εκκρεμούν

TCP Αξιόπιστη μετάδοση 37 Σενάρια Επαναμετάδοσης Host A Host B Host A Host B Seq=92, 8 bytes data timeout X loss ACK=100 Seq=92, 8 bytes data Seq=92 timeout Seq=92, 8 bytes data Seq=100, 20 bytes data Seq=92, 8 bytes data ACK=100 Seq=92 timeout Σενάριο χαµένης ACK time time Πρόωρο timeout

TCP Αξιόπιστη μετάδοση 38 Σενάρια Επαναμετάδοσης Host A Host B Seq=92, 8 bytes data timeout Seq=100, 20 bytes data X loss ACK=100 ACK=120 time Σενάριο συγκεντρωτικής (συσσωρευτικής) ACK

TCP Αξιόπιστη μετάδοση 39 Δημιουργία επαληθεύσεων Γεγονός άφιξη τεµαχίου στην κανονική σειρά, όχι κενά, οτιδήποτε άλλο έχει ήδη επαληθευτεί άφιξη τεµαχίου στην κανονική σειρά, όχι κενά, εκκρεµεί µία καθυστερηµένη ACK άφιξη τεµαχίου εκτός σειράς µε µεγαλύτερο αύξοντα αριθµό από τον αναµενόµενο άφιξη τεµαχίου που εν µέρει ή πλήρως συµπληρώνει κενό Ενέργεια του δέκτη TCP καθυστερηµένη ACK, δηλ.: αναµονή 200ms για το επόµενο τεµάχιο - αν δεν υπάρχει επόµενο τεµάχιο, αποστολή ACK άµεση αποστολή µιας συσσωρευτικής ACK και για τα δύο τεµάχια που αφίχθησαν µε κανονική σειρά αποστολή επαναληπτικής ACK, που να δείχνει τον αύξοντα αριθµό του επόµενου αναµενόµενου byte άµεση αποστολή ACK, αν το τεµάχιο αρχίζει στο κατώτερο άκρο του κενού

TCP Αξιόπιστη μετάδοση 40 Επαληθεύσεις στο TCP 1 K S e q N o = 0 1 K S e q N o = 0 A c k N o = 1 0 2 4 A c k N o = 1 0 2 4 1 K S e q N o = 1 0 2 4 1 K S e q N o = 1 0 2 4 A c k N o = 2 0 4 8 1 K S e q N o = 2 0 4 8 A c k N o = 2 0 4 8 1 K S e q N o = 204 8 1 K S e q N o = 307 2 1 K S e q N o = 3 0 7 2 A c k N o = 2 0 4 8 A c k N o = 2 0 4 8 Απώλεια τεµαχίου Άφιξη εκτός σειράς

TCP Αξιόπιστη μετάδοση Επαναμεταδόσεις στο TCP 41 Ένας πομπός TCP επαναμεταδίδει ένα τεμάχιο, όταν θεωρήσει ότι το υπόψη τεμάχιο έχει χαθεί, δηλ. όταν: Δεν έχει ληφθεί ACK και έχει λήξει το χρονόμετρο Έχουν ληφθεί πολλαπλές ACK για το ίδιο τεμάχιο

TCP Αξιόπιστη μετάδοση 42 Ταχεία επαναμετάδοση Η περίοδος meout είναι συχνά σχετικά μεγάλη μεγάλη καθυστέρηση πριν την αποστολή του χαμένου πακέτου Ανίχνευση των χαμένων τεμαχίων μέσω διπλών επαληθεύσεων Ο πομπός στέλνει συχνά πολλά τεμάχια το ένα πίσω από το άλλο Αν χαθεί τεμάχιο, θα υπάρχουν ενδεχομένως πολλές ίδιες επαληθεύσεις Ταχεία επαναμετάδοση: επαναποστολή του τεμαχίου πριν τη λήξη της χρονομέτρησης

43 TCP Αξιόπιστη μετάδοση Λήψη πολλαπλών ACK Αν ληφθούν τρεις ACK στη σειρά για τα ίδια δεδομένα, ο πομπός TCP θεωρεί ότι το τεμάχιο μετά τα επαληθευόμενα δεδομένα χάθηκε Τότε ο πομπός TCP επαναμεταδίδει το τεμάχιο που θεωρεί ότι χάθηκε, χωρίς να περιμένει τη λήξη χρόνου Τούτο διορθώνει μεμονωμένες απώλειες τεμαχίων

TCP Αξιόπιστη μετάδοση 44 Διαχείριση χρονομετρητών Το TCP χρησιμοποιεί πολλούς χρονομετρητές Ο σπουδαιότερος είναι ο χρονομετρητής επαναμετάδοσης (retransmission mer) Όταν στέλνεται ένα τεμάχιο, ξεκινά ένας χρονομετρητής αναμετάδοσης Αν η λήψη του τεμαχίου επαληθευτεί πριν εκπνεύσει ο χρόνος, τότε ο χρονομετρητής σταματά Αν εκπνεύσει ο χρόνος πριν φθάσει η επαλήθευση, το τεμάχιο μεταδίδεται ξανά Πόσο μεγάλο πρέπει να είναι το χρονικό διάστημα πριν λήξει η χρονομέτρηση;

TCP Αξιόπιστη μετάδοση 45 Round Trip Time και Timeout Πώς τίθεται η τιμή του meout επαναμετάδοσης (Retransmission Timeout, RTO) στο TCP? μεγαλύτερη από RTT? n αλλά το RTT μεταβάλλεται πολύ μικρή? πρόωρο meout n άσκοπες επαναμεταδόσεις πολύ μεγάλη? αργή αντίδραση, όταν χάνεται τεμάχιο Πώς προσδιορίζεται το RTT? SampleRTT: ο χρόνος από τη μετάδοση του τεμαχίου μέχρι τη λήψη της ACK Επειδή το SampleRTT μεταβάλλεται, είναι επιθυμητή μια εξομαλυμένη τιμή για το RTT, όχι το τρέχον SampleRTT

TCP Αξιόπιστη μετάδοση 46 Round Trip Time και Timeout Θα υπάρχει κάποια (άγνωστη) κατανομή των RTT Προσπαθούμε να εκτιμήσουμε ένα RTO για να ελαχιστοποιήσουμε την πιθανότητα μιας εσφαλμένης λήξης χρόνου Οι ουρές στους δρομολογητές μεγαλώνουν όταν υπάρχει περισσότερη κίνηση, μέχρι να υπάρξει αστάθεια Καθώς αυξάνει το φορτίο, η διακύμανση (variance) της καθυστέρησης αυξάνει απότομα Probability variance Average Queueing Delay Η Variance αυξάνει απότοµα µε το φορτίο mean RTT Κίνηση που φθάνει στον δρομολογητή

TCP Αξιόπιστη μετάδοση 47 Ρύθμιση της τιμής του Timeout Κάθε σύνδεση TCP μετράει τη χρονική διαφορά μεταξύ της αποστολής ενός τεμαχίου και της λήψης της αντίστοιχης ACK Υπάρχει μόνο μια μέτρηση σε ισχύ κάθε φορά (δηλ., οι μετρήσεις δεν επικαλύπτονται) Στο διπλανό σχήμα φαίνονται τρεις μετρήσεις RTT

TCP Αξιόπιστη μετάδοση 48 Ρύθμιση της τιμής του Timeout Η RTO υπολογίζεται βάσει των μετρήσεων του RTT Χρησιμοποιείται εκθετικός σταθμισμένος κινούμενος μέσος όρος (srtt) για την εκτιμώμενη καθυστέρηση και τη variance (rttvar) της καθυστέρησης Οι μετρήσεις RTT εξομαλύνονται ως εξής: srtt n+1 = a * SampleRTT + (1- a) * srtt n rttvar n+1 = b * ( SampleRTT - srtt n ) + (1- b) * rttvar n RTO n+1 = srtt n+1 + 4 * rttvar n+1 Οι τιμές των συντελεστών: a =1/8 και b =1/4

TCP Αξιόπιστη μετάδοση 49 Ρύθμιση της τιμής του Timeout 350 300 RTT (milliseconds) 250 200 150 100 1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106 time (seconnds)

TCP Αξιόπιστη μετάδοση 50 Ρύθμιση της τιμής του Timeout Αρχική τιμή του RTO: Ο πομπός θέτει την αρχική τιμή του RTO: RTO 0 = 3 sec Υπολογισμός του RTO μετά την πρώτη μέτρηση του RTT: srtt 1 = SampleRTT rttvar 1 = SampleRTT / 2 RTO 1 = srtt 1 + 4 rttvar 1

TCP Αξιόπιστη μετάδοση 51 Ρύθμιση της τιμής του Timeout Αν ληφθεί ACK για τεμάχιο που επαναμεταδόθηκε, ο πομπός δεν μπορεί να ξέρει αν η ACK ανήκει στο αρχικό ή στο τεμάχιο που επαναμεταδόθηκε Αλγόριθμος του Karn: Μην ενημερώνεις την RTT για τεμάχια που επαναμεταδόθηκαν Ξαναξεκίνα τις μετρήσεις RTT μόνο μετά τη λήψη ACK που αφορά κανονικό τεμάχιο Όταν εμφανιστεί ένα meout, η τιμή του RTO διπλασιάζεται (εκθετική οπισθοχώρηση) n RTO n+1 = min ( 2*RTO n, 64) sec

52 Ευχαριστώ για την προσοχή σας!