Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας ίκτυα Η/Υ Μοντέλο TCP/IP Ενότητα E ρ. Ε. Μάγκος Συστήµατα Επικοινωνίας (Ε) (PC) (N) Επικοινωνίες: Εφαρµογές Υπολογιστές ίκτυα πολλές πολλοί N A N B PC A PC B PC D PC E E A E B E C PC C PC Z E A E B
Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας Κατανεµηµένες Εφαρµογές (Distributed Applications) Ανταλλαγή δεδοµένων Α Ίδιο δίκτυο ροµολογητής Β µεταξύ Η/Υ (π.χ. E-mail) Υπολογιστές Συνδέονται σε ίκτυα Α ( ιαφορετικά δίκτυα) Β ίκτυα Μεταφέρουν δεδοµένα µεταξύ Η/Υ ιευθύνσεις ιεύθυνση Internet (IP) ιεύθυνση Κάρτας ικτύου (MAC) ιεύθυνση Εφαρµογής (Port) Πρωτόκολλα (Protocols) Βασικά χαρακτηριστικά Σύνταξη Τι στέλνω; Χρόνος (Timing) Πότε το στέλνω; Σηµασία (Semantics) Τι σηµαίνει αυτό που στέλνω;
Παράδειγµα: Ανταλλαγή Αρχείων µεταξύ δύο Υπολογιστών Αποστολέας Α Ο Β υπάρχει; Είναι έτοιµος να λάβει; Πώς θα φθάσουν τα δεδοµένα στον Β; Παραλήπτης Β Ποιος είναι ο Α; Τι ακριβώς θέλει; Αυτά που έλαβα είναι αυτά που έστειλε; Ανάγκη Συνεργασίας!! Ένα εργαλείο-πρωτόκολλο για όλες τις εργασίες; ΌΧΙ! ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΠΡΩΤΟΚΟΛΛΩΝ (Πρότυπα OSI, TCP/IP) επίπεδα To Παράδειγµα των δύο Φιλοσόφων
Αναλογία: Μεταφορά µε Αεροπλάνο Μία αναλογία
Αρχιτεκτονικές Πρωτοκόλλων: Οργάνωση σε Επίπεδα (Layers) Κάθε επίπεδο επιτελεί συγκεκριµένες λειτουργίες, βάσει ορισµένων κανόνων (πρωτόκολλα). Ένα επίπεδο µπορεί να περιέχει περισσότερα από ένα πρωτόκολλα. Κάθε επίπεδο βασίζεται στις υπηρεσίες (services) του αµέσως κατωτέρου επιπέδου για τη «σκληρή» δουλειά. Κάθε επίπεδο παρέχει υπηρεσίες (services) στο αµέσως ανώτερο επίπεδο. Οι κόµβοι µπορεί να είναι λογισµικό, υλικό ή άνθρωποι. H ίδια αρχιτεκτονική πρέπει να υποστηρίζεται από τους αποστολέα και παραλήπτη!!
Επίπεδα Αρχιτεκτονικών Πρωτοκόλλων (συνέχεια) Η οργάνωση ενός συστήµατος σε επίπεδα λειτουργίας (layered), µας επιτρέπει την κατανόηση της λειτουργίας πολύπλοκων συστηµάτων. Όταν ένα σύστηµα είναι δοµηµένο σε επίπεδα, είναι εύκολο να αλλάξουµε τον τρόπο µε τον οποίο υλοποιούνται οι υπηρεσίες που παρέχονται σε ένα επίπεδο Χ, χωρίς να αλλάξει το υπόλοιπο σύστηµα, αρκεί: a) το επίπεδο Χ να παρέχει τις ίδιες υπηρεσίες στο αµέσως πιο πάνω επίπεδο, και b) το επίπεδο Χ να βασίζεται στις ίδιες υπηρεσίες του επιπέδου που είναι κάτω από αυτό. To Μοντέλο Αναφοράς TCP/IP Application Layer Transport Layer Network Layer Data Link Layer Physical Layer Επίπεδο Εφαρµογής Επίπεδο Μεταφοράς Επίπεδο ικτύου Επίπεδο Σύνδεσης εδοµένων Φυσικό Επίπεδο
To Μοντέλο Αναφοράς TCP/IP Application Layer Transport Layer Network Layer Data Link Layer Physical Layer 1. Φυσικό Επίπεδο Υπεύθυνο για τη µετάδοση δυαδικών ψηφίων µεταξύ δύο συστηµάτων του επιπέδου Σύνδεσης εδοµένων, µέσω του φυσικού καναλιού επικοινωνίας. Ασχολείται κυρίως µε Τα χαρακτηριστικά του µέσου µετάδοσης, το είδος των σηµάτων Το ρυθµό µετάδοσης, To Μοντέλο Αναφοράς TCP/IP Application Layer Transport Layer Network Layer Data Link Layer Physical Layer 2. Επίπεδο Σύνδεσης εδοµένων (ή Πρόσβασης στο ίκτυο Network Access). Υπεύθυνο για την εγκατάσταση, υποστήριξη και κατάργηση συνδέσεων µεταξύ δύο οντοτήτων επιπέδου δικτύου. Ασχολείται κυρίως µε Κανόνες πρόσβασης στο δίκτυο Ανίχνευση ή/και διόρθωση λαθών που µπορούν να συµβούν στο φυσικό επίπεδο.
Επίπεδο Σύνδεσης εδοµένων To Μοντέλο Αναφοράς TCP/IP Application Layer Transport Layer Network Layer Data Link Layer Physical Layer 3. Επίπεδο ικτύου (ή Επίπεδο Internet). Είναι υπεύθυνο κυρίως για τη δροµολόγηση (routing) των δεδοµένων που αποστέλλονται µεταξύ δύο οντοτήτων του επιπέδου µεταφοράς, αξιοποιώντας το υποδίκτυο (subnet) που τυχόν παρεµβάλλεται. «Υλοποιείται» στους ακραίους (end systems) κόµβους και στους δροµολογητές (routers) του δικτύου
Επίπεδο ικτύου To Μοντέλο Αναφοράς TCP/IP Application Layer Transport Layer Network Layer Data Link Layer Physical Layer 4. Επίπεδο Μεταφοράς. Είναι υπεύθυνο για τη µεταφορά δεδοµένων µεταξύ δύο οντοτήτων επιπέδου εφαρµογής. Καθορίζει τους κανόνες βάσει τωνοποίωνεξασφαλίζεταιη ορθή λήψη δεδοµένων,. Στον παραλήπτη, είναι υπεύθυνο για τη προώθηση των εισερχόµενων δεδοµένων στη κατάλληλη διεργασία Εκτελείται στους «ακραίους» κόµβους (end systems)
The Transport Layer To Μοντέλο Αναφοράς TCP/IP Application Layer Transport Layer Network Layer Data Link Layer Physical Layer 5. Επίπεδο Εφαρµογής. Το επίπεδο αυτό περιέχει ένα πλήθος πρωτοκόλλων και εφαρµογών, οι οποίες χρησιµοποιούνται συνήθως από τους χρήστες δικτύων. Μεταξύ άλλων, ηαίτηση& λήψη σελίδων web, ηλεκτρονική αλληλογραφία, ανταλλαγή αρχείων, chat,
Το Πρότυπο (Μοντέλο) TCP/IP Εφαρµογής Μεταφοράς ικτύου «Λογική» Σύνδεση «Λογική» Σύνδεση «Λογική» Σύνδεση Εφαρµογής Μεταφοράς ικτύου Σύνδεσης εδοµένων Φυσικό «Λογική» Σύνδεση Σύνδεσης εδοµένων Φυσικό Σε ένα δίκτυο υπολογιστών, όλαταπρωτόκολλαπου εκτελούνται, καθώς και το λογισµικό (software) και το υλικό (hardware) που τα υλοποιούν, κατατάσσονται σε ένα ή περισσότερα επίπεδα του µοντέλου TCP/IP. Πρωτόκολλα στο Μοντέλο 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 Application (Εφαρµογής) Transport (Μεταφοράς) Network ( ικτύου) Data Link (Σύνδεσης εδοµένων) Physical (Φυσικό) TCP/IP concepts
TCP/IP: Χρήση Επικεφαλίδων στα Επίπεδα (1/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: Χρήση Επικεφαλίδων στα Επίπεδα (2/2)
Επικοινωνία στο TCP/IP Αποστολέας Κάθε επίπεδο εκτελεί µία λειτουργία, και τοποθετεί µια επικεφαλίδα στα δεδοµένα, πριν τα στείλει στο επόµενο (προς τα κάτω) επίπεδο. Ενθυλάκωση (encapsulation) Παραλήπτης Στον παραλήπτη, η αντίστροφη διαδικασία εκτελείται. Κάθε επίπεδο εξετάζει την επικεφαλίδα, εκτελεί µία λειτουργία, αφαιρεί την επικεφαλίδα και προωθεί στο υψηλότερο επίπεδο Η διαδικασία συνεχίζεται ΜΕΧΡΙ τα δεδοµένα ναπαραδοθούνστην αντίστοιχη εφαρµογή! Επίπεδα, Ενθυλάκωση κ.λ.π
Επίπεδο µεταφοράς Το πρωτόκολλο TCP (Transmission Control Protocol) Υπηρεσίες αξιόπιστης παράδοσης (reliable delivery) µε από άκρη σε άκρη (end to end) ανίχνευση και διόρθωση λαθών Προσανατολισµένο στη σύνδεση (connection oriented) Το πρωτόκολλο UDP (User Datagram Protocol) Αναξιόπιστη παράδοση Μη προσανατολισµένο στη σύνδεση (connectionless) Επικεφαλίδες TCP και UDP
Επίπεδο ικτύου Στο επίπεδο ικτύου (ή Internet), το πιο σηµαντικό πρωτόκολλο είναι το IP Καθορίζει τη µορφή των πακέτων στο επίπεδο ικτύου Καθορίζει τη µορφή των διευθύνσεων των κόµβων (διεύθυνση IP) Παίρνει αποφάσεις δροµολόγησης βάσει της επικεφαλίδας IP ιάσπαση σε πακέτα Γιατί; Όριο στην ποσότητα πληροφορίας που µπορεί να λάβει ο παραλήπτης buffer size Όσο µεγαλύτερο είναι ένα πακέτο, τόσο υψηλότερη η πιθανότητα να επαναµεταδοθεί λόγω λάθους Μόνο το πακέτο που έφθασε λάθος χρειάζεται να επαναµεταδοθεί Στα δίκτυα Η/Υ, περισσότεροι από ένας κόµβοι «ανταγωνίζονται» για την πρόσβαση στο µέσο Όσο µεγαλύτερο είναι το µέγεθος ενός πακέτου, τόσο περισσότερο απασχολεί ένας κόµβος το δίκτυο Μεταγωγή (αυτοδύναµου) πακέτου: Τα πακέτα µιας µετάδοσης µπορούν να ακολουθήσουν διαφορετικά δροµολόγια ευελιξία
Το Πρωτόκολλο TCP Το TCP είναι ένα αξιόπιστο πρωτόκολλο πάνω από το IP. ηλαδή, σε µια επικοινωνία, µπορεί να: 1. Επαληθεύσει ότι τα πακέτα έφτασαν στον προορισµό τους 2. Επαληθεύσει ότι έφθασαν χωρίς σφάλµατα. 3. Εξασφαλίσει ότι τα πακέτα φθάνουν στη σωστή εφαρµογή µε τησωστήσειρά 4. Εξασφαλίζει ότι ο αποστολέας δε δηµιουργεί «συµφόρηση» στον παραλήπτη Το TCP είναι προσανατολισµένο στη σύνδεση (connection-oriented) Χειραψία (handshaking) - «Λογική σύνδεση» µεταξύ αποστολέα και παραλήπτη Στο τέλος της χειραψίας το TCP κάθε κόµβου γνωρίζει ότι ο άλλος κόµβος είναι έτοιµος να λάβει δεδοµένα.
Αρίθµηση Πακέτων στο TCP Σε κάθε πακέτο (segment) δεδοµένων εισάγεται ένας Αριθµός Ακολουθίας (Sequence Number). Οι αριθµοί ακολουθίας εξασφαλίζουν τη «σωστή σειρά» των πακέτων Κάθε πακέτο επιβεβαίωσης περιλαµβάνει έναν Αριθµό Επιβεβαίωσης (Acknowledgement Nymber). Ο αριθµός αυτός 1. Επιβεβαιώνει τα πακέτα που έχουν ληφθεί σωστά έως τη στιγµή της επιβεβαίωσης 2. Αναφέρει τον Αριθµό Ακολουθίας του επόµενου πακέτου που αναµένεται Συνδέσεις full-duplex ύο εφαρµογές µπορούν να στέλνουν data ταυτόχρονα η µία στην άλλη Πρωτόκολλα (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