Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής ίκτυα Η/Υ Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα Μοντέλο TCP/IP πολλές πολλοί N A N B Ενότητα E PC A PC B PC D PC E E A E B E C PC C PC Z E A E B ρ. Ε. Μάγκος Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας Πρωτόκολλα (Protocols) Κατανεµηµένες Εφαρµογές (Distributed Applications) Ανταλλαγή δεδοµένων µεταξύ Η/Υ (π.χ. E-mail) Υπολογιστές Συνδέονται σε ίκτυα ίκτυα Μεταφέρουν δεδοµένα µεταξύ Η/Υ Α Ίδιο δίκτυο Β ροµολογητής Α ( ιαφορετικά δίκτυα) Β ιευθύνσεις ιεύθυνση Internet (IP) ιεύθυνση Κάρτας ικτύου (MAC) ιεύθυνση Εφαρµογής (Port) Βασικά χαρακτηριστικά Σύνταξη Τι στέλνω; Χρόνος (Timing) Πότε το στέλνω; Σηµασία (Semantics) Τι σηµαίνει αυτό που στέλνω;
Παράδειγµα: Ανταλλαγή Αρχείων µεταξύ δύο Υπολογιστών To Παράδειγµα των δύο Φιλοσόφων Αποστολέας Α ΟΒυπάρχει; Είναι έτοιµος να λάβει; Πώς θα φθάσουν τα δεδοµένα στον Β; Παραλήπτης Β Ποιος είναι ο Α; Τι ακριβώς θέλει; Αυτά που έλαβα είναι αυτά που έστειλε; Ανάγκη Συνεργασίας!! Ένα εργαλείο-πρωτόκολλο για όλες τις εργασίες; ΌΧΙ! ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΠΡΩΤΟΚΟΛΛΩΝ (Πρότυπα OSI, TCP/IP) επίπεδα Αναλογία: Μεταφορά µε Αεροπλάνο Μία αναλογία
Αρχιτεκτονικές Πρωτοκόλλων: Οργάνωση σε Επίπεδα (Layers) Κάθε επίπεδο επιτελεί συγκεκριµένες λειτουργίες, βάσει ορισµένων κανόνων (πρωτόκολλα). Ένα επίπεδο µπορεί να περιέχει περισσότερα από ένα πρωτόκολλα. Κάθε επίπεδο βασίζεται στις υπηρεσίες (services) του αµέσως κατωτέρου επιπέδου για τη «σκληρή» δουλειά. Κάθε επίπεδο παρέχει υπηρεσίες (services) στο αµέσως ανώτερο επίπεδο. Οι κόµβοι µπορεί να είναι λογισµικό, υλικό ή άνθρωποι. H ίδια αρχιτεκτονική πρέπει να υποστηρίζεται από τους αποστολέα και παραλήπτη!! Επίπεδα Αρχιτεκτονικών Πρωτοκόλλων (συνέχεια) To Μοντέλο Αναφοράς TCP/IP Η οργάνωση ενός συστήµατος σε επίπεδα λειτουργίας (layered), µας επιτρέπει την κατανόηση της λειτουργίας πολύπλοκων συστηµάτων. Όταν ένα σύστηµα είναιδοµηµένο σε επίπεδα, είναι εύκολο να αλλάξουµε τον τρόπο µε τον οποίο υλοποιούνται οι υπηρεσίες που παρέχονται σε ένα επίπεδο Χ, χωρίς να αλλάξει το υπόλοιπο σύστηµα, αρκεί: a) το επίπεδο Χ να παρέχει τις ίδιες υπηρεσίες στο αµέσως πιο πάνω επίπεδο, και b) το επίπεδο Χ να βασίζεται στις ίδιες υπηρεσίες του επιπέδου που είναι κάτω από αυτό. Επίπεδο Εφαρµογής Επίπεδο Μεταφοράς Επίπεδο ικτύου Επίπεδο Σύνδεσης εδοµένων Φυσικό Επίπεδο
To Μοντέλο Αναφοράς TCP/IP To Μοντέλο Αναφοράς TCP/IP 1. Φυσικό Επίπεδο Υπεύθυνο για τη µετάδοση δυαδικών ψηφίων µεταξύ δύο συστηµάτων του επιπέδου Σύνδεσης εδοµένων, µέσω του φυσικού καναλιού επικοινωνίας. Ασχολείται κυρίως µε Τα χαρακτηριστικά του µέσου µετάδοσης, το είδος των σηµάτων 2. Επίπεδο Σύνδεσης εδοµένων (ή Πρόσβασης στο ίκτυο Network Access). Υπεύθυνο για την εγκατάσταση, υποστήριξη και κατάργηση συνδέσεων µεταξύ δύο οντοτήτων επιπέδου δικτύου. Ασχολείται κυρίως µε Κανόνες πρόσβασης στο δίκτυο Το ρυθµό µετάδοσης, Ανίχνευση ή/και διόρθωση λαθών που µπορούν να συµβούν στο φυσικό επίπεδο. Επίπεδο Σύνδεσης εδοµένων To Μοντέλο Αναφοράς TCP/IP 3. Επίπεδο ικτύου (ή Επίπεδο Internet). Είναι υπεύθυνο κυρίως για τη δροµολόγηση (routing) των δεδοµένων που αποστέλλονται µεταξύ δύο οντοτήτων του επιπέδου µεταφοράς, αξιοποιώντας το υποδίκτυο (subnet) που τυχόν παρεµβάλλεται. «Υλοποιείται» στους ακραίους (end systems) κόµβους και στους δροµολογητές (routers) του δικτύου
Επίπεδο ικτύου To Μοντέλο Αναφοράς TCP/IP 4. Επίπεδο Μεταφοράς. Είναι υπεύθυνο για τη µεταφορά δεδοµένων µεταξύ δύο οντοτήτων επιπέδου εφαρµογής. Καθορίζει τους κανόνες βάσει τωνοποίωνεξασφαλίζεταιη ορθήλήψηδεδοµένων,. Στον παραλήπτη, είναι υπεύθυνο για τη προώθηση των εισερχόµενων δεδοµένων στη κατάλληλη διεργασία Εκτελείται στους «ακραίους» κόµβους (end systems) The To Μοντέλο Αναφοράς TCP/IP 5. Επίπεδο Εφαρµογής. Το επίπεδο αυτό περιέχει ένα πλήθος πρωτοκόλλων και εφαρµογών, οι οποίες χρησιµοποιούνται συνήθως από τους χρήστες δικτύων. Μεταξύ άλλων, ηαίτηση& λήψη σελίδων web, ηλεκτρονική αλληλογραφία, ανταλλαγή αρχείων, chat,
Το Πρότυπο (Μοντέλο) TCP/IP Πρωτόκολλα στο Μοντέλο TCP/IP (και το Επίπεδο στο οποίο ανήκουν) Εφαρµογής Μεταφοράς ικτύου Σύνδεσης εδοµένων Φυσικό «Λογική» Σύνδεση «Λογική» Σύνδεση «Λογική» Σύνδεση «Λογική» Σύνδεση Εφαρµογής Μεταφοράς ικτύου Σύνδεσης εδοµένων Φυσικό Σε ένα δίκτυο υπολογιστών, όλα τα πρωτόκολλα που εκτελούνται, καθώς και το λογισµικό (software) και το υλικό (hardware) που τα υλοποιούν, κατατάσσονται σε ένα ή περισσότερα επίπεδα του µοντέλου TCP/IP. Application (Εφαρµογής) Transport (Μεταφοράς) Network ( ικτύου) Data Link (Σύνδεσης εδοµένων) Physical (Φυσικό) HTTP, SMTP, DNS FTP, TELNET, POP3, IMAP4 TCP,UDP IP/IPv6, ICMP ARP, Ethernet, Token Ring, FDDI, ATM, Frame Relay TP, Coaxial, Fiber-Optic, Wireless TCP/IP και OSI TCP/IP concepts Application (Εφαρµογής) Transport (Μεταφοράς) Network ( ικτύου) Data Link (Σύνδεσης εδοµένων) Physical (Φυσικό)
TCP/IP: Χρήση Επικεφαλίδων στα Επίπεδα (1/2) TCP/IP: Χρήση Επικεφαλίδων στα Επίπεδα (2/2) Application data Application Transport data TCP-h Transport Network Data Link Physical User PC data TCP-h IP-h data TCP-h IP-h Ν-h Copper, Fiber Optic, Network Data Link Physical Webserver Επικοινωνία στο TCP/IP Επίπεδα, Ενθυλάκωση κ.λ.π Αποστολέας Κάθε επίπεδο εκτελεί µία λειτουργία, και τοποθετεί µια επικεφαλίδα στα δεδοµένα, πριν τα στείλει στο επόµενο (προς τα κάτω) επίπεδο. Ενθυλάκωση (encapsulation) Παραλήπτης Στον παραλήπτη, η αντίστροφη διαδικασία εκτελείται. Κάθε επίπεδο εξετάζει την επικεφαλίδα, εκτελεί µία λειτουργία, αφαιρεί την επικεφαλίδα και προωθεί στο υψηλότερο επίπεδο Η διαδικασία συνεχίζεται ΜΕΧΡΙ τα δεδοµένα να παραδοθούν στην αντίστοιχη εφαρµογή!
Επίπεδο µεταφοράς Επικεφαλίδες TCP και UDP Το πρωτόκολλο TCP (Transmission Control Protocol) Υπηρεσίες αξιόπιστης παράδοσης (reliable delivery) µε από άκρη σε άκρη (end to end) ανίχνευση και διόρθωση λαθών Προσανατολισµένο στη σύνδεση (connection oriented) Το πρωτόκολλο UDP (User Datagram Protocol) Αναξιόπιστη παράδοση Μη προσανατολισµένο στη σύνδεση (connectionless) Επίπεδο ικτύου ιάσπαση σε πακέτα Γιατί; Στο επίπεδο ικτύου (ή Internet), το πιο σηµαντικό πρωτόκολλο είναι το IP Καθορίζει τη µορφή των πακέτων στο επίπεδο ικτύου Καθορίζει τη µορφή των διευθύνσεων των κόµβων (διεύθυνση IP) Παίρνει αποφάσεις δροµολόγησης βάσει της επικεφαλίδας IP Όριο στην ποσότητα πληροφορίας που µπορεί να λάβει ο παραλήπτης buffer size Όσο µεγαλύτερο είναι ένα πακέτο, τόσο υψηλότερη η πιθανότητα να επαναµεταδοθεί λόγω λάθους Μόνο το πακέτο που έφθασε λάθος χρειάζεται να επαναµεταδοθεί Στα δίκτυα Η/Υ, περισσότεροι από ένας κόµβοι «ανταγωνίζονται» για την πρόσβαση στο µέσο Όσο µεγαλύτερο είναι το µέγεθος ενός πακέτου, τόσο περισσότερο απασχολεί ένας κόµβος το δίκτυο Μεταγωγή (αυτοδύναµου) πακέτου: Τα πακέτα µιας µετάδοσης µπορούν να ακολουθήσουν διαφορετικά δροµολόγια ευελιξία
Το Πρωτόκολλο TCP Το TCP είναι ένα αξιόπιστο πρωτόκολλο πάνω από το IP. ηλαδή, σε µια επικοινωνία, µπορεί να: 1. Επαληθεύσει ότι τα πακέτα έφτασαν στον προορισµό τους 2. Επαληθεύσει ότι έφθασαν χωρίς σφάλµατα. 3. Εξασφαλίσει ότι τα πακέτα φθάνουν στη σωστή εφαρµογή µε τησωστήσειρά 4. Εξασφαλίζει ότι ο αποστολέας δε δηµιουργεί «συµφόρηση» στον παραλήπτη Το TCP είναι προσανατολισµένο στη σύνδεση (connection-oriented) Χειραψία (handshaking) - «Λογική σύνδεση» µεταξύ αποστολέα και παραλήπτη Στο τέλος της χειραψίας το TCP κάθε κόµβου γνωρίζει ότι ο άλλος κόµβος είναι έτοιµος να λάβει δεδοµένα. Αρίθµηση Πακέτων στο TCP Αξιοπιστία στο πρωτόκολλο TCP Σε κάθε πακέτο (segment) δεδοµένων εισάγεται ένας Αριθµός Ακολουθίας (Sequence Number). Οι αριθµοί ακολουθίας εξασφαλίζουν τη «σωστή σειρά» των πακέτων Κάθε πακέτο επιβεβαίωσης περιλαµβάνει έναν Αριθµό Επιβεβαίωσης (Acknowledgement Nymber). Ο αριθµός αυτός 1. Επιβεβαιώνει τα πακέτα που έχουν ληφθεί σωστά έως τη στιγµή της επιβεβαίωσης 2. Αναφέρει τον Αριθµό Ακολουθίας του επόµενου πακέτου που αναµένεται Συνδέσεις full-duplex ύο εφαρµογές µπορούν να στέλνουν data ταυτόχρονα η µία στην άλλη
Λάθη Ανίχνευση και ιόρθωση Λαθών στο TCP Πακέτα που χάθηκαν ή αλλοιώθηκαν Ανίχνευση λαθών Άθροισµα Ελέγχου (checksum) ιόρθωση λαθών PAR (Positive Acknowledgement with Retransmission) O Α στέλνει ξανά όλα τα πακέταγιαταοποίαδεν έλαβε επιβεβαίωση Έλεγχος Ροής (Flow Control) στο TCP Ο παραλήπτης γνωστοποιεί το µέγεθος του input buffer (window) Ητιµή window περιλαµβάνεται στα πακέτα επιβεβαίωσης (Αcknowledgment Segment ACK) που λαµβάνει το TCP Εάν η τιµή window γίνει πλήρης ο Α «παγώνει» τη µετάδοση APPLET. http://media.pearsoncmg.com/aw/aw_kurose_network_2/applets/go-back-n/go-back-n.html Έλεγχος Ροής: Sliding Window Depiction Έλεγχος Ροής: Sliding Window Depiction
Πρωτόκολλα (Protocols), Θύρες (Ports) και Sockets ύο πρωτόκολλα µεταφοράς (TCP & UDP), πολλές εφαρµογές! Πως βρίσκουν το δρόµο τουςταδεδοµένα στον σωρό (stack) των πρωτοκόλλων; Το IP χρησιµοποιεί αριθµούς πρωτοκόλλων (protocol numbers) ώστε να καθορίσει το σωστό πρωτόκολλο µεταφοράς Τα TCP και UDP χρησιµοποιούν αριθµούς θυρών (Port numbers) ώστε να καθορίσουν τη σωστή εφαρµογή Θύρες (Ports) και Sockets To TCP είναι υπεύθυνο για την από-πολυπλεξία και κατανοµή της εισερχόµενης πληροφορίας στα αντίστοιχα προγράµµατα. Ο τελικός παραλήπτης των µηνυµάτων κάθε κόµβου είναι ένα 16-bit αφηρηµένο σηµείου προορισµού Θύρα πρωτοκόλλου -port) Η εκχώρηση θυρών ελέγχεται από την IANA εσµευµένες (Reserved) / 0-1024. δηµοφιλείς (well-known) εφαρµογές Π.χ. web, mail, chat, ftp, telnet, (http://www.iana.org/assignments/port-numbers) Καταχωρηµένες (Registered) / 1024-49151 Ιδιωτικές (Private) / 49152-65535. (Ελεύθερες) SOCKET = ιεύθυνση IP & θύρα Προσδιορίζει µοναδικά µια δικτυακή εφαρµογή σε ολόκληρο το Internet