Δίκτυα’Επικοινωνιών–Δίκτυα’...

Post on 16-Jul-2020

23 views 0 download

Transcript of Δίκτυα’Επικοινωνιών–Δίκτυα’...

Δίκτυα  Επικοινωνιών – Δίκτυα  Υπολογιστών  και  Στρώμα  ΕφαρμογήςΔιδάσκοντες:  Δρ.  Ευγενία  Αδαμοπούλου,  Δρ.  Κώστας  Δεμέστιχας

ΔΠΜΣ  «Τεχνο-­‐Οικονομικά  Συστήματα»Τεχνολογία  Πληροφορίας  και  Τηλεπικοινωνιών

Ιστοσελίδα  Μαθήματος

¨ http://people.cn.ntua.gr/jenny/index.php/courses

¨ e-mail επικοινωνίας:  ¤ eadam@cn.ntua.gr¤ cdemest@cn.ntua.gr

Τεχνολογία  Πληροφορίας  και  Επικοινωνιών  -­‐ Ε.  Αδαμοπούλου,  Κ.  Δεμέστιχας

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 της  γράφει  ένα  μήνυμα  για  το  Βασίλη  με  διεύθυνση  αποστολέα  vassilis@ntua.gr

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:  <alice@crepes.fr>  S:  250  alice@crepes.fr...   Sender  ok  C:  RCPT  TO:  <bob@hamburger.edu>  S:  250  bob@hamburger.edu ...  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