Διάλεξη 7: Επικοινωνίας και υπολογιστών, μεταπτιακό ραδιελεκτρολογίας, ηλεκτρονικής φυσικής, τμήμα φυσικής. Ξεκινάμε την 8η ενότητα, η οποία αφορά πλέον τις εφαρμογές πάνω από IP. Στην ενότητα αυτή θα δούμε την εφαρμογή DNS, το Main Name System, και θα δούμε τις εφαρμογές Simple Mail Transfer Protocol για ηλεκτρονική αλληλογραφία. Για να ξεκινήσουμε πρώτα όμως με το DNS. Τι είναι το DNS? Το DNS είναι ένα ιεραρχικό σύστημα ονοματοδοσίας για δίκτυα υπολογιστών που χρησιμοποιούν το πρωτόκολλο IP. Είναι δηλαδή μια κατανεμημένη βάση δεδομένων. Και όταν λέω κατανεμημένη αυτό σημαίνει ότι δεν υπάρχουν όλα τα στοιχεία της βάσης, δεν υπάρχουν σε έναν υπολογιστή, αλλά κατανέμονται ανα τον κόσμο σε διάφορους υπολογιστές. Και είναι ένα πρωτόκολλο στο επίδοση εφαρμογής για την ανταλλαγή μηνυμάτων μεταξύ των DNS Server και των DNS Client. Δηλαδή είναι ένα πρωτόκολλο τύπου Client Server. Για να τα δούμε λίγο σε λεπτομέρεια. Γιατί να χρησιμοποιήσουμε DNS. Για το να πω θα το λέω ότι είναι πολύ πιο απλό να θυμόμαστε ότι το όνομα ενός υπολογιστή είναι www.aof.gr παρά να θυμόμαστε ότι ο υπολογιστής αυτός έχει IP διεύθυνση 155.207.0.100. Κάθε όνομα βροφανώς έχει περισσότερο νόημα. Πολλές εφαρμογές όπως το FTP, το HTTP, το Mail, απαιτούν από τον χρήστηνό, όχι να εισάγει την IP διεύθυνση αλλά τον προορισμό. Μπορεί να δουλέψει και με την IP διεύθυνση αλλά φυσικά είναι πολύ πιο δύσκολο. Άρα λοιπόν το DNS είναι η μετάφραση της IP διεύθυνσης των αριθμών σε ένα συγκεκριμένο όνομα. Τι υπηρεσίες μπορεί να προσφέρει ένας DNS Server. Μπορεί να προσφέρει καταχύντινη υπηρεσία αλλάει αζυγχώστ. Τι σημαίνει αυτό. Ότι ένας εξυπηρετητής ο οποίος έχει κάπως πολύ πλοκό όνομα θα μπορούσε να έχει ένα ή περισσότερα ψευδόνιμα. Δηλαδή τι σημαίνει αυτό. Για παράδειγμα, αντί να λέμε relay.westcos.media.com, μπορούμε απλά να λέμε media.com. Το μεγάλο είναι το κανονικό όνομα, το μικρότερο είναι το ψευδόνιμα αφού του υπολογιστεί. Μπορεί να προσφέρει υπηρεσίες Mail Alliant Server. Δηλαδή τα ψευδόνιμα αυτά να υπάρχουν αντί για να μπορούμε να στέλνουμε mail, δηλαδή των κανονικών ονομάτων υποδοχής. Μπορεί να προσφέρει υπηρεσίες load balancing. Δηλαδή αυτό τι σημαίνει. Για παράδειγμα, μπορεί ένας DNS Server να έχει το ίδιο όνομα για πολλές μηχάνες. Για παράδειγμα, σκεφτείτε έναν μεγάλο Server. Επιχεί τον Google. Το google.com αντιστοιχεί σε πολλούς Server ανά τον κόσμο. Οι DNS Server που κρατάν τις πραγματικές IP διευθύνσεις τι μπορεί να έχουνε. Έχουνε κάθε φορά, υπάρχει με μια σειρά η πρώτη διεύθυνση, η δεύτερη διεύθυνση, η τρίτη και τα λοιπά, που αντιστοιχούν όλα στο ίδιο όνομα. Έτσι ώστε, όταν έχουμε πολλές αιτήσεις στον έναν, το φορτίο κάπως να κατανέμαται και στους άλλους Servers. Δηλαδή, αυτό ακριβώς το πράγμα το load balancing. Η κατανομή δηλαδή του φορτίου, του εισερχόμενου φορτίου, στους διάφορους υπολογιστές. Η πιο βασική χρήση είπαμε ότι είναι να μεταφράζει τα ονόματα σε διευθύνσια IP. Δηλαδή, όπως έναν τηλεφωνικός κατάλογος. Για παράδειγμα, ποια είναι η διεύθυνση, η IP διεύθυνση του en-wikipedia.org. Εάν ψάξουμε λίγο με το DNS, θα δούμε ότι θα μας δείξει ότι είναι 66.230.200.100. Προφανώς είναι πολύ πιο δύσκολο να θυμόμαστε αυτό και πολύ πιο εύκολο να θυμόμαστε το πάνω. Τώρα, ποιο είναι αυτό το σύστημα ονοματοδοσίας. Στο σύστημα ονοματοδοσίας που χρησιμοποιεί το DNS ακολουθεί μια ιεραρχία. Το πιο σημαντικό όνομα, δηλαδή πάλι είναι μια ακολουθία από αλυφριθμικά τα οποία χωρίζονται με τελείες. Και το πιο σημαντικό μέρος του ονόματος είναι στα δεξιά. Τώρα, πόσα τμήματα μπορεί να έχει αυτό το όνομα. Η απάντηση είναι ότι, στην ουσία, τα πρότυπα του DNS δεν καθορίζουν τον ακριβή αριθμό της ιεραρχίας των τιμάτων που μπορεί να υπάρχουν. Δηλαδή, μπορεί ο κάθε οργανισμός να επιλέξει την δική του ιεραρχία πόσα τμήματα πρέπει να υπάρχουν στην ονοματολογία. Αυτό που καθορίζει το DNS, καθορίζει αυτά που λέγονται τα top level domains. Δηλαδή, τις ανώτερες ιεραρχίες. Είναι αυτά τα οποία ορίζονται από το διεθνείο οργανισμό των Ethernet Corporation για την εκχώρηση ονομάτων και αριθμών. Names and Numbers Authority. Και αυτός ο οργανισμός ορίζει πολλούς ή περισσότερους καταχωρητές τέτοιων domain. Τι είναι τα top level domains? Τα top level domains μπορεί να είναι το domain.com, το domain.edu, το domain.gov. Όλα αυτά, δηλαδή, τα ονόματα τα οποία αντιστοιχούν σε συγκεκριμένες περιοχές ή ακόμα και εφαρμογές. Και επίσης σε αυτά τα top level domains περιλαμβάνεται και τα domains χωρών. Το domain.gr είναι το top level domain της Ελλάδας, που έχει δοθεί στην Ελλάδα. Και υπάρχουν DNS Server για τα top level domains. Δηλαδή, η ιεραρχία γενικά στο DNS είναι η εξής. Στην αρχή υπάρχουν αυτοί που λέγονται οι root DNS Servers, δηλαδή ο DNS Server ίζας. Τι έχει αυτός ο DNS Server? Έχει τις διευθύσεις των DNS Servers των top level domains. Δηλαδή, θα έχει τη διεύθυση του.com DNS Server, θα έχει τη διεύθυση του.org DNS Server, θα έχει τη διεύθυση του.edu DNS Server. Οι DNS Server των top level domains τι περιέχουν? Περιέχουν τις διευθύσεις των DNS Server των επιπλέου όλων των οργανισμών, οι οποίοι υπάρχουν στο αντίσχονο domain. Δηλαδή, για παράδειγμα, ο DNS Server που περιέχει του.com περιέχει τι? Περιέχει, ας πούμε, τις διευθύσεις του DNS Server του Yahoo και του DNS Server του Amazon. Όλα όσα καταλήγουν σε.com. Δεν περιέχει αυτό καθ' αυτό τις διευθύσεις, την ιεραρχία που μπορεί να υπάρχει εκεί μέσα. Δηλαδή, αν το amazon.com έχει φτιάξει μέσα και κάποιους άλλους Server, οι οποίοι έχουν μέσα μια άλλη ιεραρχία και διαφορετικά ονόματα, οι διευθύσεις, οι DNS διευθύσεις σε αυτό το Server, θα περιέχονται στο DNS Server του amazon.com. Άρα, π.χ. θέλουμε να βρούμε το IP για το amazon.com, έτσι, www.amazon.com. Τι θα κάνουμε? Καταρχήν, θα στείλω ερώτημα, θα δούμε, εντάξει, σε κάπως πιο απλοποιημένη προσέγγιση, στέλνω ερώτημα στον πρώτο DNS Server για να βρω και ψάχνω να βρω τον διακομιστή, τον DNS Server για το com domain. Στη συνέχεια, θα λειτουργήσει αυτός ο DNS Server σαν πελάτης και θα στείλει ερώτημα που? Στον DNS Server, ξέροντας τη διεύθυνση του, θα μου στείλει τη διεύθυνση του amazon.com, του διακομιστή DNS amazon.com και στη συνέχεια θα στείλω κι άλλο ερώτημα στο DNS Server του amazon.com για να πάρω τελικά την IP διεύθυνση του amazon.com. Αυτό σε μία πρώτη προσέγγιση. Δηλαδή, το σημαντικό που πρέπει να γνωρίζουμε είναι ότι υπάρχει μία ιεραρχημένη δομή και ένας ιεραρχημένος τρόπος έρωτα απαντήσεων. Οι πιο σημαντικοί διακομιστές είναι οι διακομιστές αυτές της ρίζας, η DNS Server ρίζας. Υπάρχουν 13 σε όλο τον κόσμο. Για παράδειγμα, μπορείτε να δείτε τις τοποθεσίες τους. Και το βασικό που έχουν αυτοί οι διακομιστές και για το οποίο είναι αυτό το οποίο μπορεί και λειτουργεί το internet είναι ότι περιέχουν όλες τις IP διευθύνσεις ποιών? Των διακομιστών των top level domains του internet. Δηλαδή, αυτοί ξέρουν, έχουν όλες τις διακομιστές των top level domains. Και δεν ξέρω αν θυμάστε πολλές φορές που ακούγεται στη βιβλιογραφία, όταν γίνανε επιθέσεις από hackers Denial of Service, δηλαδή που στέλνουν πολλές αιτήσεις υπολογιστές, μία από αυτές τις επιθέσεις που μπορούσε να δημιουργήσει πρόβλημα στον παγκόσμιο ιντερνή ήταν σε αυτούς τους διακομιστές ρίζας. Γιατί αυτοί περιέχουν, είπαμε, χωρίς αυτούς δεν δουλεύει το όλο σύστημα. Περιέχουν τις διευθύνσεις των top level domains, των DNS των top level domains. Είπαμε ότι υπάρχουν ένα το domain ρίζας και από και κάτω τα top level domains, θα δούμε το ανάπτυρφο domain. Είναι και τα domains της χώρας. Δηλαδή η ιεραρχία που χρησιμοποιείται, π.χ., ξεκινάμε από εδώ, π.χ. ας πούμε στο Endoo, υπάρχει αυτός ο υπολογιστής, ο οποίος μετά είναι στο FHDA, μετά ATC και τελικά το όνομα του υπολογιστή είναι το Chal. Όλο αυτό θα πηκονίζεται ιεραρχικά με ένα τέτοιο τρόπο, δηλαδή αρχικά για να το βρούμε, μπορούμε να πάμε στον, για να βρούμε το πανεμιστήμιο αυτό, το FHDA, θα πάμε στο DNS server του Endoo, θα βρούμε εκεί το DNS server αυτού εδώ του οργανισμού, στη συνέχεια, γιατί μπορεί να έχει και δεύτερο επίπεδο ιεραρχίας, δηλαδή άλλο τμήμα εδώ, θα βρούμε το DNS server του ATC domain και αυτός ο DNS server θα περιέχει τελικά τη διεύθυνση του υπολογιστή που ξεκινάει από το Chal. Κάποια top level domains γενικά, το Aero τα έχετε δει αυτά, το Com, το Endoo, το Gove, το Info κτλ. και φυσικά οι κωδικοί χωρών. Υπάρχουν και top level domains θεωρούνται και οι κωδικοί χωρών. Για παράδειγμα, τώρα εσωτερικά η κάθε χώρα ορίζει τη δική της ιεραρχίας, δηλαδή η Ελλάδα έχει το GR top level domain και από εκεί πέρα μπορούμε να έχουμε gov.gr, org.gr, net.gr, endoo.gr, καθορίζει πάλι τη δική της ιεραρχίας. Δηλαδή, αυτό τι σημαίνει, endoo.gr, νομίζω ότι χρησιμοποιείται για τα σχολεία αυτό, σημαίνει ότι ο DNS server που θα είναι ο υπεύθυνος για το endoo.gr θα έχει όλα τους DNS server των επιμέρους εκπαιδευτικών ιδρυμάτων της χώρας, των σχολείων σε αυτή την περίπτωση. Τώρα, τα νομίσματα με δεύτερο επίπεδο μπορούν να έχουν τους DNS server πηχείς στο top level domain.com, έχουμε το DNS server για το Yahoo, το MSN, τη Microsoft και τα λοιπά. Μια άλλη δυνατότητα που έχει οριστεί είναι το λεγόμενο ανάστροφο domain, το inverse domain, που τι κάνει αυτό, πολλές φορές θέλουμε να κάνουμε την ερώτηση, ο υπολογιστής που έχει αυτό το IP τι όνομα έχει. Για να γίνει η επίλυση αυτής της ερώτησης έχει οριστεί το ανάστροφο domain. Και το ανάστροφο domain λέγεται ανάστροφο γιατί την IP διεύθυση, δηλαδή, ο υπολογιστής, για να ρωτήσω, ο υπολογιστής με την IP διεύθυση 132.34.45.121, ποιο είναι το όνομά του, ποιο όνομα του έχω δώσει, τον γράφω ανάποδα, δηλαδή, ξεκινώντας από το host μέρος και φτάνοντας προς το δίκτυο, δηλαδή, θα γραφτεί 121.45.34.132, ανάστροφα από την IP διεύθυσή του, και θα είναι απλά στο top level domain in addr.arpa, έτσι, για να γίνει η ανάστροφη αναζήτηση, δηλαδή, δίνοντας το IP να πάρω πίσω το όνομα του υπολογιστή. Αυτό είναι το. Τώρα, μπορούμε να έχουμε και μία γεωγραφική περιγραφή εγγραφής, ή μπορούμε να έχουμε στιασμό γεωγραφικών και ονομάτων οργανισμών, δηλαδή, για παράδειγμα, Lancaster.ac.uk, το AC είναι για το academic, έτσι, σημαίνει ότι αυτό είναι Ακαδημαϊκό Ίδρυμα της Αγγλίας και το UK, είπαμε, για το Ηνωμένο Βασίλειο. Τώρα, το πώς θα ορίσει τα ονόματα domain ένας οργανισμός είναι απλά είναι αποκλειστικά και θέμα του ίδιου, μπορεί να επιλέξει να μην έχει ιεραρχία, ή μπορεί να επιλέξει πολλά, αν είναι μεγάλος οργανισμός, να επιλέξει πολλά επίπεδα ιεραρχίας. Η εταιρεία fubar.com μπορεί να έχει, να ανανομάσει τον υπολογιστή, αν είναι μικρή, computer.fubar.com, computer.allocation.fubar.com, ή ακόμα μεγαλύτερη ιεραρχία, computer.division.allocation.fubar.com. Αυτό το πρότυπο μου δίνει την ελευθερία να επιλέξω εγώ τα επίπεδα ιεραρχίας, δεν ορίζεται κάποιο τέτοιο μέσα στο πρότυπο. Για παράδειγμα, αυτό που λέγαμε, πάλι, fubar.com μπορεί να έχει δύο τμήματα, ένα το Candy και ένα το Shop, και από εδώ, στο Candy, να έχει πάλι άλλους DNS server. Θα μπορούσε να είναι, δηλαδή, μία τέτοιου τύπου ιεραρχία. Τώρα, έχει επικρατήσει, σαν σύμβαση, ανάλογα με το είδος της λειτουργίας που κάνει ένα server, το όνομά του να ξεκινάει και από το αντίστοιχο πρωτόκολλο, δηλαδή, ένα server, ο FTP server, ας πούμε, της fubar.com, μπορεί το όνομά του να ξεκινάει FTP.fubar.com. Ο web server μπορεί να ξεκινάει 3w.fubar.com. Αυτό, βέβαια, εδώ θα πρέπει να τονίσουμε ότι είναι απλά μία σύμβαση. Δηλαδή, το να ξεκινάει το όνομα του υπολογιστή από 3w.fubar.com, δεν μου λέει απαραίτητα ότι αυτός ο υπολογιστής είναι web server. Θα είναι web server αν το αντίστοιχο πρόγραμμα web server τρέχει πάνω σε αυτόν. Δεν είναι απαραίτητο, λόγω του ονόματος, να είναι web server. Ναι, τις περισσότερες φορές, σχεδόν πάντα θα έχει και web server που θα τρέχει. Δεν είναι απαραίτητο. Web server μπορεί να είναι κι ένας υπολογιστής ο οποίος ξεκινάει με κάποιο άλλο όνομα. Αυτό απλά είναι μία σύμβαση που κάνουμε για ευκολία μεταξύ μας. Δεν είναι απαραίτητο, όμως, ο web server πρέπει το όνομά του να αρχίζει από 3w. Ο web server είναι το μηχάνημα στο οποίο τρέχει το αντίστοιχο λογισμικό για το web server. Αυτό δεν μου βάζει κάποιο περισσότερο στο ποιο πρέπει να είναι το όνομά του. Άρα, λοιπόν, να το διαχωρίσουμε αυτό. Άλλα τα ονόματα που βάζουμε στους υπολογιστές κι άλλα μπορεί να είναι η λειτουργία του. Η πραγματική τους λειτουργία. Είπαμε ότι χρησιμοποιούμε το μοντέλο DNS, ένα μοντέλο client server. Το βασικό του είναι που μου δίνει μεγάλη αυτονομία, ένα βασικό χαρακτηριστικό. Δηλαδή, μπορεί κάθε οργανισμός να δώσει ο ίδιος τα ονόματα στους υπολογιστές του. Μέσα εδώ, στο πανεπιστήμιο, η ονοματολογία των υπολογιστών δίνεται από εμάς. Δηλαδή, όταν ζητάμε ένα καινούριο IP, εμείς λέμε και το τελικό όνομα του υπολογιστή. Και το όνομα αυτό, μετά, κατόπιν, ενημερώνεται σε μια βάση δεδομένου στο DNS server του APYTHETA και μπορεί να είναι προσβάσιμο από οποιοδήποτε μετά σε όλο τον κόσμο. Δηλαδή, δεν χρειάζεται να ενημερωθεί κάπου αλλού. Γιατί να είναι προσβάσιμο από οποιοδήποτε σε όλο τον κόσμο. Γιατί, αν κάποιος θέλει έναν υπολογιστή πηχή από το domain auth.gr, αρκεί να ξέρει τη διεύθυνση του DNS domain του APYTHETA, του auth.gr, έτσι ώστε να ζητήσει από εκεί τα ονόματα. Και προφανώς, το top level domain, ο DNS server που έχει το top level domain του GR, έχει και τις IP διευθύνσεις των DNS server του auth.gr. Άρα, δηλαδή, μου δίνει μια πολύ μεγάλη αυτονομία. Τώρα, οι περισσότεροι οργανισμοί που έχουν απευθείαστητες στο ίντερν και θέλουν να έχουν στατικά IP, προφανώς έχουν το δικό τους DNS server, ανάλογα με την ιεραρχία τους, μπορεί να έχουν περισσότερους από ένα DNS server κατανεμημένους. Την ιεραρχία, είπαμε, την είδαμε και πριν. Μπορώ να έχω διαφορετικά επίπεδα, δηλαδή, ήταν να έχω ένα ξεχωριστό server για τη fumba.com και μετά από εκεί πέρα να χωρίσω σε δύο τμήματα, τα αντίσχατμήματά του, το Cante και το Shope, να έχουν ξεχωριστούς DNS server ή η ιεραρχία να είναι κάπως έτσι, δηλαδή, πάλι κι αυτός, όλα να βρίσκονται στο server του fumba.com, η ιεραρχία των ονομάτων. Τώρα, πολλές φορές, οι περισσότεροι αυτοί οι διακομιστές, πολλές φορές δεν υποστηρίζουν και την αυτοματινημέρωση. Λοιπόν, πρέπει κάποιος, για κάθε νέα προσθήκη υπολογιστή, να ανημερώσει τι βάζει σε δεδομένων, έτσι να βάλει μια καινούργια εγγραφή. Είπαμε ότι συνήθως οι μεγάλοι οργανισμοί δεν έχουν μόνο ένα κεντρικό DNS server, μπορεί να έχουν δύο ή περισσότερους. Και φυσικά χρειάζεται και μια αντίστοιχη ομάδα διαχείριση, η οποία να διαχειρίζεται και να κάνει όλες τις αλλαγές σε αυτούς τους DNS server. Τώρα, ένα χαρακτηριστικό που έχει το DNS είναι, θα λέγαμε, το χαρακτηριστικό της τοπικότητας. Δηλαδή, ο χρήστης, ένα χαρακτηριστικό που κάνει κάθε χρήστη μέσα σε ένα οργανισμό, είναι να ζητήσει, καταρχήν, τα ονόματα των τοπικών υπολογιστών, πιο συχνά από τα ονόματα των ομορφωσμένων υπολογιστών, και γενικά, ή τύνει, να αναζητεί γενικά υπολογιστές οι οποίοι κάθε φορά είναι περίπου οι ίδιοι. Άρα, λοιπόν, ο τοπικός υπολογιστής, ο τοπικός DNS server, μπορεί να κρατάει στη μνήμη του αυτά εδώ τα ονόματα για τις IP διευθύνσεις, έτσι ώστε τι? Να γίνεται η αναζήτηση πολύ πιο γρήγορα. Δηλαδή, έτσι δεν θα χρειάζεται όλα τα επίπεδα της ιεραρχίας. Αν βρίσκεται η διεύθυνση αυτή, έχει αναζητηθεί από πριν, άρα την ξέρει ήδη ο τοπικός διακομιστής, δεν θα χρειάζεται να ρωτήσουμε κανέναν άλλο παρά μόνο τον τοπικό διακομιστή. Είπαμε γιατί ακριβώς ισχύει αυτό, δηλαδή η αρχή της τοπικότητας. Μπορεί ένας τοπικός DNS server να διαχειριστεί τα περισσότερα αιτήματα, χωρίς να χρειαστεί να αποστείλει αιτήματα ο ίδιος σε άλλους απομακρυσμένους DNS server. Και φυσικά όσο περισσότερους DNS server έχω και στο πιο μεγάλο οργανισμό έχω, τόσο καλύτερα μπορεί να εξορροπηθεί αυτό το φορτίο και να μειωθούν τα προβλήματα του κεντρικού διακομιστή. Υπάρχουν, αν δεν κάνω λάθος, δύο DNS server. Βάζουμε δύο IP διευθύνσεις για DNS server. Με αυτόν τον τρόπο γίνεται καλύτερη εξορρόπηση φορτίου. Τώρα, είπαμε ότι ο server, στην ουσία, όλοι οι συνδέσεις μεταξύ διαφορετικών servers των DNS γίνονται με βάση μια αυστηρή ιεραρχία. Δηλαδή, μπορεί ο ένας server να μην ξέρει που είναι υπεύθυνος για τους... ο κάθε server είναι υπεύθυνος μόνο για τους υπολογιστές, οι οποίοι βρίσκονται στο ίδιο domain, έχουν την κοινή κατάληξη. Για να μπορέσουμε να αλληλεπιδράσουμε και να βρούμε τις IP διευθύνσεις, τα πρέπει όλα αυτές οι servers να συνεργαστούν μεταξύ τους και με ένα συγκεκριμένο τρόπο, έτσι ώστε να... και με ένα συγκεκριμένο τρόπο, ακολουθώντας πάντα αυτήν την ιαρχία, για να μπορέσουν τελικά να βρουν τις τελικές διευθύσεις. Και ένα άλλο σημαντικό χαραστικό είναι ότι ο κάθε server ξέρει τους server του κατώτερου επίπεδου του, δηλαδή ο διακομιστής για το.com ξέρει τη θέση του server για το fubar.com. Επίσης όμως, κάθε DNS server ξέρει την τοποθεσία των διακομιστών ρίζας. Τώρα, είπαμε ότι αν η μετάφραση αντιστοιχεί, ονομάζεται ανάλυση ονόματος, name resolution, για την επίλυση, πώς γίνεται η επίλυση του, θα δούμε λίγο με... Τώρα, πώς γίνεται η επίλυση ενός ονόματος, πώς ένας DNS server γνωρίζει για ένα συγκεκριμένο όνομα, ποια νοηραρχία και ποια άλλη DNS server υπάρχουν. Η απάντηση είναι ότι δεν το γνωρίζει. Γνωρίζει, όμως, τι? Γνωρίζει τη διεύθυνση του διακομιστή ρίζας. Δηλαδή, και ο διακομιστής ρίζας, ο κάθε root server μπορεί να κάνει τα υπόλοιπα. Δηλαδή, για παράδειγμα, έστω ότι θέλουμε να βρούμε το συγκεκριμένο όνομα, venus.valtukanti.fubar.com, τι θα κάνουμε? Ο πρώτος διακομιστής, στο πρώτο στάδιο, δεν βρίσκει τον υπολογιστή αυτό, δεν τον ξέρει. Άρα, λοιπόν, θα στείλει ένα έτοιμα στο διακομιστή ρίζας. Ο διακομιστής ρίζας δεν ξέρει το όνομα του υπολογιστή, αλλά ξέρει τι? Ξέρει τη διεύθυνση του DNS server για το fubar.com. Δηλαδή, στην ουσία, μάλλον ο διακομιστής δε θα δώσει το fubar.com. Θα ξέρει το.com, το διακομιστή του top level domain. Ο διακομιστής του top level domain, του.com, θα ξέρει τη διεύθυνση του DNS server του fubar.com και αυτός εδώ θα επικοινωνήσω, άρα, ξένοντας τη διεύθυνση αυτού του server, θα επικοινωνήσω με τον DNS server του fubar.com, γιατί υπάρχει κι άλλο πέντε ιεραρχίας. Θα γνωρίζει τη θέση του διακομιστή Valnat και στη συνέχεια θα επικοινωνήσει με τον διακομιστή, ο οποίος είναι υπεύθυνος για όλη αυτή την ιεραρχία μέσα στον υπολογιστή. Επιστρέφω, δηλαδή, ο διακομιστής, ο οποίος είναι στο τοίμα valnat.cante.fubar.com, θα επιστρέψει, τελικά, τη διεύθυνση αυτού εδώ, την αεπιδιέθυνση αυτού του υπολογιστή. Δηλαδή, η απάντηση αυτή μπορεί να, αν δεν υπάρχει αυτό το όνομα, η απάντηση θα είναι σφανό, ότι δεν υπάρχει αυτό το όνομα, αν δεν υπάρχει τέτοια ονομάσια. Λοιπόν, πάντοτε, ό,τι κάνουμε, είπαμε, για να επιλύσουμε ένα όνομα, είπαμε, ή όλη αυτή η διαδικασία ονομάζεται επαναληπτική ανάλυση ερωτήματος, δηλαδή, ζητάμε πριν πλήρη ανάλυση, δηλαδή, είτε θα μας επιστρέψει μια άγκυρη IP διεύθυνση, είτε ότι δεν υπάρχει τέτοια ονομασία. Τώρα, αφήστε τη βελτιστοποίηση, δηλαδή, η βελτιστοποίηση μπορεί να γίνει με δύο τρόπους, δηλαδή, η βελτιστοποίηση από της με αντιγραφή και προσωρινή αποθήκευση, δηλαδή, αντιγράφω διάφορα, κάθε διακομιστής ρίζας αντιγράφεται και τα αντιγραφά του υπάρχουν στον κόσμο, και όταν ένα νέο site εντάσσεται στο δίκτυο, τι γίνεται, γίνεται ένα νέο τοπικό DNS server και αυτό έχει μια λίστα από τους διακομιστές ρίζας και χρησιμοποιεί όποιο root, από τους 13 διακομιστές ρίζας που υπάρχουν στον κόσμο, όποιος είναι πιο κοντά, όποιος είναι πιο διαθέσιμος, αυτός ή γεωγραφικά πιο κοντά, μπορεί να θα απαντήσει. Λοιπόν, να έχω είπαμε ότι ο DNS server μπορεί να έχει και μνήμη CAS, δηλαδή, μια προσωρινή αποθήκευση των IP διευθύνσεων και των αναζητήσεων που έχουν γίνει, έτσι ώστε, κάθε φορά που αναζητάμε ένα όνομα, αρχικά ψάχνουμε στην τοπική μνήμη, στην CAS, έτσι. Εάν δεν υπάρχει εκεί, τότε γίνεται πάλι η όλη σειρά της των ονομάτων. Άρα, λοιπόν, με αυτόν τον τρόπο, έχουμε βελτιστοποίηση της απόδοσης. Τώρα, για τους τύπους καταχωρήσεις, η βασική τύπη είναι, καταρχήν, η εγγραφή τύπου α, δηλαδή address, το i από address, που ορίζει απλά έναν υπολογιστή, δηλαδή, σε ένα DNS server μέσα θα γράφαμε w.aus.gr, αντιστοιχή πηχή, ας πούμε, σε αυτό εδώ, στην IP διεύθυνση. Αυτό θα γράφαμε στο DNS server. Ένας άλλος τύπος είναι ο τύπος ψευδόνυμο. Αυτό γίνεται με την εγγραφή τύπου CNAME. Δηλαδή, είπαμε τι είναι το ψευδόνυμο. Σε έναν υπολογιστή που έχει ήδη ένα όνομα, μπορούμε να αντιστοιχήσουμε και ένα άλλο όνομα. Γιατί να μας είναι χρήσιμο κάτι τέτοιο. Δηλαδή, για παράδειγμα, μπορώ να έχω, είναι χρήσιμο πότε, μπορώ να έχω έναν υπολογιστή πηχή, ο υπολογιστής direct.com.aus.gr, ας πούμε ότι αντιστοιχή σε αυτήν εδώ τη διεύθυνση. Και θέλω κάποια στιγμή τον υπολογιστή αυτό να το κάνω web server. Άρα θέλω να του δώσω και ένα δεύτερο όνομα, να είναι το www.com.aus.gr. Θα κάνω μια εγγραφή τύπου CNAME και θα λέω ότι, ξέρεις, το www.com.aus.gr αντιστοιχεί στο direct.com.aus.gr. Δηλαδή, δίνω ένα πλέον όνομα. Εάν αύριο μεθαύριο αποφασίσω ότι ο web server δεν θα είναι αυτός ο υπολογιστής με αυτό το IP, θα είναι κάποιος άλλος. Παίρνω κάποιο καινούργιο υπολογιστή. Θα αλλάξω απλά αυτήν εδώ την εγγραφή, το CNAME. Δεν χρειάζεται να αλλάξω κάτι άλλο. Άρα, απλοποιεί πολύ περισσότερο, μου δίνει περισσότερη ευελιξία η δυνατότητα να έχω ψευδόνιμα στο DNS. Μια άλλη εγγραφή η οποία είναι σημαντική, καλό να το ξέρουμε, είναι η διεύθυνση, η εγγραφή τύπου MX, που σημαίνει Mail Exchange. Δηλαδή, οι υπολογιστές οι οποίοι είναι Mail Servers. Τι σημαίνει αυτό? Δηλαδή, στέλνω ένα Mail εγώ στο Mail μου στο sgoogle, στο physics.outgr. Ναι, αλλά πώς ξέρει ο υπολογιστής ότι όταν λέω at physics.outgr, ποιος είναι ο Mail Server του physics.outgr. Θα πρέπει μέσα στο DNS Server να ορίσω μια τέτοια εγγραφή σκιάθος physics.outgr, είναι τύπου MX, που σημαίνει ότι είναι ο Mail Server. Άρα, όταν εγώ βλέπω Mail που είναι at physics.outgr, ξέρω ότι ο υπολογιστής στον οποίο πρέπει να απευθυνθούν είναι αυτός εδώ. Το καταλαβαίνουμε? Αυτή η εγγραφή με βοηθάει στο να αναγνωρίσω τους Mail Servers. Μια άλλη εγγραφή, DNS, είναι αυτή που καθορίζεται τους άλλους DNS Servers που μπορεί να υπάρχουν στο ντομέν. Στο ντομέα αυτό, physics.outgr, υπάρχει και αυτός εδώ ο Server για ένα εσωτερικό, αυτό είναι στα αγγλικά, για το internal, δηλαδή για το subdomain του physics, internal.physics.outgr, αυτό πρέπει να γράφει internal στα αγγλικά, όχι στα ελληνικά. Ο DNS Server του subdomain είναι αυτός εδώ, ns1.physics.outgr. Καταλαβαίνουμε, δηλαδή ορίζει τους DNS Server για το subdomain, για ένα επίπεδο πιο κάτω από αυτό που είμαστε. Λοιπόν, για το τέτοιο MEX, για τις ετομογραφίες επίσης είπαμε, για να δούμε ένα παράδειγμα πώς λειτουργούν στην πράξη οι DNS Server. Έστω ότι ξεκινάω από τον υπολογιστή μου, θέλω να βρω, ανοίγω το browser, ανοίγω το μοντζίλα και θέλω να βρω το www.google.com. Στέλνω ότι το έτοιμά μου θα πάει στον τοπικού DNS Server του παρόχου μου. Μπορεί να είναι, αν είμαι στο πανεπιστήμιο, θα είναι ο DNS Server του πανεπιστήμιου, αν είμαι στο σπίτι μου μπορεί να είναι ο DNS Server του τοπικού παρόχου, της Otennet, της Forthnet και ούτω καθεξής. Αυτός τώρα δεν ξέρει τη διεύθυνση του www.google.com, αλλά ξέρει τη διεύθυνση του διακομιστή ρίζας. Άρα λοιπόν του λέει πες μου τη διεύθυνση του www.google.com, ο root server θα απαντήσει ότι δεν ξέρω τη διεύθυνση για το www.google.com, αλλά ξέρω τη διεύθυνση για το DNS Server για το.com domain. Άρα ρώτα αυτόν. Έτσι παίρνω τη διεύθυνση για το.com domain. Θα ρωτήσω το.com domain να μου πει πες μου αυτή τη διεύθυνση, δεν ξέρω αυτή τη διεύθυνση, αλλά ξέρω τι. Ξέρω τη διεύθυνση του DNS διακομιστή του google.com, έτσι ξέρω τη διεύθυνση του διακομιστή αυτού εδώ. Άρα ρώτα αυτόν, πάρε αυτήν την επιδιεύθυνση. Στέλνοντας λοιπόν το επόμενο έτοιμα στο google.com, στο DNS Server της Google, θα πάρω την απάντηση ότι η www.google.com η διεύθυνση είναι αυτή. Άρα έτσι μπορώ να βρω τον υπολογιστή που θέλω. Δηλαδή κανένας υπολογιστής σε κάθε επίπεδο δεν ξέρει τη διεύθυνση αυτού καθ'αυτού του υπολογιστή, την έχει μόνο ο DNS Server της Google. Ξέρει όμως τι, ξέρει τις IP διευθύνσεις των DNS Server του κατωτέωρου επίπεδου. Και έτσι ακριβώς ιεραρχικά δουλεύει το σύστημα. Και φυσικά στο πέμπτο βήμα τι θα γίνει, θα μου επιστρέψει στον υπολογιστή μου. Δηλαδή ο τοπικός DNS Server δρά, όχι μόνο σαν DNS Server, δηλαδή που απαντάς ερωτήματα, αλλά και σαν client, γιατί κάνει ερωτήσεις και σε άλλους DNS Server και παίρνει απαντήσεις. Η διεύθυνση www.google είναι αυτή. Ξέροντας τη διεύθυνση μπορώ να πάω σε αυτή τη σελίδα που θέλω. Έτσι ακριβώς γίνεται. Και τελικά κάνοντας έτοιμος αυτόν τον τέτοιο, κατεβάζω την ιστοσελίδα. Τώρα, αυτά όσα αφορά το DNS. Η δεύτερη εφαρμογή που θα δούμε είναι μια πολύ κοινή εφαρμογή, το ηλεκτρονικό ταχυδρομείο. Είναι το Simple Mail Transfer Protocol. Λέγεται το πρωτόκολλο εφαρμογής για τη μεταφορά mail. Είναι πάνω από TCP. Η λειτουργία του είναι παράδοση απλών μηνυμάτων κειμένου, το οποίο όμως συμπληρώνεται και από το MIME, δηλαδή Multi Purpose Internet Mail Extension, το οποίο επιτρέπει στο mail, επιτρέπει στο πρωτόκολλο SMTP, να μεταφέρει εικόνες, να μεταφέρει βίντεο, να μεταφέρει ελληνικούς χαρακτήρες, ρώσικους κλπ. Για να δούμε γιατί. Το SMTP ορίστηκε από το RFC 821, ορίζει μία κεφαλίδα, το μήνυμα αποτελείται από δύο κομμάτια, την επικεφαλίδα αλλά και το κυρίως σώμα του μηνύματος. Το βασικό ήταν, γιατί αυτό ορίστηκε στις τέλης δεκαετίας του 70 και αρχές δεκαετίας του 80 κάπου εκεί, ότι η επιτραπή χαρακτήρες που μπορεί να έχεις στο μήνυμα είναι 7-bit ASCII. Αυτό σημαίνει ότι σε ένα μήνυμα email μπορώ να έχω μόνο λατινικούς χαρακτήρες, δεν μπορώ να έχω τίποτα άλλο. Μας περιορίζει αυτομάτως σε αυτό το χαρακτήρι. Άρα πώς έχουμε εμείς να μπορούμε να στέλνουμε mail στα αλληνικά και όλα αυτά, ας πούμε, και να μεταφέρουμε και εικόνες και να κάνουμε και attachments. Αυτό γίνεται με το My, με το άλλο το πρωτόκολλο, δηλαδή που στην ουσία αυτό το πρωτόκολλο τι κάνει, κωδικοποιεί τις εικόνες, τις άλλες τα άλλα attachments και τα μεταφέρει πάλι με 7-bit ASCII, δηλαδή με λατινικούς χαρακτήρες, φτάνουν στο άλλο άκρο, αποκωδικοποιούνται και ξαναμετατρέπονται στην αρχική τους μορφή. Είπαμε ότι έχουν, για να δούμε λίγο τη μορφή του ηλεκτρονικού ταχυδρομού, την ξέρουμε όλοι έτσι, υπάρχει επικεφαλήδα, from, to, date, subject και τα λοιπά, έτσι και το κυρίως μήνυμα. Υπάρχουν δηλαδή κάποια keywords, δηλαδή το from, to, το cc, carbon copies, δηλαδή τι σημαίνει αυτό, το στέλνω σε περισσότερους, κάνει αντίγραφα με καρμπών θα λέγαμε, η ημερομηνία, ποιο χαρακτήρα, ποιο char set έχει χρησιμοποιήσει, ποιο ήταν το mailer software, ποιο ήταν το λογισμικό που έστειλε το mail, εδώ μπορεί να υπάρχει η διεύθυνση του Αποστολέα ή μια κωδικοποιημένη εικόνα του προσώπου του Αποστολέα. Είπαμε ότι μπορούμε να κάνουμε κοινοποιήσεις και να στείλουμε το ίδιο mail σε πολλά, ένα άλλο χαρακτικό είναι το blind αντίγραφο, BCC, δηλαδή αυτό σημαίνει ότι εγώ μεν το βλέπω που το στέλνω σε κάποιον άλλος, δεν ξέρει ότι έχω στείλει το ίδιο mail blind και σε άλλους και αυτό είναι μια επιλογή που έχουν αρκετά συστήματα ηλεκτρονικού ταχυδρομείου. Τα μηνύματα αυτά πώς τοποθετούνται? Αυτά τοποθετούνται σε μια σειρά και αποστέλονται στο mail πρόγραμμα, στο SMTP server, που είναι ένα λογισμικό, μπορεί να είναι Unix, μπορεί να είναι Windows, μπορεί να είναι οτιδήποτε που τρέχει σε έναν υπολογιστή. Για να δούμε λίγο κάποια σενάρια για την αποστολή και λείψη mail. Ας πούμε ότι έχουμε την Άλης και τον Μπόμ, οι οποίοι είναι και οι δύο συνδέονται απευθείας στον ίδιο mail server, δηλαδή άρα λοιπόν τα γραμματοκιβότια τους είναι στον ίδιο mail server. Για να διαβάσουμε λοιπόν τα μηνύματα χρειαζόμαστε απλά ένα user agent, ένα πρόγραμμα που ονομάζουμε user agent στο οποίο απλά κάνω login στο server και διαβάζω και παίρνω τα μηνύματα μου και τα μηνύματα πάνε απευθείας. Το πιο απλό σενάριο. Το δεύτερο σενάριο είναι όπου ο ένας ναι μεν βρίσκονται συνδεδεμένοι στον ίδιο mail server, βρίσκονται συνδεδεμένοι σε διαφορετικούς mail server και μέσω του internet, οπότε για να στείλει άλλη στον Μπόμ ένα μήνυμα θα πρέπει αυτό το μήνυμα με ένα user agent να πάει στον δικό της mail server, να ο mail server εδώ να γίνει mail client, δηλαδή το MTA σημαίνει message transfer agent, να γίνει client και να μεταφέρει το μήνυμα στον άλλον mail server, στο οποίο είναι στεδεμένος ο Μπόμ και ο Μπόμ στη συνέχεια μέσω ενός, πάλι προγραμμάτος user agent, να κατεβάσει το μήνυμα. Τώρα, άλλο σενάριο δεν συνδέονται απευθείας στο mail server, συνδέονται μέσω ενός LAN ή WAN. Άρα λοιπόν, εδώ τι χρειάζεται, χρειάζεται και η άλλη να έχει έναν SMTP, έναν MTA client στον υπολογιστή της, να στείλει το μήνυμα στο server και στη συνέχεια ο ίδιος server να δράσει ως client και να στείλει το μήνυμα στον άλλον mail server. Ή μια άλλη, ένα άλλο interaction, το πιο κοινό που συμβαίνει, σήμερα δηλαδή τι είναι, συνδέονται και οι δύο μέσω ενός LAN ή WAN στον mail server, δηλαδή προσέξτε, το ότι δείχνει LAN και WAN σημαίνει ότι δεν είναι απευθείας χρήστες του mail server, συνδέονται σε αυτόν μέσω ενός δικτύου, βρίσκονται σε άλλον υπολογιστή. Το πιο βασικό σενάριο που συμβαίνει τώρα, δηλαδή για μας ας πούμε, το να συνδεόμασταν απευθείας στο mail server, θα πρέπει να είμασταν μόνιμα συνδεδεμένοι στο σκιάθος, στο mail server του φυσικού. Η άλλη χρησιμοποιεί ένα MTA client, δηλαδή ένα SMTP client. Στέλνει το μήνυμα στον δικό της mail server, ο mail server συνέχεια το βάζει στη νουρά, το μετατρέπει και αυτός, χρησιμοποιεί και αυτός τις δυνατότητες client που έχει, γίνεται client και το στέλνει στον άλλον mail server στο δίκτυο και στη συνέχεια παραδίδεται στο mailbox του Bob. Αλλά τι γίνεται εδώ? Εδώ, για να κατεβάσει ο Bob, ο οποίος δεν συνδέεται απευθείας και αυτό στο mail server, για να κατεβάσει το mail του, θα χρειαστεί και ένα άλλο πρόγραμμα, ένα πρόγραμμα που λέγεται message access agent, το οποίο είναι και client και server, δηλαδή εδώ τρέχει ο server, ο message access agent και εδώ τρέχει ο client, έτσι ώστε να μπορέσει ο Bob να κατεβάσει το mail στον υπολογιστή του. Γιατί όμως θα χρειάζεται αυτό? Γιατί η διαδικασία του SMTP τελείωσε εδώ, παραδόθηκε, το μήνυμα παραδόθηκε. Τώρα πρέπει με κάποιο τρόπο να κατεβεί στον υπολογιστή του Bob. Άρα χρειάζομαι ένα άλλο πρωτόκολλο, ένα άλλο πρόγραμμα για να το κάνω αυτό. Και τι δουλειά κάνει αυτό το πρόγραμμα, είναι ένα message access agent, ένα πρόγραμμα δηλαδή που δεν στέλνει ταχυδρομείο, αλλά μου κατεβάζει το δικό μου το ταχυδρομείο από το mail server. Το καταλαβαίνουμε, ε? Δηλαδή, είπαμε ότι ο client τι κάνει, ο theta μηνύματα κάνει push, δηλαδή στέλνει το μήνυμα στον MTA client, θέλει το μήνυμα στον MTA server, ενώ ο message access agent τι κάνει, τα τραβάει, έτσι, τα κάνει pull, τα ζητάει, δηλαδή κάνει request και response με το mail server, έτσι, κατεβάζει τα μηνύματα. Τώρα, εν τω λόγου, Χρήσ, εντάξει, τα user, έτσι, δεν είπαμε, το λετσινό, τα ταχυδρομεία, τα PIME και τα άλλα για τα... Αν θέλουμε να δούμε τη μορφή του mail, ναι, το είδαμε αυτό, είπαμε υπάρχει το, τι είχα και η επικεφαλήδα, η διεύθυνση email, ξέρουμε όλοι, υπάρχει, στην ουσία τι, αυτό τι είναι, αυτό είναι το mailbox, έτσι, το ταχυδρομικό, θα λέγαμε, δηλαδή, αν στέλναμε κανονικό ταχυδρομή, ότι αυτό τι είναι, είναι το γραμματοκυβώτιο του χρήστη, έτσι, η διεύθυνση του γραμματοκυβωτήου του χρήστη και εδώ είναι το όνομα, το domain, έτσι, του mail server. Τώρα, το εύρος, με βάση αυτά που είπαμε, έτσι, στο σενάριο το 4, δηλαδή, με την Alice και τον Bob, το εύρος του SMTP είναι από εδώ μέχρι εδώ, δηλαδή, η Alice στέλνει με SMTP το μήνυμά της στο mail server, ο mail server της Alice στέλνει με SMTP το μήνυμα στο mail server του Bob και στη συνέχεια όμως, για να το κατεβάσει, ο Bob στον υπολογιστή του δεν χρησιμοποιεί SMTP, έτσι, τι θα χρησιμοποιήσει, θα χρησιμοποιήσει ένα άλλο πρωτόκολλο. Τώρα, εντάξει, υπάρχουν κάποιες άλλες επιδράσεις μεταξύ, η εγκαθίδιση της σύνδεσης μεταξύ mail και server, δηλαδή, hello και τα λοιπά και service ready, που γίνονται και στη συνέχεια, απαντάει με OK και γίνεται, ξεκινάει η μεταφορά του μηνύματος, δηλαδή, και πώς μεταφέ το μήνυμα, γραμμή, γραμμή, δηλαδή, στέλνει πρώτη, πρώτη γραμμή και λέει, απαντάει ο άλλος OK, το έλαβα, την άλλη γραμμή OK και ούτω καθαξής, έτσι, και κάπως έτσι γίνεται για αρχικά οι επικεφαλίδες, μετά είναι το, για κάθε, τέτοιο μπορώ να έχω μια απόκριση, έτσι, για κάθε σειρά, για κάθε κώδικο. Στη συνέχεια γίνεται το τραυματισμός της σύνδεσης, δηλαδή, στέλνω μήνυμα quit στον άλλο client και service close, έτσι. Δηλαδή, με αυτόν τον τρόπο γίνεται η μεταφορά των μηνυμάτων mail. Τώρα, αυτό που ήθελα να πω πριν, έτσι, είναι ότι στη συνέχεια, για να κατεβάσει ο Bob το μήνυμα από το mail server, χρησιμοποιεί ένα άλλο πρωτόκορο, το οποίο μπορεί να είναι είτε το POP3, post office protocol, είτε το IMAP4, έτσι. Δηλαδή, χρειαζόμαστε μετά ένα άλλο πρωτόκορο, το οποίο, όχι το SMTP, γιατί εδώ δεν υπάρχει SMTP, έχει παραδοθεί ήδη το mail, έτσι. Δηλαδή, είναι το αντίστοιχο τι, μου στέλνει κάποιος ένα δέμα, αλλά το δέμα αυτό, δεν φτάνει στο σπίτι μου, φτάνει, πού φτάνει, στο αρχιδρομείο της περιοχής μου. Ε, δεν πρέπει να πάω εγώ να το πάρω από το αρχιδρομείο, έτσι, αλλά δεν, αυτό όμως, αυτή η διαδικασία, δεν είναι μεταφορά μηνύματος, έτσι. Πάω και το παίρνω, είναι το αντίστοιχο με το POP3 πρωτόκορο, αυτή τη δουλειά κάνει. Και πάλι εδώ έχουμε mail server και τα λοιπά. Λοιπόν, σε αυτό δεν θέλω να πεκταθώ. Είπαμε ότι το Mime μπορεί να μου δώσει τι, μου δίνει τη δυνατότητα επέκτασης του SMTP, έτσι, ώστε να μπορώ να μεταφέρω διαφορετικούς χαρακτήρες, έτσι, ελληνικούς, κυριλικούς, οτιδήποτε άλλο, που δεν είναι 7-bit άσκη, να μεταφέρω τι, ακόμα και αρχεία EXE, εικόνες, βίντεο και τα λοιπά, οτιδήποτε αυτό. Και αυτό, πώς το κάνει, κωδικοποιώντας την ουσία αυτό το αντικείμενο σε 7-bit άσκη. Δηλαδή, αν ανοίξουμε ένα mail, ένα αρχείο μηνύματος, αν το ανοίξουμε και το δούμε, π.χ. ένα μήνυμα που περιέχει, και σε ένα τέτοιμα μία εικόνα, θα δείτε ότι αυτό πραγματικά που είναι, είναι τι, είναι ένα αρχείο κειμένου, έτσι, κειμένου, το οποίο όμως έχει κάποια ξεχωριστή κωδικοποίηση. Τώρα, υπάρχουν διαφορετικές μορφές κωδικοποίησης, για παράδειγμα, που κάνει το MyMail, για παράδειγμα, ας πούμε, για να δούμε λίγο πώς λειτουργεί π.χ. εδώ η άλλη στέλνει κάτι το οποίο δεν είναι άσκη, 7 κώδικα, ας πούμε, στα ελληνικά ένα μήνυμα, εδώ με το MyMail γίνεται 7-bit άσκη, το στέλνεται κανονικά, πάλι στον υπολογιστή του Bob, το πρόγραμμα ελεκτρονικού ταχυδρομίου του Bob, με το πρωτόκολλο MyMail, μετατρέπει αυτό το μήνυμα πάλι στο αρχικό μήνυμα, δηλαδή, που δεν ήταν κώδικα σάσκη. Η επικεφαλίδα του MyMail απλά θα έχει αυτό content-type, content-time κτλ, που μου λέει, δηλαδή, θα είναι στην... που μπαίνει η επικεφαλίδα του MyMail, μπαίνει μετά από την επικεφαλίδα του mail. Και έχω εδώ τώρα διάφορους τύπους δεδομένων, text, image, video, audio κτλ. Απλά ένα παράδειγμα, δηλαδή, ο τρύπος κωδικοποίησης Base64, πηχή του MyMail, τι θα έκανε, αν έχω ας πούμε αυτά τα bits, έχω εδώ δεδομένα τα οποία δεν είναι άσκη, αλλά τα οποία σε bit μορφή, αν τα χωρίσω σε 6 bit, είναι αυτά εδώ. Τα χωρίζω σε 6 bit, παίρνω εδώ το γαντίστικο δεκαδικό ισοδύναμο και τα μετατρέπω τελικά σε άσκη δεδομένα, σε 4 χαρακτήρες άσκη. Δηλαδή, εδώ μπορεί να είναι οτιδήποτε. Μπορεί να είναι εικόνα, μπορεί να είναι οτιδήποτε. Και τελικά το μετατρέπω σε, βλέπετε ότι, αυτά τι είναι, δηλαδή, ο κώδικας άσκης για το z τα ξέχομαι το πενιντά, για το i το 8 κτλ. Τα μετατρέπω με κάποιο τρόπο σε κώδικα άσκη και γίνονται χαρακτήρες τα οποία μπορεί να αποσταλούνε μέσα από το mail. Και υπάρχει ολόκληρος πίνακας μετατροπής που σου λέει ότι όταν η τιμή είναι για 64 διαφορετικές τιμές 6 bit, δηλαδή το 0 αντιστοιχεί σε άσκη α κεφαλαίο, το 1 αντιστοιχεί σε β κεφαλαίο και το καθεξής. Και είναι όλοι αυτοί χαρακτήρες οι οποίοι είναι εκτυπώσιμοι και μπορούν, όχι εκτυπώσιμοι, είναι 7 bit και μπορούν να μεταδοθούν μέσα από το mail. Εντάξει, το quoted πρέπει να πω είναι, έχει διαφορετική κωδικοποίηση, τέλος πάντων, πήχε ας πούμε ένα παράδειγμα. Και τέλος ένα άλλο χαρακτηριστικό που θα ήθελα να πω είναι πως λειτουργεί το διαδικτυακό mail. Δηλαδή πολλές φορές έτσι τι κάνουμε. Έχουμε mail στο Gmail, στο Hotmail κτλ αλλά εκεί μπαίνουμε μέσα από σελίδα. Δεν βλέπουμε κάποιον SMTP σερβάδα πως λειτουργεί αυτό. Για παράδειγμα, πάλι, η Alice και ο Bob θέλουν να στείλουν mail ο ένας τον άλλον, η Alice είναι στεδεμένη, έχει τον client, είναι στεδεμένη σε ένα SMTP server, ενώ ο Bob μένει μέσα σε ένα διαδικτυακό mail. Τι γίνεται, εδώ ο Bob μένει με το browser στον HTTP server, άρα εδώ στέλνει εντολές HTTP αλλά κάπου εδώ εσωτερικά σε αυτό εδώ το server, τι γίνεται, μεταφράζεται αυτό το mail σε SMTP και στέλνεται κανονικά σε SMTP. Δηλαδή το HTTP που βλέπουμε εμείς σε όλα αυτά τα διάσημα διαδικτυακά mail είναι απλά τι, ένα interface. Στη πραγματικότητα, πάλι το mail για να φύγει πρέπει να μεταφραστεί σε SMTP, άρα δηλαδή και οι mail servers αυτοί που λειτουργούν διαδικτυακά είναι ταυτόχρονα και SMTP servers. Δηλαδή, πάλι από HTTP σε HTTP, δηλαδή εδώ το πρωτόκολλο είναι HTTP, δηλαδή αλεπιδρώ με τον client, εγώ προσωπικά βλέπω μόνο HTTP, αλεπιδρώ με HTTP, αλλά εσωτερικά στο server μου υπάρχει SMTP client, που το στέλνει σε ένα άλλο SMTP server, που κι αυτός αλεπιδρά με HTTP. Άρα δηλαδή δεν μεταφέρεται mail μέσα από HTTP, πάντα το mail μεταφέρεται μέσα από SMTP, απλά κάπου γίνεται η μετάφραση με κάποιο τρόπο μέσα στο mail server. Και να δούμε τώρα, τώρα που είδαμε και το mail και το DNS, να δούμε το συνδυασμό τους. Δηλαδή, π.χ. θέλω από το PC μου να στείλω ένα mail στο someone, στη διεύθυνση at example.com. Το στέλνω στο τοπικό μου αρχικά SMTP server. Ο SMTP server μου όμως δεν ξέρει ποιος είναι αυτός ο mail server example.com. Άρα λοιπόν, θα στείλει σε άλλους DNS server, πάλι θα ακολουθήσει την ίδια δικασία, θα ρωτήσει ποιος είναι αυτός ο server, σε ποιον αντίστοιχη. Θα του στείλουμε DNS server το όνομα του διακομιστή του example.com. Θα ζητήσει για την εγγραφή MX για το example.com, από τον DNS server του example.com και θα του στείλει, ο DNS server θα στείλει στο mail server τη διεύθυνση του, πιανού, του mail server του example.com, του SMTP server. Και ξέροντας τη διεύθυνση αυτή, ο mail server θα επικοινωνήσει μόνος του με τον άλλον mail server, στο example.com και θα αποστείλει το mail. Δηλαδή, με αυτόν τον τρόπο και με τη χρήση του DNS λειτουργούν οι mail servers. Τώρα, άλλα χαρακτηριστικά που μπορείτε να έχετε ακούσει είναι τα λεγόμενα Exploders, οι λίστες αλληλογραφίας. Δηλαδή, τι είναι αυτά, είναι λογισμικά τα οποία μου επιτρέπουν να στέλνω διάφορα μηνύματα σε μία λίστα, δηλαδή να πηγαίνει το ίδιο μήνυμα σε πολλούς παραλήπτες. Να αντιγράφει το μήνυμα και να πηγαίνει σε πολλούς παραλήπτες. Υπάρχουν πολλά τέτοια προγράμματα διαθέσιμα, πολλά τέτοια λογισμικά, έχουν μία βάση δεδομένων με τους παραλήπτες που είναι στη λίστα και στέλνουν ό,τι mail έρχεται, το αντιγράφουν, κάνουν ακριβές αντίγραφω και το στέλνουν σε όλους τους παραλήπτες της λίστας. Αυτά μπορούν να έχουν μία τέτοια μορφή, δηλαδή η λίστα friends και να ορίζω απλά τις διευθύνσεις email των friends, η λίστα customers, η λίστα basketball interest κλπ. Και αυτό γίνεται φυσικά μία άλλη έννοια στο email, είναι οι λεγόμενες πύλες αλληλογραφίας, δηλαδή είναι αυτά τα λογισμικά τα οποία περιέχουν μέσα τη λίστα και έχουν ένα υπολογιστή ο οποίος είναι αφιερωμένος σε αυτό το σκόπο, στην επεξεργασία του ταχυδρομείου και της λίστας. Δηλαδή αυτός τι κάνει, στέλνει εδώ το mail σε αυτήν την πύλη, υπάρχει εδώ εξπλόντερ ο οποίος αντιγράφει αυτό το mail και συνέχεια το μεταφέρει σε διάφορους άλλους υπολογιστές σε όλα τα mail της λίστας. |