Εισαγωγή Επανάληψη ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. ΤΕΙ Στερεάς Ελλάδας
Δήλωση Οι διαφάνειες βασίζονται στα βιβλία: (1) Computer Networking: A Top Down Approach Featuring the Internet, 3 rd edition, Jim Kurose, Keith Ross, Addison-Wesley, 2004. (2) Internetworking with TCP/IP, Vol. I, Douglas E. Comer, Prentice-Hall, 2000. (3) TCP/IP Tutorial and Technical Overview, Martin W. Murhammer, et. al., International Technical Support Organization, http://www.redbooks.ibm.com
Στόχοι της ενότητας Επανάληψη βασικών εννοιών για τον τρόπο λειτουργίας των εφαρμογών του Διαδικτύου Εισαγωγή στον τρόπο λειτουργίας των διαφόρων τύπων εφαρμογών πελάτηεξυπηρετητή πάνω από το Διαδίκτυο 3
Ορολογία Δικτυακών Εφαρμογών Διεργασία: πρόγραμμα που τρέχει σε ένα σύστημα Μέσα στον ίδιο κόμβο, δύο διεργασίες επικοινωνούν χρησιμοποιώντας Inter- Process Communication IPC (ορίζεται από το ΛΣ) Διεργασίες που τρέχουν σε διαφορετικά συστήματα επικοινωνούν με ένα πρωτόκολλο επιπέδου εφαρμογής 4 Πράκτορας χρήστη (user agent): αλληλεπιδρά με το χρήστη (προς τα «πάνω») και το δίκτυο (προς τα «κάτω») Υλοποιεί τη διεπαφή με το χρήστη και το πρωτόκολλο εφαρμογής Web: browser E-mail: mail reader streaming audio/video: media player
Αρχιτεκτονική Εφαρμογών στο Internet Το μοντέλο πελάτη-εξυπηρετητή (client-server model) είναι ένα διαδεδομένο μοντέλο ανάπτυξης και χρήσης εφαρμογών στο Internet
Μοντέλο πελάτη-εξυπηρετητή Η τυπική δικτυακή εφαρμογή έχει δύο τμήματα: πελάτη και εξυπηρετητή Πελάτης: Ξεκινάει την επικοινωνία με τον εξυπηρετητή Συνήθως ζητά κάποια από τις υπηρεσίες του εξυπηρετητή Web: ο πελάτης υλοποιείται στον browser Εξυπηρετητής: 6 application transport network data link physical Παρέχει την υπηρεσία που ζητήθηκε από τον πελάτη π.χ., ο εξυπηρετητής Web στέλνει τη σελίδα που ζητήθηκε request reply application transport network data link physical
Γενική αρχιτεκτονική πελάτηεξυπηρετητή 7
Κλάσεις αρχιτεκτονικής πελάτηεξυπηρετητή 8
Αρχιτεκτονική πελάτηεξυπηρετητή 3 επιπέδων (3-tier) 9
Ενδιάμεσο λογισμικό (middleware) I Τυποποιημένες διεπαφές και πρωτόκολλα μεταξύ πελατών και βάσεων δεδομένων Κρύβει την πολυπλοκότητα των πηγών δεδομένων από τον τελικό χρήστη Συμβατό με ένα εύρος επιλογών πελάτη και εξυπηρετητή Όλες οι εφαρμογές λειτουργούν πάνω από μια ομοιόμορφη διεπαφή προγραμματισμού εφαρμογών 10
Middleware II 11
Τρόπος θεώρησης του middleware 12
Μηχανισμοί middleware Ενδιάμεσο Λογισμικό με Μηνύματα (Message- Oriented Middleware) Κλήσεις Απομακρυσμένης Διαδικασίας (Remote Procedure Calls RPC) Object Request Brokers ORBs 13
Λογική και φυσική επικοινωνία στο TCP/IP 14
Επικοινωνία διεργασιών στο Internet Η διεργασία στέλνει/ λαμβάνει μηνύματα προς/από την υποδοχή (socket) Socket: Προγραμματιστική διεπαφή (API) client process socket UDP ή TCP Ελέγχεται από τον προγραμματιστή Internet server process socket UDP ή TCP (1) επιλογή πρωτοκόλλου μεταφοράς (2) ορισμός παραμέτρων επικοινωνίας Ελέγχεται από το ΛΣ 15
Τι υπηρεσία επιπέδου μεταφοράς χρειάζεται μια εφαρμογή; Απώλεια δεδομένων Ορισμένες εφαρμογές (π.χ., ήχος) αντέχουν απώλειες Άλλες εφαρμογές (π.χ., μεταφορά αρχείων, telnet) απαιτούν 100% αξιόπιστη μεταφορά δεδομένων Χρονισμός Ορισμένες εφαρμογές (π.χ., διαδικτυακή τηλεφωνία, διαδραστικά παιχνίδια) απαιτούν χαμηλή καθυστέρηση 16 Εύρος Ζώνης Ορισμένες εφαρμογές (π.χ., πολυμέσα) απαιτούν μια ελάχιστη ποσότητα εύρους ζώνης να είναι διαθέσιμη Άλλες εφαρμογές κάνουν χρήση όσου εύρους ζώνης διαθέτουν
Απαιτήσεις των εφαρμογών από την υπηρεσία επιπέδου μεταφοράς Εφαρμογή Απώλεια Εύρος Ζώνης Ευαισθησία Χρόνου file transfer e-mail Web documents real-time audio/video stored audio/video interactive games instant messaging no loss no loss no loss loss-tolerant loss-tolerant loss-tolerant no loss elastic elastic elastic audio: 5kbps-1Mbps video:10kbps-5mbps same as above few kbps up elastic no no no yes, 100 s msec yes, few secs yes, 100 s msec yes and no 17
Υπηρεσίες επιπέδου μεταφοράς που παρέχει το Internet στις εφαρμογές Το Internet παρέχει δύο ειδών υπηρεσίες στις εφαρμογές που το χρησιμοποιούν: την υπηρεσία με «σύνδεση» (connection-oriented transport) την υπηρεσία χωρίς σύνδεση (connectionless transport) 18
Υπηρεσία με Σύνδεση (Connection-oriented Transport) Στην υπηρεσία με «σύνδεση», τα τελικά συστήματα προετοιμάζονται για τη μετάδοση των πακέτων Κάθε πακέτο περιέχει τη διεύθυνση προορισμού του και δρομολογείται αξιόπιστα και ανεξάρτητα από τα υπόλοιπα, βήμα-βήμα μέσα από το πλέγμα των διασυνδεδεμένων δρομολογητών διατηρώντας τη σειρά του Στο Internet η αξιόπιστη υπηρεσία με σύνδεση προσφέρεται από το πρωτόκολλο TCP 19
Υπηρεσία χωρίς Σύνδεση (Connectionless Transport) Στην υπηρεσία χωρίς σύνδεση, κάθε πακέτο περιέχει τη διεύθυνση προορισμού του και δρομολογείται ανεξάρτητα από τα υπόλοιπα, βήμα-βήμα μέσα από το πλέγμα των διασυνδεδεμένων δρομολογητών, χωρίς να παρέχεται αξιοπιστία κατά τη μεταφορά και χωρίς να διατηρείται η σειρά των πακέτων Στο Internet η υπηρεσία χωρίς σύνδεση προσφέρεται από το πρωτόκολλο UDP 20
Συνδέσεις και δίκτυα μεταγωγής πακέτων «Σύνδεση» ονομάζουμε την προετοιμασία των τελικών συστημάτων, μέσω ανταλλαγών κατάλληλων μηνυμάτων, ώστε να παρέχεται αξιοπιστία στις εφαρμογές που τη χρησιμοποιούν Η αξιόπιστη υπηρεσία με σύνδεση προσφέρεται μεταξύ τελικών συστημάτων (end-to-end) χωρίς να εμπλέκονται οι ενδιάμεσοι δρομολογητές Κάθε «σύνδεση» δεσμεύει χώρους προσωρινής αποθήκευσης (buffers) στα τελικά συστήματα 21
Αλληλεπίδραση πελάτη εξυπηρετητή με σύνδεση Επισκόπηση της αλληλεπίδρασης τμημάτων λογισμικού στην υπηρεσία με σύνδεση (TCP) 22
Υπηρεσίες πρωτοκόλλων επιπέδου μεταφοράς του Internet Υπηρεσία TCP: connection-oriented: απαιτείται εγκατάσταση σύνδεσης μεταξύ πελάτη και εξυπηρετητή μεταφορά δεδομένων χωρίς σφάλματα και με τη σειρά έλεγχος ροής: ο αποστολέας δεν θα κατακλύσει τον παραλήπτη έλεγχος συμφόρησης: αυξομείωση ρυθμού μετάδοσης αποστολέα όταν το δίκτυο είναι υπερφορτωμένο δεν παρέχει: χρονισμό, εγγυήσεις ελάχιστου εύρους ζώνης Υπηρεσία UDP: μη-αξιόπιστη μεταφορά δεδομένων μεταξύ διεργασιών αποστολέα και παραλήπτη δεν παρέχει: δημιουργία σύνδεσης, αξιοπιστία, έλεγχο ροής, έλεγχο συμφόρησης, χρονισμό ή εγγυήσεις εύρους ζώνης Ερ: Γιατί υπάρχει το UDP; 23
Πρωτόκολλα μεταφοράς που χρησιμοποιούν οι εφαρμογές Εφαρμογή e-mail απομακρυσμένη πρόσβαση Web μεταφορά αρχείων streaming multimedia Τηλεφωνία στο Internet Πρωτόκολλο Εφαρμογής SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] RTSP, RTP, HTTP, ή ιδιωτικό VoIP ή ιδιωτικό Πρωτόκολλο Μεταφοράς TCP TCP TCP TCP TCP ή UDP τυπικά UDP 24
Υπηρεσίες και πρωτόκολλα επιπέδου μεταφοράς Αξιόπιστη παράδοση, με τη σειρά: TCP έλεγχος συμφόρησης έλεγχος ροής εγκατάσταση σύνδεσης (connection setup) Μη-αξιόπιστη παράδοση, χωρίς σειρά: UDP απλά η επέκταση της βέλτιστης προσπάθειας ( best-effort ) του IP application transport network data link physical Υπηρεσίες που δεν παρέχονται: εγγυήσεις καθυστέρησης 25 εγγυήσεις εύρους ζώνης network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical
Πολύπλεξη/Αποπολύπλεξη Αποπολύπλεξη στον παραλήπτη: Παράδοση των τμημάτων που λαμβάνονται στη σωστή υποδοχή = socket = process Πολύπλεξη στον αποστολέα: Συλλογή δεδομένων από πολλές υποδοχές, τοποθέτηση επικεφαλίδων (αργότερα θα χρησιμοποιηθούν για αποπολύπλεξη) εφαρμογής μεταφοράς δικτύου ζεύξης δεδομένων φυσικό P3 P1 εφαρμογής μεταφοράς δικτύου ζεύξης δεδομένων φυσικό Κόμβος 1 Κόμβος 2 26 P2 P4 εφαρμογής μεταφοράς δικτύου ζεύξης δεδομένων φυσικό Κόμβος 3
Πολύπλεξη/Αποπολύπλεξη Κάθε αριθμός θύρας (port number) είναι ένας ακέραιος 16 bit (από 0-65535) Οι αριθμοί από 0-1023 είναι δεσμευμένοι: προκαθορισμένοι (well-known) αριθμοί θυρών για χρήση από πρωτόκολλα εφαρμογών όπως το ΗΤΤΡ (αριθμός θύρας 80) ή το FTP (21) Ο αριθμός θύρας συσχετίζεται με μια υποδοχή, που με τη σειρά της συνδέεται με μια διεργασία 27
Πως δουλεύει η αποπολύπλεξη Ο κόμβος λαμβάνει αυτοδύναμα πακέτα (ΑΠ) IP κάθε ΑΠ έχει διεύθυνση IP πηγής, και διεύθυνση IP προορισμού κάθε ΑΠ μεταφέρει ένα τμήμα (segment) επιπέδου μεταφοράς κάθε τμήμα έχει αριθμό θύρας πηγής και προορισμού (προκαθορισμένοι αριθμοί θυρών για συγκεκριμένες εφαρμογές) Ο κόμβος χρησιμοποιεί διευθύνσεις ΙΡ, πρωτόκολλα επιπέδου μεταφοράς & αριθμούς θυρών για να στείλει το τμήμα στην κατάλληλη υποδοχή 28 32 bits source port # dest port # άλλα πεδία επικεφαλίδας δεδομένα εφαρμογής (message) μορφή τμήματος TCP/UDP
Επανάληψη: PDUs και SDUs 29
Προκαθορισμένες θύρες (Wellknown ports) Θύρα Πρωτόκολλο Χρήση 21 FTP Μεταφορά αρχείων 23 Telnet Απομακρυσμένη πρόσβαση 25 SMTP E-mail 69 TFTP Trivial File Transfer Protocol 79 Finger Αναζήτηση πληροφοριών για χρήστη 80 HTTP World Wide Web 110 POP-3 Απομακρυσμένη πρόσβαση e-mail 119 NNTP USENET news 30
Αποπολύπλεξη χωρίς σύνδεση I Μια υποδοχή UDP προσδιορίζεται από τη δυάδα (2-tuple): (διεύθυνση IP προορισμού, αριθμός θύρας προορισμού) Όταν ένας κόμβος λαμβάνει ένα τμήμα UDP: ελέγχει τον αριθμό θύρας προορισμού στο τμήμα κατευθύνει το τμήμα UDP στην υποδοχή με αυτόν τον αριθμό θύρας ΑΠ IP συνήθως κατευθύνονται στην ίδια υποδοχή σε εξυπηρετητές χωρίς σύνδεση 31
Αποπολύπλεξη χωρίς σύνδεση II P2 9157 P3 6428 P1 P1 5775 SP: 6428 DP: 9157 SP: 6428 DP: 5775 πελάτης IP: A SP: 9157 DP: 6428 εξυπηρετητής IP: C SP: 5775 DP: 6428 πελάτης IP: B Οι διεργασίες-πελάτες P1 (αριθμός θύρας 5775), P2 (αριθμός θύρας 9157) επικοινωνούν χωρίς σύνδεση με την ίδια διεργασία εξυπηρετητή (Ρ3, με αριθμό θύρας 6428) 32
Αποπολύπλεξη με σύνδεση Ι Μια υποδοχή TCP προσδιορίζεται από μια τετράδα (4-tuple): διεύθυνση IP πηγής αριθμός θύρας πηγής διεύθυνση IP προορισμού αριθμός θύρας προορισμού Ο παραλήπτης χρησιμοποιεί την τετράδα για να στείλει το τμήμα στην κατάλληλη υποδοχή Ένας εξυπηρετητής μπορεί να υποστηρίζει πολλές ταυτόχρονες υποδοχές TCP: 33 κάθε υποδοχή προσδιορίζεται από τη δική της τετράδα Οι εξυπηρετητές Web έχουν διαφορετικές υποδοχές για κάθε πελάτη που συνδέεται το μη επίμονο HTTP θα έχει διαφορετική υποδοχή για κάθε αίτηση
Αποπολύπλεξη με σύνδεση ΙΙ P2 9157 server 80 SP: 9157 DP: 80 πελάτης IP: A εξυπηρετητής IP: C Η διεργασία-πελάτης Ρ2 (αριθμός θύρας 9157) κάνει αίτηση στον εξυπηρετητή που «ακούει» στη θύρα 80 (web server) 34
Αποπολύπλεξη με σύνδεση ΙΙI P2 9157 server 80 P1 P1 5775 SP: 9157 DP: 80 SP: 5775 DP: 80 πελάτης IP: A εξυπηρετητής IP: C πελάτης IP: B Στη συνέχεια και η διεργασία-πελάτης Ρ1 (αριθμός θύρας 5775) κάνει αίτηση στον εξυπηρετητή που «ακούει» στη θύρα 80 35
Αποπολύπλεξη με σύνδεση ΙV P2 9157 Σύνδεση TCP P3 1220 server 80 P1 P1 5775 SP: 1220 DP: 9157 πελάτης IP: A SP: 9157 DP: 1220 εξυπηρετητής IP: C SP: 5775 DP: 80 πελάτης IP: B Ο εξυπηρετητής δημιουργεί αρχικά τη διεργασία παιδί Ρ3 (αριθμός θύρας 1220) η οποία θα αναλάβει την εξυπηρέτηση της διεργασίας Ρ2 36
Αποπολύπλεξη με σύνδεση V P2 9157 Σύνδεση TCP P3 server P4 1220 80 4330 Σύνδεση TCP P1 P1 5775 SP: 1220 DP: 9157 SP: 4330 DP: 5775 πελάτης IP: A SP: 9157 DP: 1220 εξυπηρετητής IP: C SP: 5775 DP: 4330 πελάτης IP: B Ο εξυπηρετητής δημιουργεί μια δεύτερη διεργασία Ρ4 (αριθμός θύρας 4330). Οι Ρ3 και Ρ4 αναλαμβάνουν την «ταυτόχρονη» εξυπηρέτηση των Ρ2 και Ρ1. O εξυπηρετητής αναμένει την άφιξη νέων αιτήσεων 37
Αριθμοί θυρών TCP και UDP Η επικεφαλίδα του ΙΡ περιέχει το πρωτόκολλο επιπέδου μεταφοράς για το οποίο προορίζεται ένα πακέτο Οι χώροι διευθύνσεων τελικού σημείου (θύρες) UDP και TCP είναι διαφορετικοί (μια υποδοχή TCP με αριθμό θύρας Χ μπορεί να συνυπάρχει στο ίδιο σύστημα με μια υποδοχή UDP με αριθμό θύρας Χ) Τα πακέτα TCP με αριθμό θύρας Χ θα παραδοθούν σε διαφορετική διεργασία από τα πακέτα UDP με αριθμό θύρας X 38