Υπολογιστές και ίκτυα Η/Υ http://www.net.uom.gr
Βιβλίο για ίκτυα Η/Υ Computer Networking, A Top-Down Approach Featuring the Internet, 2nd edition J. Kurose, K. Ross ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 2
Κεφάλαιο 3 Transport Layer (Επίπεδο Μεταφοράς) Πολύ σηµαντικό επίπεδο ανάµεσα στο Application και Network Layers Η µονάδα πληροφορίας είναι το Segment Τα κύρια πρωτόκολλα σε αυτό το επίπεδο: TCP (Transport Control Protocol) UDP (User Datagram Protocol) Παρέχει Λογική Επικοινωνία µεταξύ εφαρµογών που εκτελούνται σε διαφορετικούς υπολογιστές Οι εφαρµογές νοµίζουν ότι οι αντίστοιχοι υπολογιστές είναι γειτονικοί ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 3
Λογική Επικοινωνία ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 4
Σχέση Transport και Network Layers Το Transport Layer παρέχει Λογική Επικοινωνία µεταξύ διεργασιών (π.χ., εφαρµογών) Το Network Layer παρέχει Λογική Επικοινωνία µεταξύ hosts ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 5
Transport Layer στο ιαδίκτυο Ο προγραµµατιστής αποφασίζει για την χρησιµοποίηση TCP ή UDP IP το πρωτόκολλο στο Network Layer To IP παρέχει υπηρεσία βέλτιστης προσπάθειας (best-effort) Καµία εγγύηση για παράδοση (unreliable service): Μερική ή ολική Με την ορθή σειρά Ότι τα λαµβανόµενα πακέτα έχουν δεδοµένα στα ίδια όρια µε τα αρχικά segments ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 6
Transport Layer στο ιαδίκτυο 2 To Transport Layer παρέχει Πολύπλεξη και Απόπλεξη µεταξύ διεργασιών σε δύο Η/Υ Ειδικότερα το TCP παρέχει: Αξιόπιστη υπηρεσία µεταφοράς (reliable data transfer) Έλεγχο Συµφόρησης (Congestion control) Συνεπώς είναι πολύπλοκο Το UDP είναι το ακριβώς αντίθετο ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 7
Transport Layer στο ιαδίκτυο 3 Αριθµοί θύρας 0-1023 δεσµευµένοι για τις well-known services Οι λοιποί έως 65535 http://www.iana.org ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 8
Transport Layer στο ιαδίκτυο 4 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 9
Transport Layer στο ιαδίκτυο 5 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 10
Transport Layer στο ιαδίκτυο 6 Βασική διαφορά µεταξύ UDP και TCP sockets: Οι τελευταίες ορίζονται από την τετράδα: <source IP address>, <source port number>, <destination IP address>, <destination port number> Συνεπώς µπορούν πολλές διεργασίες από τον ίδιο υπολογιστή-πελάτη να επικοινωνούν µε την ίδια διεργασία στον ίδιο υπολογιστή-εξυπηρέτη ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 11
Transport Layer στο ιαδίκτυο 7 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 12
Connectionless Transport: UDP Χρήσιµο όταν επιθυµούµε να αποστείλουµε πακέτα από την διεργασία-εφαρµογή απ ευθείας στο Επίπεδο ικτύου και αντίστροφα στον παραλήπτη Το µόνο που λαµβάνει χώρα είναι η πολύπλεξη/αποπολύπλεξη εν χρησιµοποιείται handshaking Χαρακτηριστικό παράδειγµα εφαρµογής: DNS ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 13
Connectionless Transport: UDP 2 Γιατί να επιλέξει κανείς το UDP; εν απαιτείται η δηµιουργία σύνδεσης Ταχύτερο εν διατηρείται η κατάσταση σύνδεσης Απαιτούνται λιγότεροι πόροι και προσπάθεια Μικρή επιβάρυνση από την κεφαλίδα πακέτου Αφού είναι µικρότερη (8 byte έναντι 20 του TCP) Μεγαλύτερος βαθµός ελέγχου από την εφαρµογή στο ποια δεδοµένα αποστέλλονται και πότε Αφού λείπει µηχανισµός ελέγχου συµφόρησης, κλπ ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 14
ηµοφιλείς Εφαρµογές ιαδικτύου ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 15
Connectionless Transport: UDP 3 Το UDP παρέχει επιπλέον και έλεγχο σφαλµάτων µετάδοσης για όλο το segment µέσω του πεδίου Checksum Πεδίο Length µήκος segment σε bytes ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 16
Αρχές Αξιόπιστης Μετάδοσης ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 17
Κατασκευή Πρωτοκόλλου για Αξιόπιστη Μετάδοση rdt1.0 Finite-state machine (FSM) για πλήρως αξιόπιστο κανάλι επικοινωνίας (rdt1.0) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 18
Κατασκευή Πρωτοκόλλου για Αξιόπιστη Μετάδοση rdt2.0 Εκποµπή σε κανάλι µε σφάλµατα bit (rdt2.0) Χρησιµοποιούνται Positive (ACK) και Negative (NAK) Acknowledgements Επανεκποµπή (ARQ protocols = Automatic Repeat request protocols) Χρειάζονται τώρα (στα ARQ πρωτόκολλα): Ανίχνευση Σφαλµάτων Ανάδραση Παραλήπτη (Receiver Feedback) Επανεκποµπή (Retransmission) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 19
Κατασκευή Πρωτοκόλλου για Αξιόπιστη Μετάδοση rdt2.0 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 20
Κατασκευή Πρωτοκόλλου για Αξιόπιστη Μετάδοση 4 Προβλήµατα του πρωτοκόλλου rdt2.0: Τι γίνεται εάν πάθει ζηµιά ένα πακέτο ACK ή NAK; Τρεις περιπτώσεις αντιµετώπισης: Ο παραλήπτης ζητάει επανεκποµπή του ACK/ΝΑΚ µέσω ενός πακέτου καινούργιου τύπου Επιπλέον bit στα παραπάνω πακέτα, όχι µόνο για ανίχνευση, αλλά και για επιδιόρθωση σφαλµάτων Επανεκποµπή του πακέτου δεδοµένων. Χρειάζεται ένα επιπλέον πεδίο (sequence number) για να διακρίνει ο παραλήπτης εάν πρόκειται για καινούργιο πακέτο ή επανεκπεµπόµενο ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 21
Κατασκευή Πρωτοκόλλου για Αξιόπιστη Μετάδοση rdt2.1 ιόρθωση rdt2.0 µε την χρήση sequence numbers (rdt2.1) υνατές τιµές 0 και 1 Χρησιµοποιεί ACK και NAK ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 22
Κατασκευή Πρωτοκόλλου για Αξιόπιστη Μετάδοση rdt2.1 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 23
Κατασκευή Πρωτοκόλλου για Αξιόπιστη Μετάδοση rdt2.2 Τροποποίηση rdt2.1 µε την κατάργηση NAK (rdt2.2) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 24
Κατασκευή Πρωτοκόλλου για Αξιόπιστη Μετάδοση rdt2.2 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 25
Κατασκευή Πρωτοκόλλου για Αξιόπιστη Μετάδοση Προβλήµατα του πρωτοκόλλου rdt2.x: Τι γίνεται εάν το κανάλι όχι µόνον αλλοιώνει bit, αλλά χάνει και ολόκληρα πακέτα; Για την επίλυση είναι αναγκαία: Χρονοµετρητής για να υπάρχει ένα άνω (χρονικό) όριο για λήψη επιβεβαίωσης παραλαβής (ACK) ενός αποσταλέντος πακέτου µετά τον µηδενισµό του επανεκπέµπεται το πακέτο Επιπλέον πεδίο επιβεβαίωσης στο ACK ώστε να είναι σαφές για το πακέτο δεδοµένων για το οποίο απεστάλη το ACK ως επιβεβαίωση (π.χ. περιπτώσεις αποστολής 2 ACK για το ίδιο πακέτο) Λύση το πρωτόκολλο rdt3.0 (Alternating Bit Protocol) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 26
Κατασκευή Πρωτοκόλλου για Αξιόπιστη Μετάδοση rdt3.0 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 27
Κατασκευή Πρωτοκόλλου για Αξιόπιστη Μετάδοση rdt3.0 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 28
Pipeline Reliable Data Transfer Protocols Το rdt3.0 είναι stop-and-wait Καθυστερεί έναντι ενός pipelined protocol Σύγκριση (παράδειγµα): Εάν RTT=30 msec, R=1 Gbps, L=8000 bits t trans = L/R = 8 µsec Το δεύτερο πρωτόκολλο όµως στέλνει και άλλα πακέτα, ενώ το πρώτο µόνον ένα κάθε 30,008 msec ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 29
Pipeline Reliable Data Transfer Protocols 2 Απαιτείται µεγαλύτερο εύρος τιµών για τους sequence numbers Απαιτούνται µεγαλύτεροι buffers για την προσωρινή αποθήκευση περισσοτέρων πακέτων Υπάρχουν δύο λύσεις ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 30
Pipeline Reliable Data Transfer Protocols Λύση 1η Go-Back-N: Υπάρχει ένα παράθυρο από Ν το πολύ πακέτα που αποστέλλονται χωρίς να έχει έλθει ακόµα επιβεβαίωση Για αυτό και το πρωτόκολλο λέγεται και Sliding Window Protocol Λήψη πακέτου ACK από τον αποστολέα για κάποιο p από αυτά σηµαίνει επιβεβαίωση για όλα τα πακέτα έως και το p Ο παραλήπτης απορρίπτει ένα σωστό πακέτο, εάν καταφθάσει σε αυτόν εκτός σειράς (π.χ. έρθει το n, ενώ δεν έρθει το n-1), επειδή εάν το ενδιάµεσο χαθεί, ο αποστολέας θα πρέπει ούτως ή άλλως να στείλει ξανά και τα δύο ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 31
Pipeline Reliable Data Transfer Protocols Λύση 1η (α) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 32
Pipeline Reliable Data Transfer Protocols Λύση 1η (β) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 33
Pipeline Reliable Data Transfer Protocols Λύση 1η (γ) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 34
Pipeline Reliable Data Transfer Protocols Λύση 1η (δ) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 35
Pipeline Reliable Data Transfer Protocols Λύση 2η (α) Selective Repeat (SR) Απαιτεί ACK για κάθε πακέτο Πλεονέκτηµα ότι η επανεκποµπή πακέτων γίνεται µόνον για τα ανεπιβεβαίωτα Το εύρος τιµών για τον sequence number είναι διπλάσιο από το µέγεθος του παραθύρου Για να µην υπάρξει σύγχυση µεταξύ αριθµού σε επανεκπεµπόµενο πακέτο και σε ένα που αποστέλλεται για πρώτη φορά ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 36
Pipeline Reliable Data Transfer Protocols Λύση 2η (β) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 37
Pipeline Reliable Data Transfer Protocols Λύση 2η (γ) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 38
Pipeline Reliable Data Transfer Protocols Λύση 2η (δ) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 39
Pipeline Reliable Data Transfer Protocols Λύση 2η (ε) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 40
Pipeline Reliable Data Transfer Protocols Λύση 2η (στ) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 41
Σύνοψη Μηχανισµών για Αξιόπιστη Μεταφορά εδοµένων ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 42
Connection-Oriented Transport: TCP Βασικά Χαρακτηριστικά: Connection-Oriented Απαιτείται handshaking ( three-way ) για δηµιουργία σύνδεσης Προσοχή: εν δηµιουργείται σύνδεση από-άκρο-σε-άκρο όπως σε δίκτυα µε circuit switching εν δηµιουργείται καν εικονικό κύκλωµα όπως π.χ. µε το ATM, αφού οι ενδιάµεσοι κόµβοι δεν διατηρούν καµία πληροφορία για την κατάσταση της σύνδεσης Αυτά λαµβάνουν χώρα µέσω του TCP µόνον στους τερµατικούς υπολογιστές ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 43
Connection-Oriented Transport: TCP 2 Άλλα Βασικά Χαρακτηριστικά: Παρέχεται Μεταφορά εδοµένων full-duplex Μία TCP Σύνδεση είναι πάντοτε Σηµείου-προς- Σηµείο Συνέπεια: εν µπορούµε να έχουµε Multicasting Αποστολή εδοµένων: Μέσω χρήσης send buffer Το TCP παίρνει segments το πολύ Maximum Segment Size (MSS) ως προς τα καθαρά δεδοµένα και τα αποστέλλει ως TCP segments το πολύ 64 Kbytes ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 44
Connection-Oriented Transport: TCP 3 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 45
Connection-Oriented Transport: οµή TCP Segment Βασικά Στοιχεία Source/ Destination Port (16 bit) Sequence/ Acknowledgment Number Header Length (in 32 bit words) 4 bits Receive Window Number of bytes receiver is willing to accept (Flow Control) Internet Checksum ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 46
Connection-Oriented Transport: Φιλοσοφία TCP Segment εδοµένα διατηρούνται ως προς την σειρά των byte, αλλά όχι ως προς τα αρχικά όρια των πεδίων Sequence Number έχει να κάνει µόνο µε τον αύξοντα αριθµό byte µέσα στο ρεύµα δεδοµένων στα segments To Acknowledgement Number είναι ο α/α του byte που ο ένας Η/Υ περιµένει από τον άλλο ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 47
Connection-Oriented Transport: Παράδειγµα TELNET over TCP piggybacking ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 48
Εκτίµηση RTT και Timeout 1 Μετράται για ένα από τα εκπεµφθέντα, αλλά µη επιβεβαιωθέντα segments εν µετράται για επανεκπεµπόµενα segments Προκύπτει η σχέση (συνήθως α = 1/8): EstimatedRTT = (1 - α) * EstimatedRTT + α * SampleRTT EWMA = Exponential Weighted Moving Average Μέτρο µεταβλητότητας RTT, το: DevRTT = (1 β)*devrtt + β* SampleRTT EstimatedRTT Συνήθως β = ¼, οπότε τελικά: TimeoutInterval = EstimatedRTT + 4*DevRTT ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 49
Εκτίµηση RTT και Timeout - 2 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 50
Απλός Αποστολέας TCP ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 51
Ενδιαφέροντα Σενάρια 1 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 52
Ενδιαφέροντα Σενάρια 2 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 53
Ενδιαφέροντα Σενάρια 3 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 54
Fast Retransmit ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 55
Flow Control και Windows ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 56
ιαχείριση Συνδέσεων TCP ιορθώστε: client server ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 57
ιαχείριση Συνδέσεων TCP 2 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 58
ιαχείριση Συνδέσεων TCP 3 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 59
Αρχές Ελέγχου Συµφόρησης Σεν. 1 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 60
Αρχές Ελέγχου Συµφόρησης Σεν. 1 Απόδοση ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 61
Αρχές Ελέγχου Συµφόρησης Σεν. 2 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 62
Αρχές Ελέγχου Συµφόρησης Σεν. 2 ροµολογητής έχει buffers µε πεπερασµένο µέγεθος Πακέτα µπορούν να χαθούν εάν συµβεί υπερχείλιση Αξιόπιστες συνδέσεις λ in λ in, λόγω επανεκποµπών (λ in συν επανεκποµπές) Περιπτώσεις: Εκποµπή µόνον όταν buffer έχει χώρο & ποτέ επανεκποµπή (Σχ. 3.45a) Επανεκποµπή µόνον όταν χαθεί ένα πακέτο, π.χ. τα µισά (Σχ. 3.45b) τα 2/3 από R/2 εκποµπή και 1/3 επανεκποµπή Επανεκποµπή λόγω και πρόωρου timeout και τα 2 πακέτα φθάνουν στον παραλήπτη (Σχ. 3.45a, 2ο) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 63
Αρχές Ελέγχου Συµφόρησης Σεν. 2 Απόδοση ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 64
Αρχές Ελέγχου Συµφόρησης Σεν. 3 Επανεκποµπή και απώλεια πακέτων από υπερχείλιση π.χ. για Α C, όχι µόνον A R1, αλλά και R1 R2 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 65
Αρχές Ελέγχου Συµφόρησης Σεν. 3 Απόδοση ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 66
Προσεγγίσεις στον Έλεγχο Συµφόρησης End-to-end (π.χ. TCP) το δίκτυο δεν παρέχει βοήθεια Net-assisted (π.χ. ATM Available Bit Rate, ABR) choke packet ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 67
Προσεγγίσεις στον Έλεγχο Συµφόρησης Παράδειγµα ATM ABR Εκτός από Data cells, υπάρχουν Resource Management (RM) cells Κάθε Data cell έχει τo bit EFCI, και τα RM cells τα bit CI, NI και το πεδίο ER των 2 byte (σ. 261/2) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 68
Έλεγχος Συµφόρησης στο TCP (σ. 266) Congestion Window σε κάθε πλευρά (CongWin) LastByteSent - LastByteAcked min { CongWin, RcvWindow } Έστω µόνο η Συµφόρηση σηµαντική AIMD (Additive Increase, Multiplicative-Decrease) Μείωση εκποµπής στο ½, αλλά ποτέ µικρότερη από 1 MSS Αύξηση κατά 1 MSS / RTT Slow Start Αρχικά 1 MSS / RTT Μετά διπλασιασµός για κάθε επιβεβαίωση (εφόσον δεν συνέβη καµία απώλεια) Αντίδραση σε Timeout CongWin = 1 MSS και Slow Start έως ½ αρχικού CongWin, και µετά Additive Increase (µε την βοήθεια της µεταβλητής Threshold) ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 69
Μακροσκοπική Απόδοση του TCP ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 70
ικαιοσύνη ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 71
Μοντελοποίηση της καθυστέρησης του TCP 1 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 72
Μοντελοποίηση της καθυστέρησης του TCP 2 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 73
Μοντελοποίηση της καθυστέρησης του TCP 3 ρ. Παναγιώτης Ε. Φουληράς 2003/2004 δ. 74