[το τραγούδι μετράει αντίστροφα: 7, 6, 5, 4, 3, 2, 1] Το Διαδίκτυο: Πακέτα, Δρομολόγηση και Αξιοπιστία Γεια, με λένε Λυν, είμαι μηχανικός λογισμικού στο Spotify και η πρώτη που παραδέχομαι ότι συχνά θεωρώ δεδομένη την αξιοπιστία του διαδικτύου. Μόνο και μόνο ο αριθμός των πληροφοριών που μεταδίδονται στο διαδίκτυο είναι εκπληκτικός. Αλλά πως γίνεται κάθε πληροφορία να μεταδίδεται σε εσάς αξιόπιστα; Θέλετε ένα τραγούδι. Ο υπολογιστής σας και ο διακομιστής μας συνδέονται απευθείας και η αποστολή του τραγουδιού γίνεται σε μια απευθείας, αφοσιωμένη γραμμή, φαινομενικά. Αλλά, αν αποτελούσαν το διαδίκτυο απευθείας, αφοσιωμένες συνδέσεις, θα αδυνατούσαμε, με την σύνδεση πολλών χρηστών, να έχουμε μια ατέρμονη λειτουργία. Κανείς δεν μας εγγυάται ότι κάθε σύρμα και υπολογιστής θα λειτουργούν πάντα. Τα δεδομένα ταξιδεύουν στο διαδίκτυο με έναν λιγότερο απευθείας τρόπο. Πριν πολλά χρόνια, στις αρχές της δεκαετίας του 70, εγώ και ο συνεταίρος μου, Μπομ Καχν, αρχίσαμε τον σχεδιασμό των πρωτοκόλλων και της αρχιτεκτονικής του σύγχρονου διαδικτύου, μια δική μας ευθύνη και ευκαιρία. Έτσι, συμμετέχουμε στην ανάπτυξή και εξέλιξή του διαδικτύου από τότε έως και σήμερα. Η μετάδοση πληροφοριών μεταξύ υπολογιστών γίνεται με έναν άκρως ενδιαφέροντα τρόπο. Δεν ακολουθεί ένα σταθερό μονοπάτι. Το μονοπάτι μπορεί να αλλάξει στα μισά της συζήτησης μεταξύ υπολογιστών. Οι πληροφορίες μεταδίδονται με πακέτο πληροφοριών μεταξύ διαδικτυακών τοποθεσιών με τρόπο παρόμοιο με αυτόν που γίνεται η μετακίνηση με αυτοκίνητα σε πολλά μέρη. Αναλόγως την συμφόρηση στους δρόμους ή την κατάσταση των οδοστρωμάτων, μπορεί, κάθε φορά,για τον ίδιο προορισμό, να επιλέξετε ή να αναγκάζεστε να πάρετε άλλο δρόμο. Και όπως, μέσα σε αυτοκίνητα, μεταφέρουμε ποικίλα πράγματα, πολλών ειδών ψηφιακές πληροφορίες μεταφέρονται με πακέτα IP όμως υπάρχουν όρια.Για παράδειγμα, η μεταφορά διαστημικού οχήματος από το χώρο κατασκευής στην τοποθεσία εκτόξευσής του επιβάλλει την αποσυναρμολόγηση του, γιατί δεν χωράει σε ένα όχημα, και γίνεται με στόλο οχημάτων. Μπορεί όλα να ακολουθήσουν άλλη πορεία ,φτάνοντας στον προορισμό σε διαφορετικούς χρόνους. Αλλά μόλις όλα τα κομμάτια φτάσουν,συναρμολογούνται ξανά σχηματίζοντας ένα ενιαίο διαστημικό όχημα έτοιμο για εκτόξευση. Οι λεπτομέρειες στο διαδίκτυο λειτουργούν παρόμοια. Αν έχεις μια μεγάλη εικόνα που θέλεις να στείλεις σε έναν φίλο ή να ανεβάσεις σε έναν ιστότοπο, που μπορεί να αποτελείται από δεκάδες μυριάδες μπιτ πολλών 1 και 0, υπερβολικά πολλά για να σταλούν σε ένα πακέτο. Αφού είναι δεδομένα σε έναν υπολογιστή, ο υπολογιστής που στέλνει την εικόνα μπορεί γρήγορα να την σπάσει σε εκατοντάδες ή ακόμα και χιλιάδες μικρότερα μέρη που ονομάζονται πακέτα. Σε αντίθεση με τα αυτοκίνητα ή τα φορτηγά αυτά τα πακέτα δεν έχουν οδηγούς και δεν επιλέγουν την διαδρομή τους. Κάθε πακέτο έχει την διαδικτυακή διεύθυνση από όπου προήλθε και που πηγαίνει. Ειδικοί υπολογιστές στο διαδίκτυο που αποκαλούνται δρομολογητές λειτουργούν σαν διαχειριστές κίνησης για την ομαλή διακίνηση των πακέτων. Αν μια διαδρομή είναι με συμφόρηση, ξεχωριστά πακέτα μπορεί να παίρνουν διαφορετικές διαδρομές στο διαδίκτυο και μπορεί να φτάσουν στον προορισμό σε ελάχιστα διαφορετικές ώρες ή ακόμα και εκτός σειράς. Ας μιλήσουμε για το πώς λειτουργεί αυτό. Το πρωτόκολλο διαδικτύου το έχει ως μέρος του και ως τέτοιο μέρος, κάθε δρομολογητής ιχνηλατεί πολλαπλά μονοπάτια για την αποστολή πακέτων και διαλέγει το φθηνότερο διαθέσιμο μονοπάτι για κάθε τμήμα δεδομένων βάση της διεύθυνσης προορισμού IP για αυτό το πακέτο. Σε αυτήν την περίπτωση, φθηνότερο δεν σημαίνει ανέξοδο, αλλά χρόνος και μη-τεχνικοί παράγοντες όπως πολιτική και σχέσεις μεταξύ εταιρειών. Συχνά η καλύτερη διαδρομή για το ταξίδι των δεδομένων δεν είναι απαραίτητα η πιο άμεση. Η ύπαρξη εναλλακτικών για μονοπάτια κάνει το δίκτυο ανεκτικό βλαβών. Που σημαίνει ότι το δίκτυο μπορεί να συνεχίζει να στέλνει πακέτα αν κάτι πάει ανεπανόρθωτα λάθος. Αυτή είναι η βάση για τη βασική αρχή της αξιοπιστίας του διαδικτύου. Τώρα, τι γίνεται άμα θέλετε να ζητήσετε κάποια δεδομένα και δεν παραδόθηκαν όλα τα δεδομένα; Πχ θέλετε να ακούσετε ένα τραγούδι. Πως μπορείτε να είστε 100% σίγουρες ότι όλα τα δεδομένα θα παραδοθούν έτσι το τραγούδι θα αναπαράγεται τέλεια; Σας συστήνω τον καινούριο σας καλύτερο φίλο, το TCP (πρωτόκολλο για τον έλεγχο της μετάδοσης). Το TCP διαχειρίζεται την αποστολή και λήψη όλων των δεδομένων σας ως πακέτων. Δείτε το σαν μια εγγυημένη ταχυδρομική υπηρεσία. Όταν ζητάτε ένα τραγούδι στην συσκευή σας, Spotify στέλνει ένα τραγούδι αποσυναρμολογημένο σε πολλά πακέτα. Όταν φτάσουν τα πακέτα σας, το TCP κάνει πλήρη απολογισμό και στέλνει αναγνωρίσεις κάθε πακέτου που έχει ληφθεί. 'Αν όλα τα πακέτα φτάσουν, το TCP υπογράφει για την παράδοσή σας και είστε εντάξει. (παίζει τραγούδι) Αν το TCP δει πως κάποια πακέτα λείπουν, δεν υπογράφει, διαφορετικά το τραγούδι σας δεν θα ακούγεται το ίδιο καλό ή τμήματα του τραγουδιού μπορεί να λείπουν. Για κάθε πακέτο που λείπει ή είναι ανολοκλήρωτο, Spotify θα τα ξαναστείλει. Όταν το TCP επαληθεύσει την παράδοση πολλών πακέτων για αυτό το ένα αίτημα τραγουδιού, το τραγούδι σας θα αρχίσει να αναπαράγεται. Αυτό που είναι εξαιρετικό για το TCP και το σύστημα δρομολογητών είναι ότι είναι κλιμακώσιμα. Μπορούν να δουλεύουν με 8 ή 8 δισεκατομμύρια συσκευές. Πράγματι, χάρη σε αυτές τις αρχές τις ανοχής λάθους και πλεονασμού, όσο περισσότερους δρομολογητές προσθέτουμε τόσο περισσότερο αξιόπιστο γίνεται το διαδίκτυο. Μπορούμε να αναπτύξουμε και να κλιμακώσουμε το διαδίκτυο χωρίς να διακόπτουμε την υπηρεσία για όσους το χρησιμοποιούν. Το διαδίκτυο αποτελείται από εκατοντάδες χιλιάδες δικτύων και δισεκατομμύρια υπολογιστών και συσκευών που συνδέονται. Αυτά τα διαφορετικά σ συστήματα που κάνουν το διαδίκτυο συνδέονται, επικοινωνούν και δουλεύουν μαζί χάρη σε συμφωνημένα στάνταρντ για το πώς τα δεδομένα στέλνονται στο διαδίκτυο. Οι υπολογιστικές συσκευές, ή οι δρομολογητές βοηθούν τα πακέτα να χαράζουν τον δρόμο τους για τον προορισμό όπου και συναρμολογούνται, αν χρειάζεται, σε σειρά. Αυτό συμβαίνει δισεκατομμύρια φορές την ημέρα, είτε εσείς και οι άλλοι στέλνετε email, πηγαίνετε σε μια ιστοσελίδα, πραγματοποιείτε μια βιντεο-συνομιλία, χρησιμοποιείτε μια εφαρμογή κινητού ή όταν ανιχνευτές ή συσκευές στο διαδίκτυο μιλούν μεταξύ τους.