Πώς δουλεύει το διαδίκτυο
Πακέτα, TCP/IP, DNS και το λουκέτο του HTTPS.
40 λεπτά
Θα μάθεις να
- Να εξηγείς πώς τα δεδομένα χωρίζονται σε πακέτα και ξαναενώνονται στον προορισμό.
- Να περιγράφεις τον ρόλο των IP, TCP και UDP, και πότε ταιριάζει το καθένα από τα δύο τελευταία.
- Να περιγράφεις τι κάνει το DNS και τα βήματα από τη στιγμή που γράφεις μια διεύθυνση ως τη στιγμή που εμφανίζεται η σελίδα.
- Να εξηγείς τι εξασφαλίζει το HTTPS και τι όχι, και να διαβάζεις σωστά το όνομα τομέα σε έναν σύνδεσμο.
Κανόνες για να συνεννοηθούν οι μηχανές
Ένα τηλεφώνημα έχει κανόνες που κανείς δεν σου τους δίδαξε ρητά: αυτός που σηκώνει λέει «Ναι;», μιλάει ένας τη φορά, κι αν κάτι δεν ακουστεί, λες «Πώς;» και ο άλλος το επαναλαμβάνει. Χωρίς αυτούς, δύο άνθρωποι θα μιλούσαν ταυτόχρονα και κανείς δεν θα καταλάβαινε τίποτα.
Οι υπολογιστές χρειάζονται το ίδιο, αλλά γραμμένο με απόλυτη ακρίβεια. Ένα σύνολο κανόνων για το πώς ανταλλάσσονται δεδομένα λέγεται πρωτόκολλο (protocol). Το διαδίκτυο δουλεύει επειδή δισεκατομμύρια συσκευές, από χιλιάδες κατασκευαστές, ακολουθούν τα ίδια πρωτόκολλα.
Τα δεδομένα ταξιδεύουν σε πακέτα
Μια φωτογραφία που στέλνεις δεν ταξιδεύει ως ένα κομμάτι. Χωρίζεται σε πολλά μικρά κομμάτια, τα πακέτα (packets). Σε ένα συνηθισμένο δίκτυο Ethernet ή Wi-Fi, ένα πακέτο χωράει περίπου byte. Μια φωτογραφία των MB γίνεται λοιπόν περίπου πακέτα.
Κάθε πακέτο έχει δύο μέρη:
- την κεφαλίδα (header), με τη διεύθυνση IP του αποστολέα, τη διεύθυνση IP του παραλήπτη, και έναν αύξοντα αριθμό που λέει ποιο κομμάτι είναι,
- το φορτίο (payload), δηλαδή το ίδιο το κομμάτι των δεδομένων.
Τα πακέτα ταξιδεύουν ανεξάρτητα το ένα από το άλλο. Κάθε δρομολογητής στον δρόμο διαβάζει τη διεύθυνση του παραλήπτη και στέλνει το πακέτο στον επόμενο δρομολογητή που το φέρνει πιο κοντά. Δύο πακέτα της ίδιας φωτογραφίας μπορεί να πάρουν διαφορετικούς δρόμους και να φτάσουν με διαφορετική σειρά. Στον προορισμό, οι αύξοντες αριθμοί επιτρέπουν να ξαναμπούν στη σωστή σειρά.
Η οικογένεια TCP/IP
Τα πρωτόκολλα του διαδικτύου οργανώνονται σε επίπεδα. Κάθε επίπεδο λύνει ένα πρόβλημα και στηρίζεται στο από κάτω του.
| Επίπεδο | Τι κάνει | Πρωτόκολλα |
|---|---|---|
| Εφαρμογής | τι λένε μεταξύ τους τα προγράμματα | HTTP, HTTPS, DNS, ηλεκτρονικό ταχυδρομείο |
| Μεταφοράς | πώς φτάνουν ολόκληρα τα δεδομένα | TCP, UDP |
| Διαδικτύου | πώς βρίσκει τον δρόμο του κάθε πακέτο | IP |
| Πρόσβασης δικτύου | πώς περνούν τα bit από το καλώδιο ή τον αέρα | Ethernet, Wi-Fi |
IP (Internet Protocol): δίνει διευθύνσεις και δρομολογεί κάθε πακέτο χωριστά. Κάνει ό,τι καλύτερο μπορεί, αλλά δεν εγγυάται τίποτα: ένα πακέτο μπορεί να χαθεί, να καθυστερήσει ή να φτάσει δύο φορές.
TCP (Transmission Control Protocol): χτίζει αξιοπιστία πάνω στο IP. Αριθμεί τα πακέτα, ο παραλήπτης επιβεβαιώνει ότι τα πήρε, και ό,τι χάθηκε ξαναστέλνεται. Στο τέλος τα δεδομένα είναι ολόκληρα και στη σωστή σειρά. Το χρησιμοποιούν οι ιστοσελίδες, τα μηνύματα, η λήψη αρχείων: εκεί ένα χαμένο κομμάτι θα χαλούσε όλο το αποτέλεσμα.
UDP (User Datagram Protocol): στέλνει τα πακέτα χωρίς επιβεβαιώσεις και χωρίς επανάληψη. Είναι πιο γρήγορο, και ταιριάζει εκεί όπου η ταχύτητα μετράει περισσότερο από την τελειότητα: βιντεοκλήσεις, διαδικτυακά παιχνίδια, ζωντανές μεταδόσεις. Σε μια βιντεοκλήση, ένα πακέτο που θα ξαναερχόταν ένα δευτερόλεπτο αργότερα είναι άχρηστο: η κουβέντα έχει ήδη προχωρήσει. Καλύτερα ένα στιγμιαίο «κόλλημα» της εικόνας.
DNS: ο τηλεφωνικός κατάλογος του διαδικτύου
Οι δρομολογητές καταλαβαίνουν μόνο διευθύνσεις IP. Οι άνθρωποι όμως θυμούνται ονόματα, όπως www.example.com. Τη μετάφραση από το ένα στο άλλο την κάνει το DNS (Domain Name System), το Σύστημα Ονομάτων Τομέα.
Όταν γράφεις ένα όνομα, η συσκευή σου ρωτά έναν διακομιστή DNS, συνήθως του παρόχου σου: «ποια είναι η διεύθυνση IP του www.example.com;». Εκείνος απαντά με μια διεύθυνση, και μόνο τότε μπορεί να ξεκινήσει η σύνδεση.
Τα ονόματα είναι οργανωμένα ιεραρχικά και διαβάζονται από δεξιά προς τα αριστερά:
.gr,.com,.euείναι οι τομείς ανωτάτου επιπέδου,example.comείναι ο τομέας που έχει κατοχυρώσει κάποιος,www.example.comείναι ένα όνομα μέσα σε αυτόν τον τομέα.
Αν ο διακομιστής DNS δεν ξέρει την απάντηση, ρωτά με τη σειρά: πρώτα τους διακομιστές της ρίζας, μετά αυτούς του .com, μετά αυτούς του example.com. Τις απαντήσεις τις θυμάται για λίγο (cache), ώστε η επόμενη ερώτηση για το ίδιο όνομα να απαντηθεί αμέσως.
Διευθύνσεις ιστοσελίδων και HTTP
Μια διεύθυνση ιστοσελίδας (URL) έχει κομμάτια με διαφορετικό ρόλο:
https://www.example.com/mathimata/diktya.html
| Κομμάτι | Τι είναι |
|---|---|
https | το πρωτόκολλο |
www.example.com | το όνομα του διακομιστή, που θα μεταφράσει το DNS |
/mathimata/diktya.html | η διαδρομή: ποια σελίδα ζητάμε από αυτόν τον διακομιστή |
Το HTTP (HyperText Transfer Protocol) είναι το πρωτόκολλο με το οποίο ο φυλλομετρητής ζητά μια σελίδα και ο διακομιστής απαντά. Κάθε απάντηση ξεκινά με έναν κωδικό κατάστασης:
| Κωδικός | Σημαίνει |
|---|---|
200 | εντάξει, ορίστε η σελίδα |
301 | η σελίδα μετακόμισε, να η νέα διεύθυνση |
404 | δεν υπάρχει τέτοια σελίδα σε αυτόν τον διακομιστή |
500 | κάτι χάλασε στον διακομιστή |
HTTPS και το λουκέτο
Με σκέτο HTTP τα δεδομένα ταξιδεύουν όπως είναι. Όποιος βρίσκεται στον δρόμο τους, για παράδειγμα κάποιος στο ίδιο ανοιχτό Wi-Fi μιας καφετέριας, θα μπορούσε να διαβάσει έναν κωδικό που στέλνεις.
Το HTTPS είναι HTTP μέσα σε ένα κρυπτογραφημένο «κανάλι» (το πρωτόκολλο TLS). Κάνει δύο πράγματα:
- Κρυπτογράφηση. Τα δεδομένα ανάμεσα στη συσκευή σου και στον διακομιστή γίνονται ακατανόητα για οποιονδήποτε ενδιάμεσο, και δεν μπορούν να αλλοιωθούν στον δρόμο χωρίς να γίνει αντιληπτό.
- Πιστοποιητικό. Ο διακομιστής αποδεικνύει, με ένα ψηφιακό πιστοποιητικό, ότι ελέγχει πράγματι το όνομα τομέα που βλέπεις στη γραμμή διευθύνσεων.
Το λουκέτο δίπλα στη διεύθυνση σημαίνει ακριβώς αυτά τα δύο. Τίποτα παραπάνω.
Λυμένα παραδείγματα
Παράδειγμα 1
Γράφεις https://www.example.com/index.html στον φυλλομετρητή και πατάς Enter. Περιέγραψε τα βήματα μέχρι να εμφανιστεί η σελίδα.
Δοκίμασέ το πρώτα. Μετά δες τη λύση.
Παράδειγμα 2
Σου έρχεται μήνυμα: «Ο λογαριασμός σας κλειδώθηκε. Συνδεθείτε εδώ: https://trapeza-kalos.gr.eisodos-asfaleias.com/login». Η τράπεζά σου έχει τον ιστότοπο trapeza-kalos.gr. Είναι ασφαλές να συνδεθείς;
Δοκίμασέ το πρώτα. Μετά δες τη λύση.
Ασκήσεις
Πρώτα ερωτήσεις με επιλογές: διαλέγεις, πατάς «Έλεγξε» και μαθαίνεις αμέσως αν το βρήκες και γιατί. Στο τέλος, λίγες ασκήσεις χωρίς επιλογές — εκεί κρύβεται μόνο η απάντηση.
Τα κατάφερες;
- Να εξηγείς πώς τα δεδομένα χωρίζονται σε πακέτα και ξαναενώνονται στον προορισμό.
- Να περιγράφεις τον ρόλο των IP, TCP και UDP, και πότε ταιριάζει το καθένα από τα δύο τελευταία.
- Να περιγράφεις τι κάνει το DNS και τα βήματα από τη στιγμή που γράφεις μια διεύθυνση ως τη στιγμή που εμφανίζεται η σελίδα.
- Να εξηγείς τι εξασφαλίζει το HTTPS και τι όχι, και να διαβάζεις σωστά το όνομα τομέα σε έναν σύνδεσμο.
Λύσε τις ασκήσεις πιο πάνω και θα δεις εδώ πού στέκεσαι.