Upload
others
View
27
Download
0
Embed Size (px)
Citation preview
Δίκτυα Επικοινωνιών – Δίκτυα Υπολογιστών και Στρώμα ΕφαρμογήςΔιδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας
ΔΠΜΣ «Τεχνο-‐Οικονομικά Συστήματα»Τεχνολογία Πληροφορίας και Τηλεπικοινωνιών
Ιστοσελίδα Μαθήματος
¨ http://people.cn.ntua.gr/jenny/index.php/courses
¨ e-mail επικοινωνίας: ¤ [email protected]¤ [email protected]
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
2
Βιβλιογραφία
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
3
¨ J. Kurose and K. Ross, “Computer Networking – A top down approach”, Pearson, 6th edition, 2013
Στρώμα Εφαρμογής – Εισαγωγή
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
4
¨ Υλοποίηση δικτυακών εφαρμογών (network applications ή apps)¤ υπηρεσίες στρώματος μεταφοράς στις οποίες βασίζεται η υλοποίηση μιας δικτυακής εφαρμογής
¤ μοντέλο πελάτη-‐εξυπηρετητή (client-server)¤ μοντέλο ομότιμων σταθμών (peer-to-peer – P2P)
¨ Πρωτόκολλα στρώματος εφαρμογής¤ HTTP¤ FTP¤ SMTP/POP3/IMAP (e-mail)¤ DNS
Δικτυακές Εφαρμογές –Παραδείγματα
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
5
¨ Ηλεκτρονικό ταχυδρομείο (e-mail)¨ Web¨ απομακρυσμένη πρόσβαση (remote login)¨ P2P διαμοιρασμός αρχείων¨ video streaming (YouTube, Netflix, κ.λπ.)¨ Voice over IP – VoIP (π.χ. Skype)¨ Internet Relay Chat (IRC) ή άλλες εφαρμογές text
messaging¨ social networking
Δημιουργία δικτυακής εφαρμογής
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
6
¨ Για τη δημιουργία μιας δικτυακής εφαρμογής, πρέπει να γραφτούν προγράμματα (λογισμικό) που να:¤ τρέχουν σε διαφορετικούς
τερματικούς σταθμούς¤ επικοινωνούν μέσω δικτύου
n π.χ., το λογισμικό ενός εξυπηρετητή Ιστού (Web server) επικοινωνεί με αυτό ενός Web browser
¨ Δεν χρειάζεται να γραφτεί λογισμικό για τους ενδιάμεσους κόμβους του δικτύου¤ οι συσκευές αυτές δεν εκτελούν
εφαρμογές των χρηστών
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
applicationtransportnetworkdata linkphysical
Αρχιτεκτονικές Δικτυακών Εφαρμογών
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
7
¨ Τυπικές επιλογές αρχιτεκτονικής των δικτυακών εφαρμογών¤ μοντέλο πελάτη-‐εξυπηρετητή (client-server)¤ μοντέλο ομότιμων σταθμών (peer-to-peer – P2P)
Αρχιτεκτονική πελάτη-‐εξυπηρετητή
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
8
¨ Εξυπηρετητής (server)¤ πρόκειται για σταθμό (host) που
είναι μονίμως ενεργός¤ διαθέτει μόνιμη διεύθυνση¤ χρησιμοποιούνται data centers
αναλόγως με την απαιτούμενη κλιμάκωση
¨ Πελάτες (clients)¤ επικοινωνούν με τον εξυπηρετητή¤ δεν χρειάζεται να είναι μονίμως
ενεργοί¤ μπορεί να έχουν δυναμικές
διευθύνσεις¤ δεν επικοινωνούν απευθείας
μεταξύ τους
client/server
Αρχιτεκτονική ομότιμων σταθμών (P2P)
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
9
¨ Δεν υφίσταται μονίμως ενεργός εξυπηρετητής
¨ Οι τερματικοί σταθμοί επικοινωνούν απευθείας μεταξύ τους και ονομάζονται ομότιμοι σταθμοί ή ομότιμοι κόμβοι (peers)
¨ Οι ομότιμοι σταθμοί: ¤ αιτούνται υπηρεσίες από άλλους
ομότιμους σταθμούς, ενώ επίσης παρέχουν υπηρεσίες σε άλλους ομότιμους σταθμούςn Κλιμακωσιμότητα: η είσοδος νέων
ομότιμων σταθμών αυξάνει όχι μόνο τις αιτήσεις για υπηρεσίες αλλά και τις δυνατότητες για εξυπηρέτηση (χωρητικότητα)
¤ δεν είναι μονίμως συνδεδεμένοι και αλλάζουν διευθύνσειςn πολύπλοκη διαχείριση
peer-peer
Επικοινωνία διεργασιών
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
10
¨ Διεργασία (process): πρόγραμμα υπό εκτέλεση σε έναν σταθμό – υπολογιστικό σύστημα¤ εντός του ίδιου σταθμού, η επικοινωνία μεταξύ διεργασιών καθορίζεται από το λειτουργικό σύστημα
¤ σε διαφορετικούς σταθμούς, η επικοινωνία μεταξύ διεργασιών γίνεται με ανταλλαγή μηνυμάτων
¨ Διεργασίες πελάτη και εξυπηρετητή¤ διεργασία πελάτη: διεργασία που εκκινεί την επικοινωνία¤ διεργασία εξυπηρετητή: διεργασία που περιμένει να επικοινωνήσουν μαζί της οι πελάτες
¤ σε μια P2P αρχιτεκτονική, κάθε ομότιμος σταθμός μπορεί να τρέχει τόσο διεργασίες πελάτη όσο και διεργασίες εξυπηρετητή την ίδια στιγμή
Sockets
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
11
¨ Μια διεργασία στέλνει/λαμβάνει μηνύματα προς/από το socket της
¨ Το socket είναι λοιπόν το «άκρο» στην επικοινωνία μέσω δικτύου μιας διεργασίας με μια άλλη (που βρίσκεται σε διαφορετικό σταθμό)
Internet
controlledby OS
controlled byapp developer
transport
application
physicallink
network
process
transport
application
physicallink
network
processsocket
Διευθυνσιοδότηση των sockets
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
12
¨ Για να λάβει μηνύματα, μια διεργασία πρέπει να έχει ένα μοναδικό αναγνωριστικό¤ Τι μπορεί να χρησιμοποιηθεί ως μοναδικό αναγνωριστικό
¨ Κάθε σταθμός στο Internet διαθέτει μία τουλάχιστον μοναδική διεύθυνση IP μήκους 32 bits
¨ Ερ. Επαρκεί αυτή η διεύθυνση για τη μοναδική ταυτοποίηση της διεργασίας?¤ Απ. Όχι, αφού πολλές διεργασίες μπορεί να τρέχουν στον ίδιο σταθμό
¨ Για το λόγο αυτό, κάθε διεργασία ταυτοποιείται με το συνδυασμό της διεύθυνσης IP του σταθμού και ενός αριθμού θύρας (port number)¤ Παραδείγματα αριθμών θυρών:
n Εξυπηρετητής HTTP: 80n Εξυπηρετητής e-mail: 25
¤ Για την αποστολή ενός HTTP μηνύματος στον εξυπηρετητή Ιστού www.ntua.grχρησιμοποιούνταιn IP διεύθυνση: 147.102.222.213n Αριθμός θύρας: 80
Πρωτόκολλα στρώματος εφαρμογής
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
13
¨ Ένα πρωτόκολλο στρώματος εφαρμογής καθορίζει:¤ τους τύπους των μηνυμάτων που ανταλλάσσονται
n π.χ. μήνυμα αίτησης (request), απόκρισης (response) κλπ.¤ το συντακτικό των μηνυμάτων
n τι πεδία πρέπει να περιλαμβάνει ένα μήνυμα και πώς διαχωρίζονται τα πεδία¤ τη σημασιολογία των μηνυμάτων
n σημασία καθενός από τα πεδία ενός μηνύματος¤ τους κανόνες για το πότε και πώς οι διεργασίες στέλνουν ή απαντάνε σε
μηνύματα¨ Ανοιχτά πρωτόκολλα έναντι κλειστών πρωτοκόλλων
¤ Ανοιχτά (open):n ορίζονται σε πρότυπα (RFCs)n επιτρέπουν τη διαλλειτουργικότηταn π.χ. HTTP, SMTP
¤ Κλειστά – ιδιόκτητα (proprietary): n π.χ. Skype
Υπηρεσίες που προσφέρει το υποκείμενο στρώμα μεταφοράς σε μια εφαρμογή
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
14
¨ Αξιοπιστία μεταφοράς δεδομένων¤ μερικές εφαρμογές (π.χ. μεταφορά αρχείων, Web browsing) απαιτούν 100%
αξιόπιστη μεταφορά δεδομένων¤ άλλες εφαρμογές (π.χ. video streaming) μπορούν να ανεχθούν ορισμένες
απώλειες και αλλοιώσεις¨ Διεκπεραιωτικότητα (throughput)
¤ μερικές εφαρμογές (π.χ. πολυμέσων) έχουν κάποιες ελάχιστες απαιτήσεις throughput προκειμένου να παραμένουν χρηστικές
¤ άλλες εφαρμογές (οι λεγόμενες ελαστικές εφαρμογές) κάνουν απλώς χρήση οποιουδήποτε επιπέδου throughput είναι εφικτό εκείνη τη στιγμή
¨ Συγχρονισμός (timing)¤ Μερικές εφαρμογές (π.χ. τηλεφωνία μέσω Διαδικτύου, παιχνίδια μέσω
Διαδικτύου) έχουν κάποιες ελάχιστες απαιτήσεις καθυστέρησης (delay) προκειμένου να παραμένουν χρηστικές
¨ Ασφάλεια¤ κρυπτογράφηση¤ ακεραιότητα δεδομένων
Απαιτήσεις δημοφιλών εφαρμογών από το υποκείμενο στρώμα μεταφοράς
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
15
εφαρμογή
file transfere-mail
Web documentsreal-time liveaudio/video
stored audio/videointeractive gamestext messaging
απώλεια δεδομένωνκαμία ανοχήκαμία ανοχήκαμία ανοχήανεκτική
ανεκτικήανεκτικήκαμία ανοχή
throughput
ελαστικήελαστικήελαστικήaudio: 5kbps-1Mbpsvideo:10kbps-5Mbpsομοίως με από πάνωλίγα kbps παραπάνωελαστική
ευαισθησία στο χρόνοόχιόχιόχιναι, 100’s msec
ναι, μερικά secsναι, 100’s msecναι και όχι
Πρωτόκολλα στρώματος μεταφοράς και υπηρεσίες που προσφέρουν
¨ αξιόπιστη μεταφορά δεδομένων μεταξύ αποστολέα και παραλήπτη
¨ έλεγχος ροής δεδομένων¨ έλεγχος συμφόρησης¨ δεν προσφέρει: συγχρονισμό,
ελάχιστο εγγυημένο throughput, ασφάλεια
¨ connection-oriented: ακολουθείται μια διαδικασία εγκατάστασης σύνδεσης μεταξύ των διεργασιών του πελάτη και του εξυπηρετητή
¨ μη αξιόπιστη μεταφορά δεδομένων μεταξύ αποστολέα και παραλήπτη
¨ δεν προσφέρει: αξιοπιστία, έλεγχο ροής, έλεγχο συμφόρησης, ελάχιστο εγγυημένο throughput, ασφάλεια, εγκατάσταση σύνδεσης
¨ Ερ. Πού χρησιμεύει τότε το UDP?¤ Απ. Καλύτερη επίδοση στο
συγχρονισμό (απαιτήσεις καθυστέρησης)
16
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
TCP –Transmission Control Protocol
UDP –User Datagram Protocol
Δικτυακές εφαρμογές: Αντίστοιχα πρωτόκολλα εφαρμογής και μεταφοράς
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
17
εφαρμογή
e-mailremote terminal access
Web file transfer
streaming multimedia
Internet telephony
πρωτόκολλοστρώματος εφαρμογήςSMTP [RFC 2821]Telnet [RFC 854]HTTP [RFC 2616]FTP [RFC 959]HTTP (e.g., YouTube), RTP [RFC 1889]SIP, RTP, proprietary(π.χ. Skype)
υποκείμενοπρωτόκολλο μεταφοράςTCPTCPTCPTCPTCP ή UDP
TCP ή UDP
Αυξάνοντας την ασφάλεια του TCP
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
18
¨ Τα πρωτόκολλα TCP και UDP¤ δεν προσφέρουν κρυπτογράφηση
n τα δεδομένα των χρηστών (π.χ. passwords) αποστέλλονται μέσα από το socket και μεταφέρονται στο Internet ως έχουν
¨ Το πρωτόκολλο SSL (Secure Sockets Layer)¤ προσφέρει κρυπτογραφημένη σύνδεση TCP (encryption)¤ ακεραιότητα των δεδομένων (data integrity)¤ πιστοποίηση του άλλου άκρου επικοινωνίας (authentication)
¨ Το SSL είναι πρωτόκολλο στρώματος εφαρμογής,όπως και ο απόγονός του, το TLS (Transport Layer Security)¤ Οι εφαρμογές χρησιμοποιούν SSL (ή TLS) βιβλιοθήκες, προκειμένου να κρυπτογραφήσουν τα δεδομένα των TCP συνδέσεων
Ο Παγκόσμιος Ιστός και το HTTP
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
19
¨ Μία σελίδα στον Παγκόσμιο Ιστό (Web page) είναι ένα αρχείο HTML το οποίο περιλαμβάνει αναφορές προς διάφορα αντικείμενα (όπως εικόνες, αρχεία ήχου, Java applets κ.λπ.)
¨ Κάθε αντικείμενο έχει μία διεύθυνση (URL: Uniform Resource Locator) η οποία χρησιμοποιείται για να γίνει αναφορά σε αυτό, π.χ.
www.ntua.gr/someDept/pic.gif
host name path name
Επισκόπηση του πρωτοκόλλου HTTP
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
20
¨ HTTP (Hypertext Transfer Protocol)¤ Πρωτόκολλο του στρώματος εφαρμογής για τον Παγκόσμιο Ιστό
¤ Μοντέλο πελάτη/εξυπηρετητήn πελάτης: συνήθως, κάποιος
browser (φυλλομετρητής) που αιτείται, λαμβάνει (μέσω του πρωτοκόλλου HTTP) και απεικονίζει αντικείμενα Web
n εξυπηρετητής: ο εξυπηρετητής (Web server) αποστέλλει αντικείμενα σε απάντηση των αιτήσεων
PC που τρέχειFirefox browser
server που τρέχειApache Webserver
κινητό τηλ. που τρέχειSafari browser
Επισκόπηση του πρωτοκόλλου HTTP
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
21
¨ Το HTTP χρησιμοποιεί για πρωτόκολλο μεταφοράς το TCP¤ ο πελάτης (κάποιος browser) εκκινεί την εγκατάσταση σύνδεσης (δημιουργεί ένα socket) με τον εξυπηρετητή (στη θύρα 80 του τελευταίου)
¤ ο εξυπηρετητής αποδέχεται τη σύνδεση με τον πελάτη¤ μέσα από αυτήν τη σύνδεση, ανταλλάσσονται στο στρώμα εφαρμογής μηνύματα τύπου HTTP μεταξύ του πελάτη και του εξυπηρετητή
¤ στο τέλος, η TCP σύνδεση κλείνει¨ Το HTTP είναι stateless πρωτόκολλο
¤ ο εξυπηρετητής δε διατηρεί πληροφορίες σχετικά με παρελθόντα αιτήματα του πελάτηn αντίθετα, το FTP είναι stateful πρωτόκολλο
Τύποι HTTP συνδέσεων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
22
¨ non-persistent HTTP (μη-‐εμμένον)¤ αποστέλλεται το πολύ ένα αντικείμενο πάνω από την
TCP σύνδεσηn κατόπιν, η σύνδεση απολύεται
¤ συνεπώς, η μεταφορά πολλών αντικειμένων απαιτεί πολλαπλές συνδέσεις TCP
¨ persistent HTTP (εμμένον)¤ πολλά αντικείμενα μπορούν να σταλούν πάνω από μία μοναδική TCP σύνδεση μεταξύ πελάτη και εξυπηρετητή
Non-persistent HTTP23
¨ Έστω ότι ο χρήστης πληκτρολογεί το URL http://www.ntua.gr/index.html¤ Η σελίδα αυτή περιέχει κείμενο και πολλές εικόνες (10 εικόνες)
1a. Ο HTTP client εκκινεί τηνεγκατάσταση σύνδεσης TCP με τονHTTP server στη διεύθυνσηwww.ntua.gr και στη θύρα 80.
2. Ο HTTP client αποστέλλει ένα HTTP request μήνυμα μέσα από την TCP σύνδεση. Το μήνυμα υποδεικνύει ότι ο πελάτης επιθυμεί να του σταλεί το αντικείμενο index.html
1b. Ο HTTP server στη διεύθυνση www.ntua.gr αναμένει στη θύρα80 για TCP συνδέσεις. Αποδέχεται τη σύνδεση, ειδοποιώντας τον πελάτη.
3. O HTTP server λαμβάνει το request μήνυμα, σχηματίζει ένα response μήνυμα που περιέχει το ζητούμενο αντικείμενο, και το στέλνει μέσα από την TCP σύνδεση.
time
Non-persistent HTTP
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
24
5. Ο HTTP client λαμβάνει το response μήνυμα που περιέχει το HTML αρχείο, το οποίο και πρέπει να απεικονίσει. Καθώς επεξεργάζεται το προς απεικόνιση αρχείο HTML, βρίσκει αναφορές προς 10 αντικείμενα τύπου εικόνας.
6. Τα βήματα 1-5 επαναλαμβάνονται για καθένα από τα 10 αντικείμενα-‐εικόνες
4. Ο HTTP server κλείνει την TCP σύνδεση.
time
Non-persistent HTTP
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
25
¨ RTT (Round-Trip Time): χρόνος για ένα μικρό πακέτο να φτάσει από τον πελάτη στον εξυπηρετητή και πίσω
¨ HTTP response time αποτελείται από: ¤ 1 RTT για την εκκίνηση της TCP
σύνδεσης¤ 1 RTT για να σταλεί το HTTP
request και να φτάσουν πίσω τα πρώτα bytes του HTTP response
¤ χρόνος μετάδοσης του αρχείου (αναλόγως της ταχύτητας μετάδοσης)
¤ non-persistent HTTP response time = 2RTT + χρόνος μετάδοσης του αρχείου
time to transmit file
initiate TCPconnection
RTTrequestfile
RTT
filereceived
time time
Persistent HTTP vs. non-persistent HTTP
¨ non-persistent HTTP¤ χρειάζονται 2RTT (+ το χρόνο
μετάδοσης) για τη μεταφορά κάθε αντικειμένου
¤ επιβάρυνση του Λειτουργικού Συστήματος με το άνοιγμα νέας TCP σύνδεσης για κάθε αντικείμενο
¤ στην πράξη, οι περισσότεροι browsers ανοίγουν παράλληλες συνδέσεις TCP για να κατεβάσουν τα διάφορα αντικείμενα μιας σελίδαςn έτσι μειώνεται το συνολικό
response time για όλη τη σελίδα
¨ persistent HTTP¤ ο εξυπηρετητής αφήνει
ανοιχτή τη σύνδεση HTTP μόλις αποστείλει μια απάντηση
¤ τα επόμενα HTTP μηνύματα μεταξύ πελάτη/ εξυπηρετητή στέλνονται μέσα από την ανοιχτή αυτή σύνδεση
¤ ο πελάτης στέλνει request μόλις συναντήσει αναφορά προς ένα αντικείμενο
¤ χρειάζεται 1 RTT (+ το χρόνο μετάδοσης) για κάθε αντικείμενο, καθώς δεν ανοιγοκλείνουν TCP συνδέσεις
26
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
HTTP request μήνυμα
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
27
¨ Όπως είδαμε, το HTTP χρησιμοποιεί δύο τύπους μηνυμάτων: HTTP request (αίτηση) και HTTP response (απάντηση)
¨ HTTP request¤ ASCII μορφή (αναγνώσιμη από τον άνθρωπο)
request line(GET, POST, HEAD εντολές)
headerlines
carriage return καιline feed στην αρχή μιας γραμμής υποδηλώνει το πέραςτων header lines
GET /index.html HTTP/1.1\r\nHost: www-net.cs.umass.edu\r\nUser-Agent: Firefox/3.6.10\r\nAccept: text/html,application/xhtml+xml\r\nAccept-Language: en-us,en;q=0.5\r\nAccept-Encoding: gzip,deflate\r\nAccept-Charset: ISO-8859-1,utf-8;q=0.7\r\nKeep-Alive: 115\r\nConnection: keep-alive\r\n\r\n
carriage-return χαρακτήραςline-feed χαρακτήρας
HTTP request μήνυμα
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
28
¨ Σύμβολα: sp = space, cr = carriage return, lf = line feedχαρακτήρες
requestline
headerlines
body
method sp sp cr lfversionURL
cr lfvalueheader field name
cr lfvalueheader field name
~~ ~~
cr lf
entity body~~ ~~
Αποστολή δεδομένων φόρμας
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
29
¨ Τα δεδομένα που ένας χρήστης συμπληρώνει σε μια Web φόρμα συμπεριλαμβάνονται σε ένα HTTP request μήνυμα το οποίο στέλνεται στον εξυπηρετητή
¨ Η αποστολή μπορεί να γίνει με έναν από τους εξής δύο τρόπους¤ Μέθοδος POST
n Τα δεδομένα που έχει συμπληρώσει ο χρήστης ενσωματώνονται στο σώμα (body) του request μηνύματος
¤ Μέθοδος GETn Τα δεδομένα αυτά ενσωματώνονται στο πεδίο URL του request
linewww.somesite.com/animalsearch.asp?animal=monkeys&food=banana
Μέθοδοι HTTP
¨ HTTP/1.0¤ GET¤ POST¤ HEAD
n ζητείται από τον εξυπηρετητή να μη συμπεριλάβει το αναφερόμενο αντικείμενο εντός του response
¨ HTTP/1.1¤ GET, POST, HEAD¤ PUT
n ανεβάζει στη διεύθυνση που υποδεικνύει το πεδίο URL της γραμμής request το αρχείο του οποίου τα περιεχόμενα βρίσκονται στο σώμα (body) του μηνύματος
¤ DELETEn ζητείται η διαγραφή του αρχείου που υποδεικνύει το πεδίο URL της γραμμής request
30
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
HTTP response μήνυμα
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
31
status line(protocolstatus code και status phrase)
headerlines
data, π.χ.HTML αρχείο
HTTP/1.1 200 OK\r\nDate: Sun, 26 Sep 2010 20:09:20 GMT\r\nServer: Apache/2.0.52 (CentOS)\r\nLast-Modified: Tue, 30 Oct 2007 17:00:02
GMT\r\nETag: "17dc6-a5c-bf716880"\r\nAccept-Ranges: bytes\r\nContent-Length: 2652\r\nKeep-Alive: timeout=10, max=100\r\nConnection: Keep-Alive\r\nContent-Type: text/html; charset=ISO-8859-
1\r\n\r\ndata data data data data ...
HTTP response μήνυμα –Κωδικοί Κατάστασης
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
32
¨ Ο κωδικός κατάστασης (status code) σε ένα μήνυμα HTTP response τοποθετείται στην πρώτη γραμμή του μηνύματος
¨ Παραδείγματα κωδικών¤ 200 OK
n επιτυχής αίτηση, το ζητούμενο αντικείμενο περιλαμβάνεται μέσα στο μήνυμα
¤ 301 Moved Permanentlyn το ζητούμενο αντικείμενο έχει μεταφερθεί, η νέα του διεύθυνση περιλαμβάνεται μέσα στο μήνυμα
¤ 400 Bad Requestn το μήνυμα αίτησης δεν έγινε κατανοητό από τον εξυπηρετητή
¤ 404 Not Foundn το ζητούμενο αντικείμενο δε βρέθηκε στον εξυπηρετητή
¤ 505 HTTP Version Not Supported
Διατήρηση κατάστασης –Cookies
¨ Συνιστώσες1. Μια header line τύπου cookie
στο HTTP response μήνυμα2. Μια header line τύπου cookie
στο επόμενο HTTP request μήνυμα
3. Ένα αρχείο cookie που διατηρείται στον υπολογιστή του χρήστη και το διαχειρίζεται ο browser του χρήστη
4. Μια Βάση Δεδομένων (ΒΔ) στην πλευρά του site
¨ Παράδειγμα¤ Έστω ένας χρήστης που μπαίνει
στο Internet πάντα από το ίδιο PC
¤ Ο χρήστης αυτός επισκέπτεται για πρώτη φορά ένα site ηλεκτρονικών αγορών
¤ Όταν τα αρχικά HTTP requests φτάσουν στο site, αυτό δημιουργεί: n ένα μοναδικό αναγνωριστικό (ID)n μια εγγραφή στη ΒΔ του με αυτό
το αναγνωριστικό
33
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
¨ Όπως είδαμε, το HTTP είναι stateless πρωτόκολλο¨ Για να διατηρούν πληροφορίες κατάστασης, πολλοί ιστότοποι (Web sites)
χρησιμοποιούν τα λεγόμενα cookies
Διατήρηση κατάστασης –Cookies
34
client server
usual http response msg
usual http response msg
cookie file
Μια εβδομάδα αργότερα:
usual http request msgcookie: 1678 cookie-
specificaction
access
ebay 8734 usual http request msg Amazon servercreates ID1678 for user create
entryusual http response set-cookie: 1678ebay 8734
amazon 1678
usual http request msgcookie: 1678 cookie-
specificaction
accessebay 8734amazon 1678
backenddatabase
Διατήρηση κατάστασης –Cookies
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
35
¨ Χρησιμότητα των cookies¤ εξουσιοδότηση χρήστη¤ ηλεκτρονικά καλάθια αγορών¤ παροχή συστάσεων (recommendations) προς το χρήστη
¤ κατάσταση συνόδου του χρήστη (Web e-mail)¨ Ιδιωτικότητα
¤ τα cookies επιτρέπουν στα sites να μάθουν πολλά για το χρήστη και τις συνήθειές του
Web cache – Proxy εξυπηρετητής
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
36
¨ Ο μηχανισμός Web cache (λανθάνουσα μνήμη Παγκόσμιου Ιστού) υλοποιείται με τη χρήση διακομιστή μεσολάβησης (proxy server)
client
proxyserver
client origin server
origin server
¨ Ο χρήστης ρυθμίζει τον browser του να χρησιμοποιεί Web cache(δηλ. να χρησιμοποιεί proxy server)
¨ Ο browser στέλνει όλα τα HTTP request μηνύματα στη συγκεκριμένη Web cache¤ αν το ζητούμενο αντικείμενο
βρίσκεται στην cache, τότε η cache επιστρέφει το αντικείμενο
¤ διαφορετικά, η cache ζητά το αντικείμενο από τον εξυπηρετητή που κανονικά το φιλοξενεί (origin server) και, κατόπιν, επιστρέφει το αντικείμενο αυτό στον πελάτη, αφού το αποθηκεύσει και τοπικά
Web cache – Proxy εξυπηρετητής
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
37
¨ Έτσι, η Web cache ενεργεί τόσο ως πελάτης όσο και ως εξυπηρετητής¤ ως πελάτης για τον origin server¤ ως εξυπηρετητής για τον browser του χρήστη
¨ Εγκατάσταση και χρήση Web cache ενδέχεται να γίνεται σε διάφορα ιδρύματα, όπως Πανεπιστήμια, μεγάλες εταιρείες κ.λπ.
¨ Χρησιμότητα της Web cache¤ μείωση του χρόνου απάντησης (response time) στα αιτήματα των πελατών
¤ μείωση της κίνησης στη ζεύξη πρόσβασης στο Internet του ιδρύματος
Web cache – Παράδειγμα
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
38
¨ Υποθέσεις¤ Μέσο μέγεθος αντικειμένου: 100 Kbit = 0.1 Mbit¤ Μέσος ρυθμός αιτήσεων από τους browsers (όλους
μαζί) του ιδρύματος προς τους origin servers: 15 αιτήσεις/sec
¤ Μέσος ρυθμός μετάδοσης προς τους browsers: 0.1*15 = 1.5 Mbps
¤ RTT από το δρομολογητή του ιδρύματος μέχρι οποιονδήποτε origin server = 2 sec
¨ Συνέπειες¤ Χρησιμοποίηση (ή ένταση κίνησης) στο LAN = 1.5Mbps
/ 100Mbps = 1.5%n Μικρή χρησιμοποίηση, άρα αμελητέα καθυστέρηση
¤ Χρησιμοποίηση στη ζεύξη πρόσβασης = 99%n Πολύ κοντά στο 100%, άρα μεγάλη καθυστέρηση (βλ.
queuing delay), της τάξης των λεπτών¤ Συνολική καθυστέρηση = καθυστέρηση Internet +
καθυστέρηση πρόσβασης + καθυστέρηση LAN = 2 sec + minutes + «αμελητέα»
originservers
PublicInternet
δίκτυοιδρύματος
100 Μbps LAN
1.54 Mbps ζεύξη πρόσβασης
Web cache – Παράδειγμα
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
39
¨ Λύση 1: αναβάθμιση της ζεύξης πρόσβασης από 1.54 Mbps σε 15.4 Mbps (10πλασια χωρητικότητα)¤ Συνήθως πρόκειται για δαπανηρή
αναβάθμιση¨ Συνέπειες
¤ Χρησιμοποίηση στο LAN = 1.5%n ίδια με προηγουμένως
¤ Χρησιμοποίηση στη ζεύξη πρόσβασης = 9.9%n μικρή χρησιμοποίηση, άρα αμελητέα καθυστέρηση
¤ Συνολική καθυστέρηση = καθυστέρηση Internet + καθυστέρηση πρόσβασης + καθυστέρηση LAN = 2 sec + «αμελητέα» + «αμελητέα» = 2 sec περίπου
originservers
PublicInternet
δίκτυοιδρύματος
100 Μbps LAN
15.4 Mbps ζεύξη πρόσβασης
Web cache – Παράδειγμα40
¨ Λύση 2: προσθήκη Web cache στο τοπικό δίκτυο¤ Έχει κόστος και αυτή η λύση¤ Έστω ότι η πιθανότητας επιτυχίας (hit rate) της
cache είναι 0.4 (συνήθεις τιμές: 0.2 έως 0.7)¨ Συνέπειες
¤ 40% των αιτήσεων θα ικανοποιούνται σχεδόν αμέσως (έστω σε 10msec)
¤ 60% των αιτήσεων θα ικανοποιούνται από τους αρχικούς server
¤ Ρυθμός δεδομένων προς browsers στη ζεύξη πρόσβασης: 0.6*1.5Μbps = 0.9Mbps
¤ Η χρησιμοποίηση της ζεύξης πρόσβασης περιορίζεται στο 0.9/1.54 = 58% με αποτέλεσμα αμελητέες καθυστερήσεις (έστω 10 msec)
¤ Συνολική μέση καθυστέρηση = καθυστέρηση Internet + καθυστέρηση πρόσβασης + καθυστέρηση LAN = 0.6*2.01 sec + 0.4*0.01sec = 1.21 secn Η λύση αυτή έχει καλύτερη επίδοση από την
προηγούμενη!
originservers
PublicInternet
δίκτυοιδρύματος
100 Μbps LAN
1.54 Mbps ζεύξη πρόσβασης
Cacheιδρύματος
FTP – File Transfer Protocol
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
41
¨ Μεταφορά αρχείων από/προς έναν απομακρυσμένο υπολογιστή¨ Μοντέλο client/server (πελάτη/εξυπηρετητή)
¤ client: η πλευρά που εκκινεί τη μεταφορά (είτε προς είτε από αυτήν)¤ server: ο απομακρυσμένος host
¨ Ο ftp server «ακούει» (περιμένει) στη θύρα (port) 21
μεταφορά αρχείου
FTPserver
FTPuser
interface
FTPclient
τοπικό σύστημα αρχείων
χρήστης
FTP – Συνδέσεις ελέγχου& δεδομένων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
42
¨ Ο ftp client επικοινωνεί με τον ftp serverστη θύρα 21, μέσω του πρωτοκόλλου TCP
¨ Γίνεται πιστοποίηση/εξουσιοδότηση του client κατά τη διάρκεια της σύνδεσης ελέγχου
¨ Ο client βλέπει τη λίστα αρχείων του server και στέλνει εντολές μέσω της σύνδεσης ελέγχου
¨ Μόλις ο server δεχτεί εντολή για μεταφορά αρχείου, τότε ανοίγει 2ησύνδεση TCP με τον client, τη σύνδεση δεδομένων, με σκοπό τη μεταφορά του αρχείου
¨ Μόλις ολοκληρωθεί η μεταφορά ενός αρχείου, ο server απολύει τη σύνδεση δεδομένων
FTPclient
FTPserver
TCP σύνδεση ελέγχου,server port 21
TCP σύνδεση δεδομένων,server port 20
¨ Αν είναι επιθυμητή η μεταφορά ενός 2ου αρχείου ο server ανοίγει νέα TCP σύνδεση δεδομένων
¨ O ftp server διατηρεί την «κατάσταση» δηλαδή την εξουσιοδότηση του χρήστη που πραγματοποιήθηκε στην αρχή
FTP – Παραδείγματα εντολών & αποκρίσεων
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
43
Εντολές¨ στέλνονται σαν ASCII κείμενο
μέσω της σύνδεσης ελέγχου¨ USER username¨ PASS password¨ LIST επιστρέφει τη λίστα
αρχείων στο τρέχον directory¨ RETR filename ανακτά ένα
αρχείο¨ STOR filename αποθηκεύει
ένα αρχείο στον server
Αποκρίσεις¨ κωδικός κατάστασης και
λεκτική περιγραφή ¨ 331 Username OK, password
required¨ 125 data connection already
open; transfer starting¨ 425 Can’t open data connection¨ 452 Error writing file
Ηλεκτρονικό Ταχυδρομείο (E-mail)44
¨ Τρία βασικά «συστατικά»:¤ Οι user agents¤ Οι mail servers¤ Το πρωτόκολλο
SMTP (Simple Mail Transfer Protocol)
user mailbox
outgoing message queue
mailserver
mailserver
mailserver
SMTP
SMTP
SMTP
useragent
useragent
useragent
useragent
useragent
useragent
Ηλεκτρονικό ΤαχυδρομείοUser Agents
45
¨ Χρησιμοποιούνται για τη σύνθεση, επεξεργασία, ανάγνωση μηνυμάτων (e-mails)...¤ π.χ. Outlook, Thunderbird,
Mac OS Mail app¨ Τα
εισερχόμενα/εξερχόμενα μηνύματα για ένα χρήστη αποθηκεύονται στο mail serverπου εξυπηρετεί το χρήστη
user mailbox
outgoing message queue
mailserver
mailserver
mailserver
SMTP
SMTP
SMTP
useragent
useragent
useragent
useragent
useragent
useragent
Ηλεκτρονικό ΤαχυδρομείοMail Servers
46
¨ mailbox: περιλαμβάνει τα εισερχόμενα μηνύματα για έναν χρήστη
¨ ουρά μηνυμάτων: λίστα εξερχόμενων μηνυμάτων προς αποστολή
¨ Το SMTP πρωτόκολλο χρησιμοποιείται μεταξύ mail servers για την αποστολή μηνυμάτων¤ ως client ενεργεί ο mail
server αποστολής¤ ως server ενεργεί ο mail
server λήψης
user mailbox
outgoing message queue
mailserver
mailserver
mailserver
SMTP
SMTP
SMTP
useragent
useragent
useragent
useragent
useragent
useragent
Ηλεκτρονικό Ταχυδρομείο -‐ SMTP
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
47
¨ To SMTP χρησιμοποιεί το πρωτόκολλο TCP για να μεταφέρει αξιόπιστα ηλεκτρονικά μηνύματα από τον client στο server,χρησιμοποιώντας τη θύρα 25
¨ Απευθείας μετάδοση: ο server αποστολέας στέλνει στον παραλήπτη server
¨ Τρεις φάσεις μεταφοράς:¤ χειραψία¤ μεταφορά μηνυμάτων¤ απόλυση
¨ Μηχανισμός εντολών/αποκρίσεων (όπως και στα HTTP, FTP)¤ εντολές: κείμενο ASCII¤ απόκριση: κωδικός κατάστασης + λεκτική απάντηση
Σενάριο: Η Άννα στέλνει e-mail στο Βασίλη
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
48
1. Η Άννα μέσω του user agent της γράφει ένα μήνυμα για το Βασίλη με διεύθυνση αποστολέα [email protected]
2. O user agent της Άννας στέλνει το μήνυμα στον mail server της – Το μήνυμα αυτό τοποθετείται στην ουρά μηνυμάτων
3. Η client πλευρά του SMTP ανοίγει TCP σύνδεση με τον mail server του Βασίλη4. Ο SMTP client αποστέλλει το μήνυμα μέσω TCP σύνδεσης5. Ο mail server του Βασίλη τοποθετεί το μήνυμα στο mailbox του Βασίλη6. Ο Βασίλης χρησιμοποιεί τον user agent του για να ανακτήσει και να διαβάσει
το μήνυμα
useragent
mailserver
mailserver
1
2 3 4
5
6
Ο mail server της Άννας Ο mail server του Βασίλη
useragent
Παράδειγμα SMTP επικοινωνίας πελάτη – εξυπηρετητή
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
49
S: 220 hamburger.eduC: HELO crepes.frS: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]> S: 250 [email protected] ... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection
Δοκιμάστε το SMTP
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
50
¨ πληκτρολογήστε στη γραμμή εντολών:telnet cn.ntua.gr 25¨ δείτε την απόκριση 220 από τον server¨ δοκιμάστε τις εντολές HELO, MAIL FROM, RCPT TO,
DATA, QUIT
¨ Με αυτόν τον τρόπο μπορείτε να στείλετε email χωρίς τη χρήση email client
Σύγκριση SMTP -‐ ΗΤΤP
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
51
¨ Σύγκριση του SMTP με HTTP:¤ Το SMTP χρησιμοποιεί persistent συνδέσεις¤ Το HTTP μπορεί να χρησιμοποιεί είτε persistent είτε non-persistent συνδέσεις
¤ HTTP: pull πρωτόκολλο, διότι ο χρήστης-‐πελάτης κατεβάζει την πληροφορία από τον server όταν και όποτε το επιθυμεί
¤ SMTP: push πρωτόκολλο, διότι ο server αποστολέας ανεβάζει το μήνυμα στο server παραλήπτη
¤ Και τα δύο έχουν αλληλεπίδραση τύπου εντολής/απόκρισης, με κωδικούς κατάστασης
¤ Και τα δύο χρησιμοποιούν το TCP ως πρωτόκολλο μεταφοράς
¤ ΗΤΤP: Κάθε αντικείμενο ενσωματώνεται στο δικό του μήνυμα απόκρισης¤ SMTP: Πολλαπλά αντικείμενα μπορούν να σταλούν στο ίδιο μήνυμα
Δομή μηνυμάτων ηλεκτρονικού ταχυδρομείου
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
52
¨ SMTP: πρωτόκολλο για την ανταλλαγή email μηνυμάτων
¨ RFC 822: πρότυπο για τη δομή μηνυμάτων κειμένου
¨ περιεχόμενο επικεφαλίδας:¤ To:¤ From:¤ Subject:
n Προσοχή: Τα πεδία της επικεφαλίδας διαφέρουν από τις SMTP εντολέςMAIL FROM, RCPT TO
¨ body:¤ το «μήνυμα» μας
n ASCII χαρακτήρες μόνο
header
body
κενή γραμμή
Πρωτόκολλα πρόσβασης στο ηλεκτρονικό ταχυδρομείο
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
53
¨ SMTP: παράδοση/αποθήκευση στο server του παραλήπτη¨ Πρωτόκολλο πρόσβασης για την ανάκτηση από το server
¤ POP: Post Office Protocol (RFC 1939): authorization, download¤ IMAP: Internet Mail Access Protocol (RFC 1730): περισσότερα χαρακτηριστικά, συμπεριλαμβανομένου του χειρισμού των αποθηκευμένων μηνυμάτων στο server
¤ HTTP: gmail, Yahoo Mail, κ.λπ.
mail server αποστολέα
SMTP SMTPmail accessprotocol
mail server παραλήπτη
(e.g., POP, IMAP)
useragent
useragent
Πρωτόκολλο POP3
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
54
C: list S: 1 498 S: 2 912 S: . C: retr 1 S: <message 1 contents>S: . C: dele 1 C: retr 2 S: <message 1 contents>S: . C: dele 2 C: quit S: +OK POP3 server signing off
S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on
• φάση authorization• εντολές client
• user: declare username• pass: password
• αποκρίσεις server• +OK• -ERR
• φάση transaction, client• list: list message numbers• retr: retrieve message by number• dele: delete• quit
POP3 vs IMAP
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
55
POP3¨ υποστήριξη
“download&delete” mode
¨ υποστήριξη “download&keepmode”
¨ οι πληροφορίες κατάστασης δεν διατηρούνται μεταξύ των sessions (συνόδων)
IMAP¨ διατηρεί όλα τα μηνύματα
σε ένα μέρος: στο server¨ επιτρέπει στο χρήστη να
οργανώνει τα μηνύματα σε φακέλους
¨ οι πληροφορίες κατάστασης διατηρούνται μεταξύ των sessions (συνόδων)¤ ονόματα των φακέλων και αντιστοίχιση message ID’s με ονόματα φακέλων
Ευχαριστώ για την προσοχή σας!
Τεχνολογία Πληροφορίας και Επικοινωνιών -‐ Ε. Αδαμοπούλου, Κ. Δεμέστιχας
56