Email ένας θαυμαστός τρόπος επικοινωνίας
Περίπου διακόσια δισεκατομμύρια μηνύματα ηλεκτρονικής αλληλογραφίας αποστέλλονται καθημερινά ανά τον κόσμο. Με πρόχειρους υπολογισμούς θα μπορούσαμε να πούμε ότι δυόμισι εκατομμύρια μηνύματα ανταλλάσσονται ανά δευτερόλεπτο.
Το μέγεθος υπερβολικά μεγάλο και όμως αληθινό. Όλοι μπορούμε να στείλουμε τώρα ένα email στο φίλο μας στην άλλη άκρη του κόσμου και στο αμέσως επόμενο δευτερόλεπτο εκείνος να το έχει παραλάβει.
Πώς γίνεται όμως αυτό?
Έχετε ήδη συντάξει το μήνυμα ηλεκτρονικής αλληλογραφίας και απλά πατήσατε το κουμπί Aποστολή (Send).
Πίσω από το πάτημα αυτού του κουμπιού κρύβεται η διαδικασία αποστολής – παραλαβής μηνυμάτων… μια πολύ συνθέτη διαδικασία που θα προσπαθήσω να εξηγήσω όσο πιο απλά μπορώ.
Τα ηλεκτρονικά μηνύματα αλληλογραφίας ταξιδεύουν σε φυσικά και ψηφιακά μονοπάτια που το κάθε ένα οδηγεί σε ένα ηλεκτρονικό υπολογιστικό σύστημα υπεύθυνο για την ολοκλήρωση μιας ή περισσοτέρων εργασιών. Θα μπορούσαμε να παρομοιάσουμε το μήνυμα ηλεκτρονικής αλληλογραφίας με ένα δέμα προς αποστολή, τα μονοπάτια με τους δρόμους του οδικού, ακτοπλοϊκού, αεροπορικού και σιδηροδρομικού δικτύου και τα ηλεκτρονικά υπολογιστικά συστήματα με τα διόδια, τελωνεία, ταχυδρομεία, αεροπλάνα, πλοία κτλ.
H πρώτη κίνηση θα είναι, το μήνυμά σας να οδηγηθεί σε έναν κεντρικό υπολογιστή που ονομάζεται SMTP server (Simple Mail Transfer Protocol). Τι είναι? Στην πραγματικότητα θα μπορούσε κανείς παρομοιάσει τον SMTP server με το τοπικό σας ταχυδρομείο το οποίο διαθέτει τα μέσα να ελέγχει τις διευθύνσεις και τα ονόματα των παραληπτών. Ο κάθε τόπος έχει το δικό του ταχυδρομείο.
Το μήνυμα θα αποθηκευτεί σε μια ουρά προτεραιότητας (email queue). Όταν έρθει η σειρά του για επεξεργασία, ο SMTP server θα πρέπει να ψάξει να βρει πού ακριβώς βρίσκεται ο παραλήπτης και αν υπάρχει κάποιο “ταχυδρομείο” που θα μπορέσει να παραλάβει το μήνυμά του. Ο server που είναι υπεύθυνος για την παραλαβή αυτών των μηνυμάτων ονομάζεται ΜΧ ή mail exchange server.
Την πληροφορία αυτή θα του τη δώσει το Domain name του παραλήπτη. Domain name είναι το όνομα που βρίσκεται αμέσως μετά το σύμβολο @ στο email αποστολής. π.χ. στο email kostas@servicetag.gr, domain name είναι το servicetag.gr
O SMTP server θα αντλήσει τις πληροφορίες αυτές αφού πρώτα συνδεθεί με έναν άλλο server που ονομάζεται DNS (Dynamic Name System). Τι είναι? Πολύ απλά ένας κεντρικός υπολογιστής που αντιστοιχίζει ονόματα με διευθύνσεις. O SMTP στέλνει το όνομα (domain name) και o DNS επιστρέφει μια διεύθυνση που αντιστοιχεί σε αυτό, γνωστή ως IP address (Internet Protocol Address). Με πολύ απλά λόγια η IP address είναι ένας δωδεκαψήφιος αριθμός.
Αν πιστοποιηθεί ότι η IP του παραλήπτη έχει κάποιον MX, ο SMTP θα πρέπει πρώτα να συνδεθεί με αυτόν, να πιστοποιήσει την ορθότητα της διεύθυνσης του παραλήπτη και μετά να πραγματοποιήσει την αποστολή. Η διαδικασία αυτή δεν είναι καθόλου απλή. Πραγματοποιείται μέσω δρομολογητών (routers) οι οποίοι είναι υπεύθυνοι να βρουν το γρηγορότερο μονοπάτι μέσω του INTERNET ώστε τελικά η σύνδεση να φτάσει στον MX του παραλήπτη. Οι δρομολογητές αυτοί βρίσκονται παντού ανά τον κόσμο. Ακόμη και δίπλα μας να είναι ο παραλήπτης η σύνδεση αυτή μπορεί να περάσει από πολλά σημεία.
Όταν τελειώσει αυτό το “ταξίδι” η σύνδεση έχει φτάσει στον MX του παραλήπτη. Το μήνυμά μας φυσικά δεν έχει ξεκινήσει καν το ταξίδι του. Έχει απλά επιτευχθεί μια επικοινωνία μεταξύ τον δύο server (SMTP session).
Ο SMTP του αποστολέα λέει “HELLO” στον MX του παραλήπτη και αυτός με τη σειρά του απαντάει “HELLO”. Ο SMTP του αποστολέα δηλώνει “θέλω να στείλω ένα μήνυμα” και τότε ο MX του παραλήπτη ακολουθεί μια σειρά από διαδικασίες έτσι ώστε να πιστοποιήσει την εγκυρότητα του αποστολέα. Πώς? Ρωτάει έναν DNS server εάν είναι ο αποστολέας αυτός που δηλώνει ότι είναι. Αν πάρει θετική απάντηση τότε απαντάει στον αποστολέα “OK”.
Το μήνυμα είναι έτοιμο να ταξιδέψει. Μέσω δρομολογητών ξεκινάει το ταξίδι του στο internet μέχρι τελικά να καταλήξει στον MX του παραλήπτη. Το μήνυμα πριν ξεκινήσει το ταξίδι του θα χωριστεί σε μικρά πακέτα τα οποία αποστέλλονται ένα προς ένα και συλλέγονται από το δρομολογητή του παραλήπτη ώστε να συναρμολογηθούν.
Το μήνυμα θα φτάσει στον MX του παραλήπτη όπου εκεί θα περάσει μια σειρά από ελέγχους σχετικά με το περιεχόμενό του. Αν όλα είναι εντάξει τότε το μήνυμα θα τοποθετηθεί σε μία ουρά (mail queue). Ο τελικός χρήστης έχει την επιλογή να παραλάβει το μήνυμα με δύο τρόπους:
Μέσω του πρωτοκόλλου POP3 (Post Office Protocol).
Φανταστείτε ότι περιμένετε ένα γράμμα και κάθε μέρα περνάτε από το ταχυδρομείο ρωτώντας αν έχει έρθει κάτι για εσάς (Κουμπί Send/Recieve…) Αν έχει έρθει παραλαμβάνετε το γράμμα σας. Τόσο απλά… Αυτό είναι το πρωτόκολλο POP3.
Μέσω του πρωτοκόλλου IMAP (Internet Message Access Protocol).
Θα καταλάβατε ότι η επιλογή του POP3 ως πρωτόκολλο παραλαβής είναι απλή. Ρωτάτε, παραλαμβάνετε. Αφού παραλάβετε το ταχυδρομείο δε φέρει καμία ευθηνή για την αλληλογραφία σας. Αν εσείς χάσετε τα γράμματα σας αν εσείς δεν αποθηκέψετε σωστά την αλληλογραφία σας τότε είστε ο μόνος υπεύθυνος.
Στο πρωτόκολλο IMAP όλα λειτουργούν διαφορετικά. Το IMAP συγχρονίζεται με τον mail server σας, στέλνοντας και διαβάζοντας δεδομένα για κάθε ενέργεια του χρήστη. Αυτό επιτρέπει την παρακολούθηση ενός λογαριασμού email από διαφορετικές φυσικές τοποθεσίες και συσκευές. Οι διαφορές αυτών τον δύο πρωτοκόλλων είναι βέβαια ένα θέμα πολύ μεγαλύτερο.
Θα μπορούσε κανείς να πει ότι αυτό είναι από τις πιο απλές περιγραφές του τι συμβαίνει όταν εσείς πατάτε το κουμπί αποστολή.
Κλείνοντας διευκρινίζω ότι η διαδικασία που περιγράψαμε παραπάνω είναι μια απλούστευση του τι συμβαίνει όταν αποστέλλετε ένα email. Στην πραγματικότητα υπάρχουν πολλές ακόμα λεπτομέρειες που δεν αναφέρονται γιατί ο σκοπός μου είναι να καταλάβουμε το βασικό μηχανισμό του θαυμαστού αυτού τρόπου επικοινωνίας, ως εισαγωγή για τα άρθρα που θα ακολουθήσουν με πιο συγκεκριμένες αναφορές όσον αφορά στη χρήση του.