Διάλεξη 2 / Διάλεξη 2 - Γούδος Σωτήριος (ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ, 2014)
Διάλεξη 2: Λοιπόν, δεύτερη ενότητα, δίχτυα επικοινωνίας και υπολογιστών, μήμα φυσικής, πρόγραμμα μεταπτιακών σπουδών, ραδιολυθρολογίας. Τώρα, τα χαρακτηριστικά των πρωτοκόλων. Τα πρωτόκολλα μπορεί να είναι άμεσα ή έμεσα. Για να δούμε λίγο τι σημαίνουν. Τι σημαίνουν όλα αυτά. Άμεσα σημαίνει ότι έχω μια απευθείας επικοινωνία μεταξύ σημείου προς σημείο. Ή αλλιώς μοιράζονται μια σύνδεση πολλαπλών σημείων. Δηλαδή μπορεί να επικοινωνήσει σημείου προς πολλά σημεία. Και τα εδομένα μεταφέρονται απευθείας χωρίς κάποια μαζάροντα. Για παράδειγμα, ας πούμε, σε ένα δίκτυο τύπου έθαρνετ. Έχω μια σύνδεση σημείου προς πολλαπλά σημεία. Τα εδομένα μεταφέρονται απευθείας μεταξύ. Το μόνο που μεσολαβεί είναι ο μεταγωγός έθαρνετ και το καλώδιο. Θα μπορούσε να είναι και έμεσα. Δηλαδή, έμεσα όπου τα εδομένα μεταφέρονται μέσω ενός δικτύου μεταγωγής ή μέσω του διαδικτύου. Για παράδειγμα. Και η μεταφορά εδομένων σε αυτή την περιπτώση κρατάει και από άλλες οντόπες. Βλέπετε πηχή από τους κόμβους του δικτύου. Το πρωτόκολλο του ίντερνετ είναι ένα έμμεσο πρωτόκολλο. Δεν μεταδέται. Απευθείας εξαρτάται μέσα η μετάδοσή του από τους κόμβους του δικτύου. Και όπως είπαμε και στην προηγούμενη ενότητα, τα πρωτόκολλα μπορεί να είναι μονοληθικά ή δομημένα. Μονοληθικά. Δηλαδή, από την αρχή, από το επίδοση εφαρμογής μέχρι το φυσικό επίπεδο, ορίσει ένα πρωτόκολλο το οποίο να κάνει όλες τις λειτουργίες. Από την αλήθεια με το τέλος. Προφανώς αυτό δεν είναι τόσο εύκολο. Αν ήθελα να αλλάξω κάτι σε αυτό, θα έπρεπε να αλλάζω όλο το πρωτόκολλο από την αρχή μέχρι κάτω. Ενώ αντιθέτως, το να το σπάσω, να το κάνω δομημένο, δηλαδή να το σπάσω σε μικρά κομμάτια, που το κάθε ένα έχει τη δικιά του, κάνει διά του η εργασία και τη δική του λογική, προφανώς παρουσιάζει πολλά περισσότερα πλεονεκτήματα. Και τα πρωτόκολλα μπορεί να είναι συμμετρικά, δηλαδή επικοινωνία μεταξύ ίδιων οντοτήτων. Για παράδειγμα, το τόρεντ δεν είναι peer-to-peer, είναι μεταξύ ίδιων οντοτήτων. Ή μπορεί να συμμετρά, για παράδειγμα, πελάτης εξυπηρετητής, για παράδειγμα, web browser και web server. Δεν είναι οι ίδιες οντότητες, είναι διαφορετικές. FTP client και FTP server, διαφορετικές οντότητες. Ασήμετρα. Τώρα, για ποιο λόγο να χρησιμοποιήσω πρότυπα. Για να δούμε λίγο αριθμητικά, τι με βοηθάνε τα πρότυπα και τι όχι. Δηλαδή, ας υποθέσω ότι έχω K διαφορετικές πηγές και L διαφορετικούς δέκτες. Δηλαδή, K διαφορετικούς υπολογιστές, K υπολογιστές με διαφορετικά λειτουργικά συστήματα και L δέκτες, άλλους L υπολογιστές με επίσης διαφορετικά λειτουργικά συστήματα. Διαφορετικά λογισμικά, οτιδήποτε. Για να τους συνδέσω όλους αυτούς μεταξύ τους, θα ήθελα τι? Θα ήθελα KPL πρωτόκολλα και δύο KL υλοποιήσεις αυτών των πρωτοκόλων. Δηλαδή, καταλαβαίνουμε διαφορά άλλο το πρωτόκολλο, άλλο η υλοποίηση του πρωτοκόλου. Για παράδειγμα, το TCP-IP είναι το κοινό πρωτόκολλο. Άλλη, όμως, η υλοποίηση του Stag Windows 7, ας πούμε, από τη Microsoft και άλλη, η υλοποίηση του TCP-IP σε ένα σύστημα Linux. Ξέρω εγώ με Ubuntu. Είναι το ίδιο πρωτόκολλο, αλλά έχει διαφορετικές υλοποίησεις. Το Implementation, η υλοποίηση, είναι διαφορετική. Αν, αντιθέτως, χρησιμοποιήσεις ένα κοινό πρωτόκολλο, χρησιμοποίησες ένα κοινό πρωτόκολλο, τότε θα ήθελα μόλις KL υλοποίησης. Σε κάθε περίπτωση, πρέπει να έχω διαφορετικές υλοποίησεις. Εφόσον έχω διαφορετικά λειτουργικά αστήματα, θα έχω διαφορετικές υλοποίησεις. Δηλαδή, για παράδειγμα, βλέπετε τέσσερις πηγές και τρεις διαφορετικοί προορισμοί, χωρίς πρότυπα. Έτσι, θα έχω 12 διαφορετικά πρωτόκολλα και 24 διαφορετικές υλοποιήσεις. Ενώ, αν έχω πρότυπα, θα έχω ένα πρωτόκολλο και 7 διαφορετικές υλοποιήσεις, μια για κάθε διαφορετικό λειτουργικό σύστημα. Καταλαβαίνουμε, δηλαδή, άλλο το πρωτόκολλο, άλλο η υλοποίηση του πρωτοκόλου. Δηλαδή, σε κάθε περίπτωση, αν έχω διαφορετικά λειτουργικά, διαφορετικούς πολιτικστές, θα έχω και διαφορετικές υλοποιήσεις. Τώρα, να δούμε λίγο κάποιες από τις συχνές λειτουργίες, όχι συναρτήσεις, λειτουργίες στα δίκτυα, να τις δούμε εδώ συνοπτικά και στη συνέχεια θα τα αναφέρουμε αναλυτικά. Δηλαδή, η ενθυλάκωση. Η ενθυλάκωση είναι, για παράδειγμα, το να πάρω αυτό εδώ το πακέτο έτσι όπως είναι και να το κατεβάσω όλο, δηλαδή από το επίπεδο μεταφοράς, όπου έχω την επεκεφαλίδα, να το κατεβάσω όλο στο δίκτυο, όπου έχω την επικεφαλίδα του δικτύου. Και φυσικά να προσθέσω ότι επιπλέον πληροφορίες όπως, πληροφορία της διεύθεσης, της δικιάζευσης και της διεύθεσης προορισμούς συνήθως, ένα κώδικα ανοίγωσης λαθών. Πολύ πιθανόν υπάρχει κάποιο πρωτόκολλο έλεγχου, έτσι, κάποιος κώδικας έλεγχου, τι γίνεται σε περιπτώσεις σφάλματος, πώς γίνεται η ανάκτηση, όλα αυτά, δηλαδή, πληροφορίες ελέγχου, μπορεί να υπάρχουν πάλι στην επικεφαλίδα. Λειτουργία της κατάπνις, το segmentation στα αγγλικά θα λέγαμε, το μαχισμός. Δηλαδή, είπαμε ότι τα πακέτα δεδομένων πρέπει να είναι καθορισμένου μεγιάθος, άρα λοιπόν, ενώ όμως από το επίπεδο του χρήστη, τι έχουμε, στο επίπεδο της εφαμμογής φτάνουν πακέτα δεδομένα που είναι πολύ μεγάλα, έτσι, και πολλές φορές ο μαχισμός αυτός, δεν γίνεται μόνο σε ένα επίπεδο, γίνεται σε πολλά επίπεδα, δηλαδή, για παράδειγμα, στα επίπεδα TCP-IP, στο TCP-IP το μεγαλύτερο μέγεθος πακέτου είναι 64KB, έτσι, άρα εγώ αν έχω ένα αρχείο που θέλω να μεταφέρω, εξωτερικά 1GB, προφανώς αυτό πρέπει να σπάσει σε μικρά, όταν φτάνει στο TCP-IP σπάει σε πακέτα των 64KB, έτσι, όταν τώρα τα επίπεδα πιο κάτω, έτσι, για παράδειγμα το Ethernet ή το ATM έχουν πολύ μικρότερο μήκος, μήκη στο μήκος πλασίου, δηλαδή στο ATM μπορεί να έχουν μήκος 53B, στο Ethernet το μέγιστο μήκος πλασίου είναι 1526B, άρα λοιπόν σκεφτείτε το πακέτο των 64KB στο TCP-IP θα σπάσει και αυτό σε μικρότερα πακέτα των 1500B και φυσικά σε κάθε πακέτο θα μπουν επιπλέον επικεφαλίδες έτσι ώστε να είναι δυνατόν να γίνει η ανάκτηση μετά ολόκληρης πληροφορίας, δηλαδή το πως θα ξαναγίνει η επανασυγκόληση. Τώρα για ποιο λόγο να κάνω τον μακρισμό, γιατί καταρχήν έχω έτσι αποδοτικότερα ελέγχο σφαλμάτων, γιατί σκεφτείτε τι είναι πιο αποδοτικό να ελέγξω μικρά κομμάτια των 1500B ή να ελέγξω ένα μεγάλο κομμάτι για σφάλμα του 1GB και τι θα γίνει αν έχω σφάλμα στο 1GB σημαίνει ξαναστείλε πίσω ένα πακέτο του 1GB ενώ αν έχω σφάλμα σε ένα πακέτο των 1500B ξαναστείλε πίσω μόνο αυτό το πακέτο των 1500B, έτσι. Προφανώς έτσι έχω μικρότες καθυστέρησης, χρειάζονται προφανώς μικρότες μνήμες στους κόμβους του δικτύου και μεταξύ από που και δέχτη. Τώρα τι μειονεκτήματα που βάζει, προφανώς ότι έχω τις επεκεφαλίδες και αυτό που λέω στα αγγλικά overhead, δηλαδή έχω επιπλέον πληροφορία σε σχέση με την αρχική πληροφορία του χρήστη, σε κάθε πακέτο μπαίνει και μία επεκεφαλίδα, άρα έχω επιπλέον πληροφορία από την αρχική. Μπορώ να έχω αυξημένες διακοπές στο δέκτη και φυσικά, γιατί δέχεται πολλά πακέτα και φυσικά έχω τι, περισσότερο χρόνο επεξεργασίας. Τόσο στους κόμβους του δικτύου όσο και τελικά στο δέκτη, γιατί μπορεί να χρειαστεί να μην φτάσουμε τη μια σειρά τα πακέτα και να επανασυγκολυθούν πάλι με τη σωστή σειρά. Μία άλλη λειτουργία στα δίκτυα είναι ο έλεγχος σύνδεσης. Κατ' αρχήν, αυτό έχει να κάνει με τη φάση της εγκατάστασης της σύνδεσης, αυτό που λέμε connection establishment στα αγγλικά. Αυτό τι σημαίνει, δηλαδή, για παράδειγμα, όταν σηκώνω το τηλέφωνο και παίρνω έναν αριθμό από τη στιγμή που ακούω να χτυπάει το τηλέφωνο με τη στιγμή που ο άλλος θα απαντήσει, είναι η φάση της εγκατάστασης της σύνδεσης. Και στη συνέχεια, η άλλη φάση που είναι, όποια είναι, από τη στιγμή που πάντα έβαλα στο τηλέφωνο, ξεκινάει τι, η μεταφορά των δεδομένων, η ανταλλαγή πληροφορίας. Όταν αποφασίσω ότι έχει τελειώσει το τηλέφωνημα, κλείνω το τηλέφωνο. Άρα λοιπόν, έχω τη φάση της λήξης της σύνδεσης. Γιατί, πάλι στέλνεται ένα μήνυμα από το τηλεφωνό μου στο τηλεφωνικό κέντρο, που λέει ότι έχει κλείσει το άλλο τηλέφωνο, στέλνει στο άλλο τηλεφωνικό κέντρο του άλλου συτροπητή και ειδοποιεί το άλλος, ακούει ένα χαρακτηριστικό ήχο ότι έχει κλείσει τη σύνδεση. Έχω, λοιπόν, τη φάση της λήξης της σύνδεσης. Επίσης, μπορεί να χρειαστεί διακοπή σύνδεσης και επανασύνδεσης πολλές φορές. Δηλαδή, να διακοπεί για κάποιο λόγο σύνδεση και μετά να έχουμε επανάκτηση της σύνδεσης. Πολλές φορές τα πακέτα τι χρησιμοποιείται. Χρησιμοποιείται μια κλειθή αριθμών, δηλαδή να έχω αριθμό το κάθε πακέτο, για να έχω μετάδοση με τη σωστή σειρά. Έχω το πακέτο 1, το πακέτο 2, το πακέτο 3, για να μπορώ να κάνω καλύτερα έλεγχο ροής. Είπαμε, δηλαδή, να πω ότι μου έστειλες μέχρι το πακέτο 6. Περίμενε, τώρα μη μου στείλεις ακόμα το 7, γιατί δεν μπορώ να το πεξεραστώ ακόμα. Έλεγχο σφαλμάτων. Το σφάλμα είναι στο πακέτο 5. Ξαναστείλε μου το πακέτο 5. Διαφορετικά, πώς θα ξέρω ποιο πακέτο έχω σφάλμα. Άρα, λοιπόν, σε όλες τις τεχνολογίες δικτύων, χρησιμοποιείται μια τέτοια λογική, όπου βάζουμε ένα αριθμό πακέτου, ένα αριθμό ακολουθίας, που το λέμε. Δηλαδή, αυτό που είπαμε μεταξύ διοντοτήτων έχουμε. Ξεκινάμε από την όντια 1. Θα έχουμε connection request. Η σύνδεση είναι ταποδεκτή. Μεταφορά δεδομένων. Και πολλές φορές αυτό που στέλνουμε πίσω για επιβεβαίωση είναι ένα acknowledgement, μια επιβεβαίωση ότι έχουν φτάσει σωστά τα δεδομένα μου. Και συνέχεια, στέλνω μια αίτηση τερματισμού σύνδεσης και γίνεται δεκτή μια αίτηση, ένα πακέτο, ότι γίνεται δεκτός ο τερματισμός της σύνδεσης. Αυτός είναι ο πιο, γραφικά, είναι ο πιο συνηθισμένος τρόπος μετάδοσης δεδομένων μεταξύ διοντοτήτων. Είπαμε ότι είναι σημαντικό να γίνει η μετάδοση στη σειρά, δηλαδή οι διάφορους μανάδες μπορούν να ακολουθούν σε διαφορετικές διαδρομές, μπορούν τα δεδομένα αυτά να φτάσουν χωρίς τη σωστή σειρά. Άρα λοιπόν, για αυτόν τον λόγο, έχουμε αριθμούς ακολουθίας στα διάφορα πακέτα, έτσι ώστε να μπορούν να μπουν σε μια σωστή σειρά μετά την άφησή τους. Βέβαια αυτό προϋποθέτει και κάτι άλλο, ότι υπάρχει και μία buffer στο δέκτη, η οποία κρατάει τα πακέτα, έτσι και μετά ξαναβάζουμε τη σωστή σειρά, προϋποθέτει και buffer. Ο έλεγχος ροής γίνεται από το δέκτη, καθαρίζει την ποσόδο και το ρυθμό των δεδομένων, μπορεί να έχουμε μια δικασία, δηλαδή, που μπορούμε να πούμε στο κουμπώ μη στέλνεις άλλα, έχουμε γεμίσει και περιμένουμε, ας πούμε, μετά να παξεργάζουμε αυτά τα δεδομένα για να στείλουν μετά. Τώρα, υπάρχουν διάφορα συστήματα έλεγχου ροής, υπάρχουν τα λεγόμενα συστήματα, τη διαδικασία πάψων και αναμονή, δηλαδή τα λεγόμενα συστήματα stop and wait, δηλαδή που σημαίνει τι, ότι στέλνω ένα δεδομένο και περιμένω τι, περιμένω τι, περιμένω να είμαι βεβαίως από το δέκτη και να είμαι σωστά, δηλαδή περνώ το αγνώδισμα και αφού έρθει το αγνώδισμα ξαναστέλνω το επόμενο πακέτο. Τώρα, διάφορα άλλα συστήματα τα οποία όπως είναι τα sliding windows, τώρα όρος σιρόμενα παράθυρα δεν μου αρέσει πολύ, θα προτιμήσω το sliding windows στα αγγλικά. Όπου έρχεται ότι ο boss στέλνει πολλά πακέτα, το 1, το 2, το 3, το 4, το 5 και μετά στη συνέχεια αντί να στέλνω μια επιβεβαίωση για κάθε πακέτο, στέλνει ο boss μια επιβεβαίωση για όλα, δηλαδή σε αυτή την περίπτωση συνήθως θα του στείλω το αναμέσως επόμενο αριθμό, δηλαδή αφού έχω στείλει μέχρι το πακέτο 5 και έχουν φτάσει όλα καλά, ο δέκτης θα στείλει επιβεβαίωνο και στείλε μου το 6. Δηλαδή με αυτόν τον τρόπο δεν στέλνω μια επιβεβαίωση για κάθε πακέτο, αλλά στέλνω για ομάδες πακέτων. Και αυτό τώρα λέγεται sliding window γιατί έχει μία buffer και η buffer αυτή μεταφέρονται, θα το βλέπαμε συχνατικά ότι υπάρχει και μία μπάρα κύλησης η οποία όσο φτάνουν τα πακέτα μεταφέρεται και από τη μία πλευρά του μπωμπού και από τη πλευρά του δέκτη. Και φυσικά ο λεκός ροής δεν γίνεται μόνο σε ένα επίπεδο, πολλές φορές γίνεται και στο επίπεδο της εφαρμογής αλλά και στο επίπεδο του δικτύου. Τώρα ο λεκός φαλμάτων γίνεται γιατί, για να προλάβει την απώλεια ή την αλλείωση αδειομένων. Η ανοίχνωση αυτών των φαλμάτων μπορεί να γίνει με διαφορετικούς τρόπους, δηλαδή όπως έχουμε κάνει και σε άλλα μαθήματα, για παράδειγμα να εισάγω κάποια μπιτς ανοίχνωσης φαλμάτων, π.χ. πάρει την μπιτς, να ελέγξει ο δέκτης αυτά τα μπιτς, αν αυτά τα μπιτ είναι ok τότε γίνεται δέχτω το πακέτο, αλλιώς αν είναι λάθος τότε γίνεται απορρίψη του πακέτου. Φυσικά αυτά, εκτός από τα πάρει την μπιτς, θα μπορούσαν να είναι και κάτι πιο πολύπλογο. Ένα CRC, ένα πολυόλυμό CRC, δηλαδή το αποτέλεσμα με βάση στα εδομένα του πακέτου, το πόμπος κάνει μία πράξη, π.χ. με τα CRC αυτά είναι κάποιες δεδομένες πράξεις με πολυόλυμα. Το αποτέλεσμα αυτής της πράξης το αποθηκεύουμε στον πακέτο, συνήθως στο τέλος του πακέτου. Έχουμε τα εδομένα στον δέκτη και ο δέκτης ξανακάνει πάλι την ίδια πράξη με βάση στα εδομένα του πακέτου. Αν η πράξη βγάλει το ίδιο αποτέλεσμα αυτό που υπάρχει στο τέλος, αυτό σημαίνει ότι είναι σωστό το πακέτο και δεν έχει σφάλματα. Διαφορετικά υπάρχει σφάλμα. Έτσι, πάνω κάτω αυτή είναι η χιλοσοφία. Τώρα, αν υπάρχει σφάλμα, τότε γίνεται επανεκκοπή. Και ο έλεγχος σφαλμάτων πάλι μπορεί να γίνει σε πολλά εδομένα. Δηλαδή, μπορεί να γίνει, όπως θα δούμε, στο πρίδο ζεύκης εδομένων και μπορεί να γίνει και στο επίπεδο μεταφοράς. Για τη διευθυσιοδότηση είχαμε πει για το επίπεδο της διευθυσιοδότησης, αυτά δηλαδή που είπαμε και πριν, είπαμε ότι έχουμε μοναδική διεύθυνση δικτύου για κάθε υπολογιστή. Μάλλον το σωστό δεν είναι, έχω μοναδική διεύθυνση, όταν μιλάμε για το TCP-IP για το δίκτυο για κάθε υπολογιστή. Η σωστή έκφραση, γιατί τώρα, ένας υπολογιστής που έχει δύο διευθύσεις IP και CD με δύο διαφορετικές διεπαφές, δεν γίνεται, υπάρχει. Οποιοςδήποτε ρούτερ έχει πάνω από μία διεύθυση IP και CD στο δίκτυο. Άρα λοιπόν, το σωστό είναι ότι έχω μία διεύθυνση πρόσβαση στο δίκτυο μοναδική, αναδιαπαθή πρόσβαση στο δίκτυο. Δηλαδή, γιατί μπορεί να έχω μία συσκευή με πολλαπλές διαπαθές πρόσβασης. Και αυτό, να το θυμόμαστε και για τις εξετάσεις. Είπαμε, έχω τη μοναδική διεύθυνση την IP, έχω το σημείο πρόβασης υπηρεσίας που είναι ο αρθμός θύρας μέσα στο IP. Δηλαδή, είναι μία διαργασία, και αυτό είναι σε επίπεδο τι, σε επίπεδο λογισμικού. Άρα, είναι μία διαργασία που τρέχει μέσα στο σύστημά μου και παίρνει έναν μοναδικό αριθμό. Αλλά μοναδικό αριθμό, όχι παγκόσμιο, αλλά μοναδικό αριθμό για μόνο το σύστημά μου. Όπως είπαμε και πριν. Τι το σεύρισες εσείς μπορείς. Τώρα, το πεδίο διευθυσιοδότησης. Δηλαδή, ποιο θα είναι το εύρωστιν διευθυσιοδότησης. Μπορούμε να πούμε ότι, γενικά, μία παγκόσμια διεύθυνση πρέπει να αναγνωρίζει ένα μοναδικό σύστημα. Άρα λοιπόν, η διεύθυνση επέδου δικτύου είναι παγκόσμια και μοναδική για το σύστημα. Και είναι δυνατό σε κάθε σύστημα να αναγνωριστεί ένα από αυτό μέσα από τη γλώβα διεύθυσή του. Για παράδειγμα, η Mac διεύθυνσης, η Ethernet διεύθυνσης στα iDriven 802 δίκτυα, είναι μία διεύθυνση η οποία είναι μοναδική. Βέβαια, η Mac διεύθυνσης υλοποιείται σε hardware και συνήθως κάθε κατασκευαστής παίρνει ένα εύρος τέτοιων διευθύνσεων. Είναι όμως μοναδικές, δείτε κάπου δύο κάρτες Ethernet που έχουν την ίδια Mac διεύθυνση. Όπως επίσης και είπαμε, η διεύθυνση IP, ο αριθμός τηλεφώνου που είναι μοναδικό στο δίκτυο. Δηλαδή, οποιοσδήποτε υπολογιστής που συνδέεται στο δίκτυο, έχει μία μοναδική διεύθυνση. Η απάντηση εδώ είναι απλή, είναι ότι η διεύθυνση που παίρνεις εκείνη τη στιγμή, που παίρνεις δυναμικά όταν συνδέσεις το δίκτυο από το σπίτι σου, είναι μοναδική για εκείνη τη χρονική στιγμή. Δηλαδή, δεν υπάρχει άλλος υπολογιστής παγκόσμια που να έχει άλλη διεύθυνση. Σε άλλη φορά που θα συνδεθείς, μπορείς να πάρεις άλλη διεύθυνση, έτσι, εφόσον έχεις δυναμική ανάθεση IP. Αλλά θα είναι και αυτή μοναδική για εκείνη τη χρονική στιγμή, έτσι. Τώρα, μία άλλη έννοια, όταν αφού σας αναφέρουμε τη διεύθυνση, είναι οι λογόμενοι ταυτοποιητές σύνδεσεις, τα connexion defilers. Αυτό αναφέροντας, συνήθως, σε μετάδοση δεδομένων με αυτό που λέμε εικονικά κυκλώματα, virtual servers. Δηλαδή, αντί να έχω εδώ μοναδική διεύθυνση στο δίκτυο, έχω τη μοναδική διεύθυνση, ένα μοναδικό αριθμό για το κύκλωμα. Γιατί αυτό τι σημαίνει, το εικονικό κύκλωμα τι σημαίνει. Είναι μία λογική μεταγωγής που προσωμιάζει πάρα πολύ τη μεταγωγή κυκλώματος. Αλλά το λέμε εικονικό, γιατί από την αρχή καθορίζεται, δηλαδή από την πηγή μέχρι το προσμό καθορίζεται ακριβώς η διαδρομή που θα ακολουθεί στο πακέτο. Δηλαδή, από ποιους κόμους θα περάσει ακριβώς η διαδρομή του. Άρα λοιπόν, δεν χρειάζομαι διεύθυνση διχτύου, χρειάζομαι μόνο την εικονική διεύθυνση από πού θα περάσει. Άρα λοιπόν, σε αυτή την περίπτωση έχω τους ταυτοποιητές, τους connexion defilers, τους ταυτοποιητές σύνδεσης. Και εδώ μπορώ να έχω μέσα από το ίδιο φυσικό ή το λογικό μέσο μπορώ να έχω πολλαπλές συνδέσεις. Έχω πάλι επίπεδα πολυπλεξίας και μπορώ να έχω μέσα από αυτό και πληροφορία κατάστασης. Τώρα, ο τρόπος, αυτό στα αγγλικά είναι addressing mode, ο τρόπος διευθυσιοδούτησης. Δηλαδή, θα έχω μία μοναδική διεύθυνση σε ένα σύστημα, δηλαδή τη unicast διεύθυνση, η μοναδική διεύθυνση σε ένα σύστημα, θα έχω μία διεύθυνση που θα είναι μία διεύθυνση εκπομπής, μία broadcast διεύθυνση, η οποία τι θα κάνει αυτή, θα εκπέμπει σε όλους τους χρειστές. Για παράδειγμα, στο ethernet η διεύθυνση εκπομπής ποια είναι, είναι 48-bit όλη Άση. Αυτή είναι η διεύθυνση εκπομπής. Αντίστοιχη διεύθυνση εκπομπής με όλο Άση υπάρχει και στο tcpip όπως θα δούμε, που σημαίνει, όταν η διεύθυνση προορισμού είναι διεύθυνση εκπομπής, σημαίνει αυτό το μήνυμα στείλτο σε όλους. Αυτό σημαίνει. Ή μπορώ να έχω μία διεύθυνση πολλαπλής αποστολής, multicast, έτσι όπως έχω στο tcpip, που σημαίνει ότι μπορώ να έχω αυτό το μήνυμα στείλτο που, όχι σε έναν ή σε όλους, αλλά σε μία ομάδα, έτσι, σε πολλούς. Η διεύθυνση multicast, η διεύθυνση πολλαπλής αποστολής. Και όπως θα δούμε, στη νέα έκδοση του, στο IP έκδοση 6, στο IP version 6, υπάρχουν και άλλου τύπου διεύθυνσης. Δηλαδή, για παράδειγμα, όλες οι διευθύνσεις που έχω στην ίδια συσκευή, γιατί μια συσκευή μπορεί να έχει πολλές διαφορετικές διευθύνσεις, όπως θα πούμε εκεί. Άρα, λοιπόν, έχω στείλαγο το μήνυμα σε όλες οι διευθύνσεις αυτής της συσκευής. Μπορώ να έχω και κάτι τέτοιο. Τώρα, η έννοια της πολύπλεξης, έτσι. Αυτήν, νομίζω, την ξέρουμε και από άλλα προηγούμενα μαθημάτια. Πολαπλές συνδέσεις είτε μέσα της ίδιας φυσικής σύνδεσης είτε μέσα της ίδιας λογικής σύνδεσης. Δηλαδή, για παράδειγμα, μέσα από μια οπτική ύνα, πολλαπλές συνδέσεις μπορούν να είναι διαφορετικά μήκη φωτός που περνάνε μέσα από την ίδια οπτική ύνα. Μπορώ να έχω, είχα παλαιότερα που υπήρχε το ISDN, χρησιμοποιούνταν πολύ το ISDN για τηλεδιασκέψεις, να έχω το bonding, δηλαδή τη συνάθεση πολλών γραμμών ISD ενώ στο να έχω περισσότερο ευρωζώνης για μια τηλεδιάσκεψη ή για χρήση μεταφορά δεδομένων πάνω από το ISDN, κτλ. Νομίζω ότι είναι μια πολύ κοινή έννοια, είναι ένα της πολύπλεξης. Τώρα, υπηρεσίες εφομής τρασμίσεων σέρβισης, δηλαδή τι άλλες υπηρεσίες μπορώ να έχω, μπορώ να έχω για παράδειγμα προτεραιότητα. Υπηρεσίες προτεραιότητας, για παράδειγμα ας πούμε μηνύματα ελέγχου, δηλαδή ένα μήνυμα ανάλογα με το είδος της κίνησης μπορεί να έχει διαφορετικές προτεραιότητες. Προφανώς, ένα μήνυμα email θα έχει πιο χαμηλή προτεραιότητα από ένα μήνυμα που περιέχει ένα ζωντανό βίντεο. Και αντίστοιχα, μπορώ να έχω διαφορετική ποιότητα υπηρεσίας. Δηλαδή, διαφορετικά να χειρίζεται ένας router τα μηνύματα που περιέχουν πολλημεσικές ροές, βίντεο, φωνή κτλ. Διαφορετικά να χειρίζεται τα μηνύματα που περιέχουν απλά δεδομένα, ένα email, μεταφορά αρχιών κτλ. Αυτό λέγεται quality of service, ποιότητα υπηρεσίας. Και αυτό πώς το χειρίζεται δηλαδή διαφορετικά, απλά σε κάθε ανάλογα με το είδος της κίνησης, υπάρχει μια πληροφορία στην επικεφαλήδα που έχει έναν αριθμό. Ανάλογα με το πώς είναι αυτός ο αριθμός, μπορεί αυτές οι ροές να αποκτούνε χαμηλή ή ψηλότερη προτεραιότητα. Και φυσικά θέματα ασφάλειας, πυροσμοί πρόσβασης και τα λοιπά. Εδώ να πούμε, όπως θα δούμε και αργότερα, ότι το ίντερνετ, το διαδίκτυο εξγενετής, δεν παρέχει καμία ασφάλεια. Δηλαδή, οι μηχανισμοί ασφάλειας, κρυπτογράφους και όλα αυτά, έχουν γίνει εκ των ιστέρων. Είναι, λαδή, επεμβάσεις εκ των ιστέρων στην δομή του ίντερνετ. Και γίνονται με ειδικά πρωτόπολα. Τώρα, στη συνέχεια θα μιλήσουμε για το μοντέλο των 7 πιπέδων Όζη. Αλλά γιατί είναι αρκετά μεγάλη ενότητα, νομίζω καλύτερα να διακόψουμε εδώ και θα συνεχίσουμε στο επόμενο μάθημα. Λοιπόν, θα συνεχίσουμε τη δεύτερη ενότητα και θα μιλήσουμε για το μοντέλο αναφοράς του Όζη. Τι μοντέλο είναι αυτό? Είναι ένα θεωρητικό μοντέλο που βγήκε από τον Όζη με σκοπό όλα τα δίκτυα υπολογιστών, από εδώ και στο εξής, να χρησιμοποιούν αυτό το μοντέλο. Στην πράξη δεν έγινε έξω, όπως θα δούμε. Δηλαδή, δεν βγήκαν με εξαίρεση την τέκ, η οποία είχε βγάλει πραγματικά ένα πρότυπο για δίκτυα υπολογιστών συμβατό με τα μοντέλα του Όζη. Από τι θυμάμαι και δεν ξέρω και ποιος άλλος κατασκευαστής. Γενικά η δημιουργία δικτύων με βάση το πρότυπο του Όζη δεν προχώρησε στην αγορά. Γιατί, θα δούμε τους λόγους γιατί. Αλλά γιατί το μαθήμα, γιατί το χρησιμοποιούμε. Γιατί είναι πλέον ένα θεωρητικό μοντέλο αναφοράς που μας δίνει ένα θεωρητικό υποβαθρό για να καταλάβουμε καλύτερα τις λειτουργίες κάθε δικτύου. Γιατί έχει 7 επίπεδα, είναι δηλαδή ένα μοντέλο επίπεδων. Κάθε επίπεδο έχει συγκεκριμένες λειτουργίες επικοινωνίας και κάθε επίπεδο λειτουργεί, επικοινωνεί μόνο, βλέπει μόνο το άλλο, το απέναντι, αντίστοιχο επίπεδο. Εξατάται από το αμέσως κατώτατο επίπεδο για την επικοινωνία, με εξέρεση έτσι το πιο κάτω το φυσικό που δεν εξατάται φυσικά. Και παρέχει υπηρεσία στο αμέσως επόμενο επίπεδο. Παρέχει υπηρεσία στο αμέσως επόμενο επίπεδο. Τι εννοούμε, ότι στην ουσία η πληροφορία από το κατώτερο επίπεδο ανεβαίνει, αφού πάρει το κατώτερο επίπεδο την επικεφαλίδα τη δική του, ανεβαίνει στο αμέσως ανώτερο επίπεδο. Και με αυτόν τον τρόπο συμβαίνει το εκείς ότι έχοντας αυτήν την αρχιτεχνονική, εάν κάνω αλλαγές σε ένα επίπεδο, δεν θα απαιτούν αλλαγές σε όλα τα υπόλοιπα. Δηλαδή για παράδειγμα το έχουμε δει και στην πράξη, ότι το TCP-IP το έχουμε πάνω από διαφορετικά φυσικά επίπεδα. Δηλαδή μπορεί εδώ, ας πούμε να το έχουμε πάνω από καλώδιο συνεστραμένους έβγους και μετά τα link Ethernet. Στο σπίτι μας το έχουμε πάνω από τα καλώδια του OT και με ADSL routers ή VDSL. Δηλαδή στο κινητό μας έχουμε TCP-IP πάνω από τα δίκτυα 3ης γενιάς και 4ης γενιάς. Άρα δηλαδή έχουμε το ίδιο πρωτόκολλο σε πάρα πολλά διαφορετικά είδη δικτύων. Και οι αλλαγές που χρειάστηκαν, δηλαδή αργότερα θα βγει ένα νέο δίκτυο, οι αλλαγές που θα χρειαστούν για να προσαρμοστεί το TCP θα είναι απλά μόνο σε εκείνο το επίπεδο, στο πιο κάτω επίπεδο. Ή αντίστοιχα όταν θα αλλάξει, όπως θα δούμε υπάρχουν δύο εκδόσεις του IP, υπάρχει και η έκδοση 6. Για να προσαρμόσουμε εφαρμογές επάνω στην έκδοση 6 δεν χρειάζεται να αλλάξουμε κάτι, δηλαδή αλλάζει μόνο το επίπεδο δικτύου. Άρα δηλαδή η όλη η λογική αυτής της αρχιτεκτονικής όζη είναι ότι αλλαγές στο ένα επίπεδο δεν απαντούν αλλαγές σε κάποιο άλλο επίπεδο. Δηλαδή και θα μπορούσαμε στη C++ αυτό να το παρουσιάσουμε πώς, δηλαδή έχω διαφορετικές κλάσεις ας πούμε, η κάθε μία έχει το δικό της αρχείο επικεφαλήδας, το δικό της implementation και εκτελεί διαφορετικές συντουργίες. Θα μπορούσαμε έτσι να το παρουσιάσουμε αν κάναμε προγραμματισμό, δηλαδή διαφορετικά modules. Αν θέλουμε να δούμε τώρα αυτό το περιβάλλον του όζη θα βλέπουμε τι, δηλαδή ας πούμε ότι έχουμε τον υπολογιστή X, δύο εφαρμογές που επικοινωνούν στον υπολογιστή X και στον υπολογιστή Ψ. Δηλαδή έχω αρχικά ας πούμε το βίδο της εφαρμογής που έχει τα δεδομένα του χρήστη και την επικεφαλήδα της εφαρμογής. Αυτό θα πάει πιο κάτω, όλο θα περάσει, βλέπετε, σαν δεδομένα στο επίπεδο παρουσίασης και θα πάρει την επικεφαλήδα παρουσίασης. Όλο αυτό θα περάσει σαν δεδομένα, το presentation του PDU θα είναι τα δεδομένα του PDU του session, του επίπεδου συνόδου και θα πάρει την επικεφαλήδα συνόδου. Όλο αυτό θα πάει εδώ και θα περάσει σαν δεδομένα στο επίπεδο μεταφοράς, θα πάρει την επικεφαλήδα της μεταφοράς. Και τέλος, όλο αυτό θα φτάσει, δεδομένα, στον επίπεδο δικτύου, θα πάρει την επικεφαλήδα δικτύου και όλα. Και ούτω καθεξής, μέχρι σ' ό,τι φτάσει στο φυσικό επίπεδο, όπου στο φυσικό επίπεδο, δηλαδή στην ουσία έχουμε μετάδοση των beats, έχουμε μετάδοση 0-1 κτλ, έχουμε της πραγματική φυσική μετάδοση, θα περάσει μέσα από ένα δίκτυο, δηλαδή θα φτάσουν τα δεδομένα με το φυσικό επίπεδο, θα αρχίσουν να πηγαίνουν πιο πάνω, δηλαδή μετά γίνεται ενάστοφη διαδικασία. Εδώ τι γίνεται? Εδώ το κάθε επίπεδο βγάζει τις δικές του επικεφαλήδες και τα δικά του δεδομένα και τα κατευθύνει, τα στέλνει στο πιο πάνω επίπεδο. Με αυτόν τον τρόπο θα πάει στο επίπεδο δικτύου, θα πάει στο επίπεδο μεταφοράς, στο επίπεδο συνόδου, στο επίπεδο παρουσίασης, μέχρι σ' ό,τι φτάσει τελικά στο επίπεδο εφαρμογής, θα πάρει τελικά η εφαρμογή και την τελευταία κεφαλίδα και θα έχουμε τα δεδομένα του χρήστη. Άρα δηλαδή βλέπουμε ότι σε κάθε επίπεδο η τελική πληροφορία που θέλουμε στο δικτύο είναι πολλαπλάσια, είναι πολύ μεγαλύτερη από τα αρχικά δεδομένα που έχουμε. Γιατί σε κάθε επίπεδο μπαίνει και η δικιά του επίπεδο πληροφορία που είναι η επικεφαλίδα του κάθε επίπεδου. Και αντίστοιχα αυτή η επικεφαλίδα βγαίνει όταν φτάνουμε στην άλλη πλευρά και ένα άλλο χαρακτηριστικό είναι ότι έχουμε μία εικονική σύνδεση, το κάθε επίπεδο δεν ξέρει το ένα το άλλο, έχουμε μία εικονική σύνδεση μεταξύ της κάθε οντότητας του ενός επίπεδου και του άλλου. Δηλαδή το κάθε ένα το επίπεδο δικτύου επικοινωνεί με αυτό το επίπεδο δικτύου, το επίπεδο μεταφοράς επικοινωνεί με αυτό το επίπεδο μεταφοράς. Δεν ξέρει τα υπόλοιπα, επικοινωνεί με αυτά. Δηλαδή αν θέλαμε να το δούμε σαν πλαίσιο τυποποίησης και σαν μοντέλο αναφοράς θα λέγαμε ότι για τον νειωστό, η οντότητα του νειωστού επίπεδου δέχεται υπηρεσίες από το ν-1 επίπεδο και παρέχει υπηρεσίες στο ν-1 και επικοινωνεί. Ομότιμα με το αντίστοιχο επίπεδο νειωστού επίπεδου. Δηλαδή δέχεται υπηρεσίες τι σημαίνει, έτσι, ότι δέχεται δεδομένα από το ν-1 επίπεδο. Παρέχει υπηρεσίες πάλι το σημαίνει ότι στέλνει τα δεδομένα της, αφού τα κάνει, αφού βρει πού απευθύνονται, στην αντίστοιχη υπηρεσία, στην αντίστοιχη διεύθυνση του επίπεδου ν-1. Κατανοητό, δεν ξέρω αν υπάρχει κάποια απορία πάνω σε αυτά. Και τώρα, έχουμε φυσικά, τα πρότυπα που βγαίνουν είναι συγκεκριμένα ένα επίπεδο, έτσι. Αφορούν μόνο τις λειτουργίες ενός επίπεδου, δηλαδή για τον νειωστό επίπεδο. Θα ας πούμε τι θα έχω. Αυτό που λέμε το πρότοκολο σπεσιφικαίων, δηλαδή τον ορισμό του πρότοκολου που θα είναι μέσα. Ακριβώς το συντακτικό αυτό του πρότοκολου, έτσι. Το πώς θεστάσατε, η σημασιολογία, τι σημαίνει το κάθε πράγμα. Γιατί, για τη διαλειτουργικότητα, έτσι, για την επικοινωνία μεταξύ διαφορετικών συσκευών, διαφορετικού hardware, που θα χρησιμοποιεί την ίδια γλώσσα, το ίδιο πρότοκολο. Και φυσικά εδώ, θα έχω την, αυτό που θα περιγράφει την υποπίληση, θα είναι τι. Η λειτουργία, η κάθε λειτουργία που κάνει το πρότοκολο, δηλαδή π.χ. Λέμε, ξέρω εγώ, όταν στο τάδε επίπεδο έρθει σφάλμα, τότε να κάνεις επανεκποπή του πακέτου που έχει σφάλμα. Αυτή είναι μια συγκεκριμένη λειτουργία. Δεν ξέρω το πώς θα γίνει το implementation, η υλοποίηση. Το πώς θα γίνει εξαρτάται από τον κάθε κατασκευαστή, από τον κάθε προγραμματιστή. Θα το γράψει ή θα το κάνει σε hardware ή θα το κάνει σε software. Η υλοποίηση, τα πρότυπα δεν αφορούν την υλοποίηση. Δηλαδή αυτό μπορεί να το σκεφτούμε ως ένα μαύρο κουτί, στο οποίο βάζω μία είσοδο και περιμένω πάντα να πάρω την ίδια έξοδο. Και περιγράφονται στην ουσία σε ένα πρότυπο, περιγράφονται αυτοί οι κανόνες για το τι γίνεται σε συγκεκριμένες καταστάσεις και ποια πρέπει να είναι η απόκριση του πρωτοκόλου που μπορεί να είναι πάντα ίδια. Αυτό είναι η πρωτυποποίηση ανά επίπεδο. Δηλαδή, αν το λέγαμε μόλους προγραμματισμού, το πρότυπο είναι στην ουσία το αρχείο επικεφαλίδας της C++, το hfile, ενώ η υλοποίηση, το C++ αρχείο που γράφει το κώδικας είναι η υλοποίηση που κάνει κάθε καταστάσεις, οι οποίοι θα είναι διαφορετικοί, δηλαδή σου δίνουν ότι ξέρεις κάτι, αυτό είναι το πρωτόκολλο, αυτές οι λειτουργίες, θέλω αυτή τη συνάρτηση να κάνει αυτό, να παίρνει αυτήν την ίσοδο, να βγάλει αυτήν την έξοδο. Αυτό θέλω να μου κάνεις, το πώς θα το κάνεις είναι δικό σου θέμα και ο κάθε κατασκευαστής το κάνει με διαφορετικό τρόπο. Και φυσικά υπάρχουν τα λεγόμενα σημεία πρόσβαση υπηρεσίας, τα service access points, που είναι τα σημεία διεύθυνσης του πρωτοκόλου. Δηλαδή η διεύθυνση που έχει το κάθε πρωτόκολλο και χάρη σε αυτή τη διεύθυνση επικοινωνεί με τα ανώτερα επίπεδα. Το καταλαβαίνουμε? Τώρα, είπαμε ότι μπορεί να λειτουργεί η ιστορία που είδαμε σε διαφορετικά συστήματα, μπορεί να περιλαμβάνει διαφορετικά λειτουργικά συστήματα, φυσικά, δηλαδή το TCP-IP δεν περιλαμβάνει, μπορεί να εκτελείται σε πολλά διαφορετικά λειτουργικά συστήματα. Έχει διαφορετική συλλοπή, αλλά σαν πρωτόκολλο είναι ακριβώς το ίδιο. Οι προδεγραφές που θα ανακριβήσω είναι η μορφή των μονάδων δεδομένων, ο προσδιορισμός των πεδίων, ποια είναι η σειρά των δεδομένων, πώς μπορώ να στέλνω τα πακέτα αφού του πρωτοκόλου, να υπάρχει πλήρης περιγραφή των προσδιορισμών, των υπηρεσιών που παρέχει αυτό το πρωτόκολλο, και προφανώς μια πλήρης περιγραφή της διευθυσιοδότης, δηλαδή ο τρόπος που έχουν τα σημεία πρόσβασης, πώς δίνουμε διευθύνσεις σε αυτό το πρωτόκολλο. Και για να πάμε λίγο στην ουσία, δηλαδή να δούμε τα επίπεδα του OZY ένα προς ένα, να δούμε τι κάνει το καθένα. Αρχικά στο πιο κάτω σημείο έχω το φυσικό επίπεδο, το πρώτο επίπεδο είναι το φυσικό επίπεδο, το οποίο ασχολείται με τη φυσική διασύνδεση μεταξύ δυο σχεβών, δηλαδή να λέμε φυσική διασύνδεση τι κάνει. Δηλαδή το φυσικό επίπεδο είναι αυτό που θα σου πει ότι, ξέρεις, για να στείλεις δεδομένα σε αυτό το πρωτοκόλλο θα πρέπει το μηδέν να είναι θετική τάση, το ένα να είναι αρνητική τάση και να είναι τόσα βόλτα αυτό, τόσα βόλτα το άλλο. Δηλαδή θα σου καθορίσει αυτές ακριβώς τις λεπτομέρες, δηλαδή μηχανικά, ηλεκτρικά, δηλαδή για να το κάνεις θα πρέπει να χρησιμοποιήσεις διεπαφή τύπου RJ45, στην οποία το ένα ζευγάρι θα στέλνει αυτά τα δεδομένα, το άλλο ζευγάρι θα στέλνει αυτά τα δεδομένα, το ένα θα είναι για transmit, το άλλο θα είναι για receive π.χ. Και τι χαρακτηριστικά θα έχει το καλώδιο, το καλώδιο θα έχει χαρακτηριστική αντίσταση ξέρω εγώ 120Ω, θα πρέπει να είναι συνεστραμένους ζεύγους κτλ π.χ. Δηλαδή όλα αυτά, τα λειτουργικά χαρακτηριστικά, τα μηχανικά, τα ηλεκτρικά, όλα αυτά περιγράφονται κάθε φορά από τα πρωτόκολλα φυσικού επίπεδο, από το φυσικό επίπεδο, όλα αυτά οι λειτουργίες βρίσκονται στο φυσικό επίπεδο και διαχωρίζονται με το υπόλοιπο. Τώρα, δηλαδή, στο φυσικό επίπεδο, πλέον μιλάμε με beats, έχουμε beats ή σύμβολα, ή θα μπορούσαμε να έχουμε και σύμβολα, αν θυμηθούμε λίγο της τηλεπικοινωνίας, θα μπορούσαμε να έχουμε και σύμβολα. Στο επίπεδο ζεύγεις δεδομένων, στο πιο πάνο επίπεδο, πλέον έχουμε οργανώσει τα δεδομένα μας σε πακέτα, έχουμε ένα πακέτο. Και αναφέρεται στην ενεργοποίηση και συντηρήσεις μιας σύνδεσης μεταξύ δύο σημείων, ή ενός σημείου και πολλαπλά σημεία θα μπορούσε να είναι. Έχει λειτουργίες πάντα για ανίχνευση και έλεγχο σφαλμάτων και με βάση το ότι υπάρχει ένα αξιόπιστο από κάτω data link επίπεδο, επίπεδος ζεύγεις δεδομένων, μπορούμε να θεωρούσουμε ότι έχουμε μετάδοση χωρίς σφάλματα. Πιο πάνω από το επίπεδο δεδομένου είναι το επίπεδο του δικτύου. Εδώ τώρα μπορείτε να ρωτήσετε, μα τι χρειάζεται το επίπεδο του δικτύου από τη στιγμή που έχω από κάτω το data link, το ζεύγεις δεδομένων. Γιατί χρειάζομαι επίπεδο δικτύου. Μπορώ να επικοινωνήσω με συσκευές που είναι, για να επικοινωνήσουμε δύο συσκευές μεταξύ τους, οι οποίες ενώντας με ένα καλόδιο, έχουν μια σύνδεση σημείο προ σημείο, δεν χρειάζομαι λειτουργίες επίπεδου δικτύου. Αλλά τι θα γίνει για συσκευές οι οποίες βρίσκονται σε διαφορετικό δίκτυο από το δικό μου. Δηλαδή πώς θα επικοινωνήσω με ένα υπολογιστή που δεν βρίσκεται στο δικό μου τοπικό δίκτυο, δεν συνδέεται στο ίδιο φυσικό μέσο, δεν συνδέεται με το ίδιο καλόδιο αλλά συνδέεται σε κάποιο άλλο δίκτυο. Για να το κάνω αυτό, χρειάζομαι τις λειτουργίες του επίπεδου δικτύου. Δηλαδή το επίπεδο δικτύου έχει να κάνει όλες εκείνες τις λειτουργίες που έχουν να κάνουν με την επικοινωνία μεταξύ διαφορετικών δικτύων. Δηλαδή μεταφορά της πληροφορίας και φυσικά δεν χρειάζεται στα παραστία σύνθεση. Δηλαδή θα μπορούσαν δύο υπολογιστές που ενώσω εγώ με ένα καλόδιο, δεν χρειάζονται της ουσίας επίπεδου δικτύου, δηλαδή μπορούν να επικοινωνήσουν μόνο με το επίπεδο ζεύκης εδομένων. Και φυσικά ένα κλασικό παράδειγμα επίπεδου δικτύου ποιό είναι το IP. Στο επίπεδο μεταφοράς, το transport layer, είναι πιο πάνω από το επίπεδο δικτύου, έχω ανταλλαγή δεδομένων, προσέξτε τώρα έχω και ένα ακόμα επίπεδο πάνω από το επίπεδο δικτύου. Αυτό τι δουλειά κάνει, κάνει ανταλλαγή δεδομένων χωρίς φάλματα, δηλαδή ελέγχει καταστάσεις όπως, ανταλλαγή δεδομένων χωρίς λάθη, το να φτάσουν τα εδομένα διαδοχικά, να είναι σε ακολουθή, να τα βάλω σε σωστή σειρά, να μην έχουν απώλειες, να μην έχουν αντίγραφα, να μην φτάσουν τα νόντ ντούπλικα, να μην φτάσουν δύο φορές τα ίδια δεδομένα και μπορεί να έχει και λειτουργίες που να έχουν να κάνουν με την ποιότητα της υπηρεσίας, δηλαδή ξέρεις κάτι, θέλω να χειριστείς διαφορετικά δεδομένα που προέρχονται από ζωντανό βίντεο και διαφορετικά δεδομένα που προέρχονται από email. Έτσι, όλες αυτές, για να γίνουν αυτές οι λειτουργίες χρειάζεται ένα πιο πάνο επίπεδο, γίνονται στο πιο πάνο επίπεδο μεταφοράς. Πάνω από το επίπεδο μεταφοράς υπάρχει το επίπεδο της συνόδου που έχει να κάνει με τον έλεγχο του διαλόγου, θα λέγαμε, μεταξύ δύο διαφορετικών εφαρμογών, με κανόνες επικοινωνίας αυτών των διαλόγων. Πώς θα γίνονται αυτές οι διάλογοι, δηλαδή θα γίνονται οι διάλογοι, θα είναι αμφίπλευροι, θα είναι αμφίδρομοι, θα είναι ημιαμφίδρομοι, θα μιλάει πρώτος ο ένας και μετά ο άλλος. Τι θα είναι οι κανόνες επικοινωνίας, ομαδοποίηση. Αν μπορούν πολλές εφαρμογές να μιλήσουν, πώς θα γίνει η ομαδοποίηση αυτών των διαλόγων, η λειτουργία της επαναφοράς. Δηλαδή, αν κοπεί η σύνδεση, πώς θα γίνει η επαναφορά του διαλόγου. Βέβαια, εδώ να πούμε ότι στην πραγματικότητα, στο πραγματικό κόσμο, το επίπεδο συνόδου δεν υπάρχει, το επίπεδο επίπεδο δεν υπάρχει. Οι λειτουργίες αυτές υπάρχουν στην πραγματικότητα στο επίπεδο μεταφοράς. Δεν υπάρχει στην πραγματικότητα αυτό. Συνέχεια, το έκτο επίπεδο είναι το επίπεδο παρουσίασης. Έχει να κάνει, δηλαδή, με μορφοποίηση δεδομένων και κωδικοποίηση. Μορφοποίηση. Για παράδειγμα, αν θέλουν να επικοινωνήσουν δύο συσκευές, μια συσκευή έχει Windows, άλλη συσκευή έχει Linux, πρέπει να γίνουν κάποιες αλλαγές στη μορφοποίηση. Δηλαδή, τι εννοείτε, το enter στο Linux είναι δύο χαρακτήρες, στα Windows ξέρω εγώ είναι ένας χαρακτήρας. Θα πρέπει να γίνουν τέτοιου είδους μεταφράσεις. Λειτουργίες συμπίεσης δεδομένων. Μπορεί να θέλω να μεταφέρω τα δεδομένα μου συμπιεσμένα. Μπορεί επίσης για ασφάλεια να θέλω να μεταφέρω τα δεδομένα μου κρυπτογραφημένα. Κρυπτογράφηση. Και τέλος φυσικά το επίπεδο της εφαρμογής που έχει να κάνει μόλις και είναι η λογική της εφαρμογής. Εδώ πάλι να πω ότι στην πράξη, αυτό που συμβαίνει είναι ότι οι λειτουργίες του έκτου επίπεδου συνήθως γίνονται από το επίπεδο εφαρμογής. Υπάρχουν στο επίπεδο εφαρμογής και εκτελούνται, δηλαδή θεωρούνται application logic, λογική εφαρμογής και εκτελούνται από την εφαρμογή. Δηλαδή τώρα, αν θέλω να δω λίγο μια σύνδεση μεταξύ δυο διαφορικών συστημάτων, έχω το ένα σύστημα, προσέξτε, έχω ένα σύστημα, έχω εδώ μέσα Relay System, σύστημα αναμετάδοσης, δηλαδή την κόμβος του δικτύου και προσέξτε ότι έχω μεταξύ των δύο συστημάτων εικονικές συνδέσεις, ανά τι, ανά επίπεδο. Αλλά προσέξτε το χαρακτηριστικό, είναι ότι για τον κόμβο του δικτύου, μου λέει, μου δείχνει η διαφάνεια, ότι έχω πρωτόκολλα μέχρι και το επίπεδο δικτύου. Μπορούμε να σκεφτούμε λίγο γιατί συμβαίνει αυτό, δηλαδή γιατί δεν χρειάζομαι για το κόμβο του δικτύου μέχρι το έβδομο επίπεδο πρωτόκολλα. Μπορούμε να το σκεφτούμε λίγο. Η απάντηση σε αυτό, ποιά είναι, ότι για το κόμβο του δικτύου, ο οποίος η δουλειά του είναι απλά να παίρνει τα πακέτα του δικτύου και να τα στέλνει σε ένα τελικό προορισμό ή σε ένα άλλο κόμβο, δεν χρειάζεται να έχω υλοποιημένη όλη τη λογική μέχρι το έβδομο επίπεδο. Σε ένα δίκτυο IP, στο ίντερνετ, ένας δρομολογητής, ένας κόμβος του δικτύου, χρειάζεται στην ουσία να έχει υλοποιημένο μέχρι το πρωτόκολλο IP, μέχρι το πρωτόκολλο του δικτύου, δηλαδή με βάση την IP διεύθυνση, με βάση τη διεύθυνση δικτύου, δρομολογεί τα πακέτα. Δεν χρειάζεται να ξέρει ποια εφαρμογή, αν κουβαλάει webmail, αν κουβαλάει ξέρω, καλή εφαρμογή κλπ. Βλέπουμε ότι οι κόμβοι του δικτύου, ενός δικτύου, οποιοδήποτε δικτύου, θα είναι πιο απλές συσκευές σε σχέση με τα τελικά συστήματα του χρήστη. Δεν χρειάζεται να έχουν υλοποιημένα όλα τα πρωτόκολλα, χρειάζονται μόνο μέχρι το επίπεδο δικτύου. Ίσως και λίγο πάλι, αν είναι κάποιοι κόμβοι τώρα στα IP δίκτυα, μπορεί να έχουνε μέχρι και κάποιες λειτουργίες του υπέδου μεταφοράς. Δηλαδή τι εννοώ. Μπορεί να υπάρχει υλοποίηση firewall σε μια συσκευή και να λέει ότι σε αυτή τη θήρα, ξέρω εγώ, αν έρχονται από αυτή τη θήρα, κλείσαι αυτή τη θήρα. Άρα μπορεί να έχω υλοποίηση μέχρι το πολύ εκεί. Αλλά αυτό είναι οι εξαιρέσεις. Γενικά, σε ένα δίκτυο, δεν χρειάζεται ο κόμβος του δικτύου, ενδιάβασιος κόμβος του δικτύου, να έχει υλοποιημένα πρωτόκολλα πάνω από το επίπεδο δικτύου. Δηλαδή αυτό που χρειάζεται για να μεταφέρει, να στείλει και να μεταφέρει πακέτα δικτύου. Τώρα, είδαμε τα πρωτόκολλα του OZ, να δούμε λίγο στα γρήγορα και την αρχιτεκτονική TCP-IP, τα TCP-IP πρωτόκολλα. Και στην ουσία, το μάθημα όλο γυρνάει γύρω από αυτά τα πρωτόκολλα. Γιατί? Γιατί είναι τα πρωτόκολλα στην ουσία που εμφανίστηκαν και τελικά επιβλήθηκαν λόγω της αγοράς, της τελάστιας εξάπλωσης, σαν de facto standard. Δηλαδή το πρότυπο σήμερα είναι το TCP-IP που χρησιμοποιούμε, όχι το OZ. Μπορούμε να κάνουμε αναφορές και συγκρήση μεταξύ OZ και TCP-IP, ας πούμε σε θεωρτικό επίπεδο, αλλά όλα τα πρωτόκολλα στηρίζονται, που χρησιμοποιούμε τώρα στα δίχτυα υπολογιστών, στηρίζονται πάνω σε αυτή την αρχιτεκτονική. Είναι, χρησιμοποιήθηκαν πριν γίνει το OZ, έγινε γύρω στο δεκαετία του 80, αυτά ξεκίνησαν από το δεκαετία του 70, αναπτύχθηκαν, είπαμε, από έρευνα χρηματοδομάτων από το Πουργείο Άμνηνας, τον είπα, και φυσικά είναι τα πρωτόκολλα που χρησιμοποιούνται σήμερα στο Internet. Και θυμίζω τι σημαίνει η λέξη Internet, βγαίνει από τη λέξη Internetwork, δηλαδή δίκτυο μεταξύ δικτύων. Τώρα, έχω το επίπεδο της εφαρμογής στο TCP-IP, όπου έχω την επικοινωνία μεταξύ διαφορετικών εφαρμογών, έχω το επίπεδο μεταχωράς, εδώ έχω πολλές επιλογές όπως θα δούμε, δεν έχω μόνο TCP, μπορεί να έχω και UTP, που ασχολείται με την αξιόπιστη μεταφορά δεδομένων, δηλαδή και όταν λέμε αξιόπιστη σημαίνει αξιόπιστη χωρίς φάλματα. Δηλαδή, ότι μπορεί να γίνει έλεγχος φαλμάτων, έλεγχος οίσκου και όλα αυτά, δηλαδή ότι μπορεί να γίνει αυτό χωρίς φάλματα, κάτω από οποιοδήποτε δίκτυο. Και φυσικά κρύβει τις λεπτομέρες από το πιο κάτω δίκτυο. Το επίπεδο διαδικτύου, το Internet protocol, που έχει να κάνει με τη δρομολόγηση των πακέττων με βάση την IP διεύθυνσή τους, οπουδήποτε στον κόσμο. Το επίπεδο δικτύου, μάλλον το επίπεδο πρόσβασης του δικτύου, που έχει να κάνει μεταξύ της σύνδεσης, μεταξύ του δικτύου και της εφαρμογής και του ρηματικού συστήματος. Και, φυσικά, πιο κάτω από το φυσικό επίπεδο, που έχει να κάνει με το μέσο διάδοση, στο ρυθμό μεταφοράς, την κωδικοποίηση, όλα αυτά δηλαδή, που κάναμε στα τηλεπικοινωνιακά αισθήματα, που έχουν να κάνουν καθαρά με τη μεταφορά σε φυσικό επίπεδο. Αν θέλαμε να δούμε, δηλαδή, το OSI σχετικά με το TCP, θα βλέπαμε κάτι τέτοιο. Δηλαδή, έχω το φυσικό επίπεδο. Στη θέση του επίπεδου ζεύτη του data link, έχω το επίπεδο πρόσβασης στο δίκτυο, βλέπετε ότι έχει και λειτουργίες του επίπεδου δικτύου, εδώ επάνω έχω το επίπεδο διαδικτύου, στο επίπεδο του δικτύου, στο επίπεδο μεταφοράς μεταξύ διαφορετικών, λέει host του host, όχι host του router, δηλαδή μεταξύ δύο, και όταν λέμε με τον έννοια host, εννοούμε τελικό σύστημα, τελικό σύστημα χρήστη του δικτύου. Στο επίπεδο μεταφοράς έχω περίπου τις λειτουργίες του επίπεδου μεταφοράς καταόζει αλλά και του επίπεδου συνόδου καταόζει και από εκεί και πέρα, όλες τις εφαρμογές του εφαρμογής καταόζει. Παρουσίες ακόμα και λίγο από το επίπεδο συνόδου είναι στο επίπεδο εφαρμογής και δηλαδή CPIP. Και εδώ τώρα αυτά που βλέπουμε είναι περίπου λίγο πού εκτείνεται το hardware στα συστήματα, πού εκτείνεται το firmware και πού εκτείνεται το software. Δηλαδή βλέπουμε ότι συνήθως εδώ μέχρι εδώ μέχρι το πρώτο πρόγραμμα στο δίκτυο υλοποιείται σε hardware. Έχει μία κάρτα, μία κάρτα ethernet, η υλοποίησή της έχει γίνει σε hardware, είναι ένα hardware, είναι μία κάρτα δικτύου. Η Mac διέκτησή της όπως θα δούμε και αυτή υπάρχει εκεί στην γνήμη σε hardware και δεν μπορεί να αλλάξει. Υπάρχει η υλοποίηση ή όλη η υλοποίηση του πρωτοκόλου γίνεται σε hardware, αυτό εννοούμε. Από εκεί πάρα το TCPIP, η υλοποίησή του που γίνεται σε software. Μπορεί να γίνει στα Windows, στο Linux, σε οποιοδήποτε σύστημα χρησιμοποιούμε, στο λειτουργικό, στο Android. Άρα εδώ έχω κάπου software και κάπου εδώ τώρα έχω λειτουργικό σύστημα, δηλαδή μέχρι εδώ με την υλοποίηση του πρωτοκόλου είμαι στο λειτουργικό σύστημα. Από εκεί πάρα όταν πάω στις εφαρμογές έχω το χώρο του χρήστη. Γιατί το τι εφαρμογή θα βάλω, θα βάλω εφαρμογή για email, εφαρμογή για browsing κτλ. Εξαρτάται από ότι εξαρτάται από τον χρήστη. Άρα είναι εφαρμογές του χρήστη. Κατανοητά? Δηλαδή αυτή η διαφάνεια είναι αρκετά βασική για να καταλάβουμε λίγο τις έννοιες του μαθήματος και να μπορέσουμε να ευαθήνουμε λίγο καλύτερα. Ας δούμε λίγο για το TCP-IP πολύ αναλυτικά. Βέβαια στη συνέχεια του μαθήματος θα κάνουμε, υπάρχει ένα κεφάλαιο που θα είναι αφιερωμένο αποκλειστικά στο IP και άλλο κεφάλαιο που θα είναι αποκλειστικά αφιερωμένο στο TCP. Θα το κάνουμε πολύ πιο αναλυτικά. Απλά να δούμε λίγο σύντομα για το TCP. Είπαμε ότι μας παρέχει την αξιοπιστή σύνδεση και όταν λέμε στα δίχτυα αξιοπιστή σύνδεση σημαίνει δύο πράγματα. Έλεγχο τεαυτόφωνα, έλεγχο σφαλμάτων και έλεγχο ροήση. Αυτό σημαίνει όρος reliable στα αγγλικά. Αυτό σημαίνει όρος αξιοπιστή σύνδεση. Το πακέτο TCP στα αγγλικά ονομάζεται segment. Κάθε κομμάτι, το κάθε πακέτο έχει επικρατήσει και διαφορετική ορολογία στα αγγλικά. Η διεύθυνση του TCP είναι το port, η θύρα προορισμού. Κάθε segment TCP περιλαμβάνει δύο πράγματα. Περιλαμβάνει στην επικεφαλή ΔΑΤ, τη θύρα προορισμού και τη θύρα προέλαυσης. Που είναι τη στην ουσία, η διεύθυνση δηλαδή της κάθε φαρμογής, της κάθε διεργασίας στο σύστημα. Έτσι είναι. Και φυσικά έχουμε συνέχεια μία ανταλλαγή τι? TCP Segments, η οποία γίνεται και αμφίδρομα μεταξύ των δύο χρηστών. Τώρα, μία εναλλακτική λύση απέναντι στο TCP είναι το UTP, το User Datagram Protocol. Αυτό τι κάνει? Αυτό δεν υπάρχει εγγυημένη παράδοση. Γιατί στο TCP, όταν λέμε κάνει ελεγχοροείς, σημαίνει ότι στέλνω δικαιοπεβαίωσης, αναλόγω με τα πακέτα. Δηλαδή, όταν φεύγει ένα πακέτο μου πάνω από το TCP, έχω πάντα επιβεβαίωση ότι έχει φτάσει. Ή ότι δεν έχει φτάσει καλά και ξανά στέλνει το. Ενώ αντίθετα, το UTP, στέλνω το πακέτο, δεν περιμένω να πάρω πίσω καμία επιβεβαίωση. Δεν υπάρχει διαφύλαξη της σειράς, δεν έχει αριθμούς ακολουθίας, δεν υπάρχει προστασία επικαλύψων, δηλαδή μπορεί να φτάσει το ίδιο πακέτο δύο φορές, ας πούμε. Αλλά, τι πλεονέκτημα έχει? Έχει πλεονέκτημα ότι έχει πολύ μικρό μέγεθος επικεφαλίδας σε σχέση με το TCP. Δηλαδή, περιλαμβάνει μόνο ένα checksum και τη θήρα προεσμού και τη θήρα πηγής. Άρα, λοιπόν, έχει πολύ μικρό μέγεθος επικεφαλίδας. Και θα μου πείτε, ωραία, πάλι και αυτό έχει ports, είπαμε τα UTP ports. Δηλαδή, όταν έχω μετάδοση πάνω από UTP, δεν έχω TCP IP, έχω UTP IP. Ωραία, η απορία τώρα θα μπορούσε να είναι, γιατί να χρησιμοποιήσω το ένα, γιατί να χρησιμοποιήσω το TCP, γιατί να χρησιμοποιήσω το UTP. Δηλαδή, το UTP αφού δεν έχει εγγυημένη παράδοση, γιατί να το χρησιμοποιήσω, έχω κάποιο πλεονέκτημα με αυτό. Σε ποια εφαρμογή θα μπορούσα να χρησιμοποιήσω το ένα, σε ποια εφαρμογή θα μπορούσα να χρησιμοποιήσω το άλλο. Δηλαδή, θέλει κάποιος να το πει αυτό, γιατί να χρησιμοποιήσω TCP, γιατί να χρησιμοποιήσω UTP. Σε ποια εφαρμογές το ένα, σε ποια εφαρμογές το άλλο. Δηλαδή, αυτό που είπε ο συνάδελφός σας, σε live streaming, δηλαδή σε μετάδοση πολυμεσικών εφαρμογών, δηλαδή ζωντανό βίντεο, φωνή, ας πούμε και τα λοιπά, δεν μας ενδιαφέρει να παίρνουμε επιβεβαίωση για κάθε πακέτο και να καθυστερούμε. Θέλουμε μικρά πακέτα και γρήγορη μετάδοση, γρήγορη ροή. Άρα λοιπόν, όταν μεταφέρω τέτοιου είδους πληροφορία, τη μεταφέρω πάνω από UTP, έτσι. Όταν όμως πυχή, έχω στη πολυμεσική εφαρμογή, ας πούμε την αρχή, του να κάνω τη σύνδεση, για να μπω ας πούμε, να ξεκινήσω το Skype και να κάνω τη σύνδεση, αυτή η πληροφορία που θέλω να είναι αξιόπιστη και θέλω να πάει, θα το κάνω πάνω από TCP. Δηλαδή, όπου θέλω αξιόπιστη μεταφορά, έτσι, πληροφορίας, δηλαδή, αν είχα μια πολυμεσική εφαρμογή, έτσι, ο γενικός κανόνας ποιος θα ήτανε, να φτιάξω τη σηματοδοσία της πάνω από TCP, έτσι ώστε να πάει αξιόπιστα σηματοδοσία, αλλά να φτιάξω τη ροή των δεδομένων, δηλαδή τη μεταφορά της εικόνας, ξέρω εγώ, του ήχου και τα λοιπά, να την κάνω πάνω από UTP, έτσι ώστε να πηγαίνει γρήγορα και με μικρά πακέτα. Και αυτό είναι σημαντικό και θα έλεγα να το προσέξουμε, έτσι, αυτό το κομμάτι. Και θα το δούμε πιο αναλυτικά στα επόμενα μαθήματα. Τώρα, είχαμε πει λίγο και στο προηγούμενο μάθημα, και να το δούμε λίγο και πιο αναλυτικά, για τα επίπεδα διευθυσιοδότησης. Δηλαδή, στο TCP πόσα επίπεδα διευθυσιοδότησης χρειάζομαι. Χρειάζομαι δύο επίπεδα διευθυσιοδότησης. Δηλαδή, στο πρώτο επίπεδο, στο επίπεδο δικτύου, κάθε υπολογιστής και κάθε δρομολογιστής έχει τη μοναδική διεύθυση. Μάλλον, για να το πω σωστότερα, κάθε διεπαφή πρόσβασης στο δίκτυο έχει μοναδική διεύθυση. Μπορεί να έχουν υπολογιστή που έχει δύο κάρτες στο δίκτυο, δύο κάρτες, άρα έχει δύο διευθύσεις. Ένας υπολογιστής που έχει, ας πούμε, μια κάρτα Ethernet και μπαίνει από τη μία πλευρά στο δίκτυο μέσω Ethernet, και από την άλλη, ξέρω, συνδέεται με ένα ADSL router, έχει δύο διεύθυνση IP. Δηλαδή, η μοναδική διεύθυνση πρόσβασης είναι ανά διεπαφή στο δίκτυο. Όχι ένα υπολογιστή, για να το πούμε λίγο σωστότερα. Και κάθε φυσικά δρομολογιστής, κάθε κόμβος του δικτύου, έχει τουλάχιστον δύο διεπαφές πρόσβασης στο δίκτυο. Άρα έχει δύο διαφορετικές IP. Απλά, όλες αυτές οι διευθύνσεις είναι μοναδικές στον κόσμο. Είναι το αντίστοιχο με του τηλεφωνικού αριθμού. Ο τηλεφωνικός αριθμός που έχουμε, είτε στο κινητό, είτε στο τραθερό, είναι μοναδικό στον κόσμο. Δεν υπάρχει άλλος αριθμός στον κόσμο, σαν το δικό μας. Άρα, λοιπόν, το δεύτερο επίπεδο είναι... Έχω την IP διεύθυνση στην επίπεδο δικτύου ή στο OSI έχω το network service access point, δηλαδή τη διεύθυνση υπηρεσίας σημείου πρόσβασης δικτύου. Τώρα, στο επίπεδο του TCP, ο μοναδικός αριθμός, η μοναδική διεύθυνση, είναι ο αριθμός θείρας. Προσέξτε τώρα εδώ, ο αριθμός θείρας είναι μία μοναδική διεύθυνση, αλλά όχι μοναδική παγκόσμια, είναι μοναδική ένα σύστημα. Δηλαδή, στον υπολογιστή μου τρέχω ένα λογισμικό που κάνει Web Server και αυτό είναι στη θείρα 80. Αυτό σημαίνει ότι εγώ στη θείρα 80 δεν μπορώ να τρέξω άλλο πρόγραμμα. Δεν μπορεί άλλη εφαρμογή πάνω από τη CPIP να χρησιμοποιήσει τη θείρα 80, τη δική μου, γιατί χρησιμοποιείται ήδη. Αλλά η εφαρμογή μπορεί να χρησιμοποιήσει την 81, την 82 κτλ. Αλλά σε έναν άλλον υπολογιστή, μπορεί φυσικά και ο άλλος Web Server να χρησιμοποιήσει τη θείρα 80. Εάν ήθελα να το πω αυτό ολοκληρωμένα, δηλαδή όλα αυτά που είπα και αυτό να το σημειώσουμε, είναι ότι ποιο συνδυασμός πραγματικό είναι μοναδικός. Είναι μοναδικός ο συνδυασμός μεταξύ σε μία σύνδεση. Μεταξύ IP διεύθυνσης του ενός, θείρας του ενός και IP διεύθυνσης του άλλου και θείρας του άλλου. Δηλαδή αυτή η τετράδα, αυτός είναι ο μοναδικός συνδυασμός σε μία σύνδεση στο δίκτυο, έτσι, στο Internet. Γιατί, μπορεί να έχω τύχη, δεν μπορώ να έχω, σκεφτείτε την περίπτωση, παίρνω εγώ και ανοίγω διαφορετικά παράθυρα με τον ίδιο browser, έτσι, και μπαίνω σε διαφορετικούς τέτοιους, σε διαφορετικούς servers. Ο κάθε, από τη δική μου την πλευρά, έτσι, έχω την ίδια διεύθυνση δικτύου, αλλά τι, το κάθε παράθυρο που ανοίγει, παίρνει τι, διαφορετική θείρα, έτσι, η θείρα δυναμικά στον υπολογιστή μου είναι δυναμική. Άρα, κάθε φορά, ο συνδυασμός αυτός, αυτή η τετράδα είναι μοναδική στον κόσμο, έτσι, σύνδεση. Και θα το δούμε πιο αναλυτικά, με παραδείγμα, όταν κάνουμε το αντίστοιχο κεφάλαιο. Δηλαδή, αν ήθελα να τα δω λίγο πιο, αν ήθελα να δω αυτές τις είναις λίγο πιο γραφικά, θα βλέπω, ας πούμε, τον υπολογιστή α, που έχει την εφαρμογή x, την εφαρμογή ψ, έτσι, η εφαρμογή x, έτσι, το ότι είναι το mail, έτσι, είναι στη θείρα, σε μία θείρα εδώ τη C, η εφαρμογή ψ μπορεί να είναι ένας web browser που χρησιμοποιεί δύο διαφορετικές θείρες, έτσι, έχει ανοιχτά δύο φύλλα του browser. Έχω, δηλαδή, εδώ μία λογική TCP σύνδεση, έχω το επίπεδο του IP, έτσι, τη μοναδική, δηλαδή, παγκόσμια διεύθυνση, έχω εδώ το επίπεδο, το πρωτόκολλο επίπεδου πρόσβασης στο δίκτυο, έχω από κάτω το φυσικό επίπεδο, το δίκτυο 1, έχω το ενδιάμεσο σύστημα, που είναι ένας δρομολογητής, ο οποίος δρομολογητής θα έχει το IP, θα έχει δύο διαφορετικές διαπαφές πρόσβασης στο δίκτυο, έτσι, μπορεί εδώ, ας πούμε, το δίκτυο αυτό να είναι τύπου Ethernet, το άλλο δίκτυο, ξέρω, να είναι τύπου Token Ring, έτσι, ή ασύρματο δίκτυο, π.χ., έτσι, δύο διαφορετικά, δηλαδή, πρωτόκολλα πρόσβαση στο δίκτυο, αλλά, από πάνω πάντα, το ίδιο κοινό πρωτόκολλο, το IP. Και εδώ, πάλι, έχω το σύστημα Β, που έχω, πάλι, έναν άλλον υπολογιστή με διαφορετικό πρωτόκολλο πρόσβαση στο δίκτυο, ίδια παγκόσμια διαφύση, πάλι, το επίπεδο IP, το επίπεδο TCP, και να μιλάει με τις αντίστοιχες εφαρμογές του υπολογιστή Β. Το υπολογιστή Ά με τον Β με τον Ά. Δηλαδή, αν το έβλεπα, πάλι, με τις μονάδες πρωτοκόλου δεδομένων, θα χάσω το επίπεδο της εφαρμογής, ας πούμε, τα δεδομένα του χρήστη, πάνε όλα αυτά κάτω και γίνονται το τμήμα της πληροφορίας του TCP segment, του πακέτ του TCP, βάζει το TCP και τη δικιά του επικεφαλίδα, όλα αυτά κατεβαίνουν κάτω στο IP επίπεδο και γίνονται IP πακέτο ή IP datagram, όπως το λέμε στην ολογία του TCP, βάζει το IP και το δικό του επικεφαλίδα, δηλαδή, έχει σίγουρα επικεφαλίδα IP διεύθυνση προεσμού και IP διεύθυνση πηγής και όλα αυτό κατεβαίνει στο επίπεδο πρόσβασης στο δίκτυο, στο MAC επίπεδο, στο Ethernet ή στο ασύρματο και βάζει το αντίστοιχο επίπεδο δικτύου και τη δικιά του επικεφαλίδα, δηλαδή στο TCP-IP έχω αυτή τη λογική και βλέπετε ότι το πεδίο της πληροφορίας του κάθε επίπεδου είναι το προηγούμενο πακέτο. Και εδώ απλά λέω την ολογία επίπεδου, προσέξτε και στα αγγλικά είναι λίγο διαφορετικές ολογίες, εδώ λέμε network level packet, εδώ λέει IP datagrams στο IP, στο TCP λέμε segment, μπορεί να σημαίνουν όλα το ίδιο, PDU, αλλά χρησιμοποιούν λίγο διαφορετική ολογία. Και εάν θέλω πάλι να δω ένα άλλο διάγραμμα, δηλαδή πίχει ας πούμε είμαι σε ένα browser και ζητάω μια σελίδα, δηλαδή εδώ πολύ συνοπτικά έχω με την πληροφορία του χρήστη μου λέει ότι get web page, κατεβαίνει κάτω στο TCP, παίρνει το TCP header, κατεβαίνει κάτω όλο αυτό στο επίπεδο δικτύου, παίρνει την IP επικεφαλίδα, κατεβαίνει κάτω αυτό στο τοπικό δίκτυο, παίρνει μια επικεφαλίδα τοπικού δικτύου, παίρνει και ένα trailer τοπικού δικτύου στο πίσω μέρος, στο τοπικό δίκτυο, φτάνει εδώ σε ένα router, ο router έχει δύο διαπαφές, έχει μία διαπαφή πρόσβαση στο τοπικό δίκτυο και μία διαπαφή πρόσβαση σε δίκτυο ευρίας περιοχής. Και τι κάνει τώρα, από αυτό το πακέδι όπως είναι, βγάζει το LAN header και το LAN trailer, παίρνει δηλαδή το IP πακέτο του επίπεδου δικτύου και το φτιάχνει ένα νέο πακέτο που πάει από την άλλη πλευρά και βάζει μία επικεφαλίδα 1 δικτύου ευρίας περιοχής. Πάει στο δίκτυο ευρίας περιοχής, φτάνει μέσω του επίπεδου 1 που έχει μία αντίστοιχη, μέσω του δικτύου 1 δίκτυου ευρίας περιοχής που έχει μία αντίστοιχη σε έναν άλλο router, σε ένα απομακρυσμένο router, βγάζει αυτό στη 1 επικεφαλίδα, παίρνει το επίπεδο IP, το πηγαίνει στο δικό του δίκτυο, στο δικό του LAN, βάζει τα headers και trailer του δικού του LAN και το στέλνει στο τοπικό σύστημα. Και στη συνέχεια έχουμε το αντίστοιχο, δηλαδή θα πάει πάνω στο επίπεδο δικτύου, θα πάει στο επίπεδο μεταφοράς, όπου τελικά το μήνυμα gateway page θα φτάσει στον web server. Πολύ συνοπτικά και πολύ απλά αυτή είναι η λειτουργία για να πάρω και να ζητήσω μία σελίδα μέσα από την εφαρμογή μου. Κατανοητό? Τώρα είπαμε ότι η επικεφαλίδα θα έχει συνήθως το TCP, θα έχει τη θήρα προορισμού, θα έχει έναν αριθμό και θα έχει ένα check-sum, ένα άθροισμα ελέγχου, δηλαδή σφαλμάτων της επικεφαλίδας. Να διακόψουμε όμως για ένα διάλειμμα. Λοιπόν, θα ξανακάνουμε μία διακοπή για ένα δεκάλευτο διάλειμμα και συνεχίζουμε. Συνεχίζουμε με τη δεύτερη ενότητα, με τις κάποιες άλλες ακόμα διαφάνειες της δεύτερης ενότητας. Να πούμε λίγο για τις εφαρμογές που έχουμε στο internet. Τι είδους εφαρμογές έχουμε? Έχουν εφαρμογές που μεταφέρουν κείμενο και εικόνες, mail ας πούμε και τα λοιπά. Και έχουμε τεράστια αύξηση τα τελευταία χρόνια στις εφαρμογές πολυμέσων. Δηλαδή εφαρμογές που μεταφέρουν ζωντανά βίντεο, που μεταφέρουν εικόνα, που μεταφέρουν ήχο και τα λοιπά. Βλέπεις Skype και όλα αυτά. Πέρα λοιπόν εμείς θα μπορούσαμε, μπορούμε να ξεχωρίσουμε την κίνηση στο internet σε δύο διαφορετικές κινήσεις. Την ελαστική, δηλαδή αυτή που μπορεί να προσαρμοστεί στις καθυστερήσεις και στις πεταβολές. Ποιά είναι τέτοια και ορισμένες εφαρμογές μπορούν να είναι πιο ευαίσθητες. Ποιά είναι παράδειγματα ελαστικής κίνησης. Υχεί το email έτσι, το να φτάσει το email με λίγη καθυστέρηση ας πούμε δεν είναι κάτι που μας αφορά. Ή τουλάχιστον δεν μας πειράζει σε μεγάλο βαθμό. Και έχουμε και την ανελαστική, για παράδειγμα την κίνηση η οποία πρέπει να έχει, η οποία έχει από τη φύση της, τις ελάχιστες απαιτήσεις σε ευρωζώνης. Δηλαδή για παράδειγμα μεταφορά βίντεο, φωνής, τηλεδιασκέψεις, όλα αυτά μέσα από το Skype ή μέσα από κάποιο άλλο πρόγραμμα, απαιτούν, δεν είναι, έχουν ιδιαίτερες απαιτήσεις σε ευρωζώνης και ταχύτητα μετάδοσης. Στο τέλος, απλά να δείξουμε μια διαφάνεια που όπου έχουμε στον ένα άξονα, έχουμε σε τρεις άξονες. Σε έναν άξονα την εφαρμογή, δηλαδή voice over IP, streaming, audio, video, multimedia conferencing, collaborative work systems, multimedia email, έτσι. Στο άλλο άξονα έχουμε το είδος του μέσου, δηλαδή κείμενο, ήχος, γραφικά, ακίνηση. Και εδώ έχουμε μια σειρά από τεχνολογίες, δηλαδή ποιότητα υπηρεσίας, πρωτόκολλα, συγχρονισμός, συμπίεση, το interface του χρήστη, βάζει δεδομένα, λειτουργικά συστήματα, αρχιτεχνοκοπωλευτών, κτλ. Βλέπουμε δηλαδή ότι όσο πιο κοντά είμαστε στην αρχή του άξονα, έχουμε πιο βασικές τεχνολογίες. Όσο πάμε, όσο απομακρυνόμαστε και πάμε στους άλλους άξονας, έχουμε ανελαστική κίνηση, έχουμε ποιότητα υπηρεσίας, χρειαζόμαστε δικά πρωτόκολλα, έχουμε βίντεο κτλ. Αυτό πολύ ποιοτικά. Άρα λοιπόν, για να ολοκληρώσουμε τη δεύτερη ενότητα, παρουσιάσαμε αρχικά τους λόγους για τους οποίους έχουμε πρωτόκολλα και αρχιτεχνωνικές πρωτοκόλων, είδαμε πολύ συνοπτικά το πρωτόκολλο DCPIP, είδαμε το μοντέλο τυποποίησης του OZY και φυσικά είδαμε κάποια πράγματα για τις ανάγκες εφαρμογών. Και τέλος, μια διαφάνεια την οποία τη θεωρώ πάρα πολύ σημαντική και η οποία στην ουσία είναι όλο το μάθημα, ή τουλάχιστον το μεγαλύτερο ποσοστό του μαθήματος, που μου δείχνει αυτά που θα κάνουμε τώρα σε αυτό το μάθημα. Δηλαδή, κάτω έχω το IP, το κοινό πρωτόκολλο για όλα, έχω από πάνω τα διάφορα επίπεδα μεταφοράς, το TCP, το UTP, με το ICMP θα κάνουμε το Internet Control Message Protocol, θα κάνουμε γι' αυτό. Για τα υπόλοιπα είναι πρωτόκολλα δρομολόγησης, δεν θα ασχοληθούμε σε αυτό το μάθημα. Από πάνω από εδώ το TCP έχω διαφορετικές εφαρμογές, έχω το FTP, File Transfer Protocol, έχω το HTTP, Hyper Text Transfer Protocol, το ξέρουμε όλοι μέσα από το browser, το SMTP, το Simple Mail Transfer Protocol, δηλαδή το πρωτόκολλο για τη μεταφορά όλου του ηλεκτρονικού ταχυδρομίου. Θα κάνουμε ειδικό κεφάλαιο, θα κάνουμε μάθημα, θα πούμε και για το HTTP και για το SMTP. Από πάνω υπάρχει το MIME, δηλαδή Multi Purpose Internet Mail Extension, δηλαδή το πρωτόκολλο που έχει να κάνει με το πώς προσθέτουμε στο mail ελληνικούς χαρακτήρες, πώς βάζουμε γραφικά, πώς βάζουμε διαφορετικά ιδιαρχία, πώς μεταφέρουμε όλα αυτά πάνω από το email. Γιατί το SMTP, το αρχικό πρωτόκολλο, μιλάει για μεταφορά mail λατινικών χαρακτήρων 7 bit. Άρα το πώς θα προσθέτουμε όλα τα υπόλοιπα που έχουμε στο mail μας είναι στο MIME. Το Telnet, δεν ξέρω τώρα βέβαια κατά πόσο ξέρετε το Telnet, συνήθως όταν το ρωτάω αυτό δεν το ξέρετε, που έχει να κάνει με την απομακρυσμένη πρόσβαση σε έναν υπολογιστή, που είναι λειτουργικού Unix ή Linux, αλλά μέσα από γραμμή εντολής, δηλαδή αν γράψετε Telnet στα Windows θα σας βγάλει το πρόγραμμα Telnet, ανοίγω αυτό το πρόγραμμα και μπαίνω έτσι, λέω Telnet και την IP διεύθυνση του απομακρυσμένου υπολογιστή και μπαίνω σε έναν απομακρυσμένο υπολογιστή ή θα μπορούσα να είναι και δρομολογητής, οτιδήποτε πάντως που υποστηρίζει Telnet. Δεν ξέρω πώς θα προσθέσω, το έχετε ακούσει αυτό, το έχετε ακούσει, εντάξει, ένας, εντάξει, δύο, εντάξει, τρεις, εντάξει, το έχουμε ακούσει περισσότερο, εντάξει, και το SNMP, δηλαδή το Simple Network Management Protocol που έχει να κάνει με λειτουργίες διαχείρισης πάνω από IP δίκτυα. Άρα λοιπόν θέλω να ξανατονίσω ότι η διαφάνεια αυτή με ενδιαφέρει πάρα πολύ να ξέρουμε, άσχετα τι θα κάνουμε, άσχετα αν θα τα κάνουμε ή όχι, να ξέρουμε τι σημαίνει τα κάθε γράμματα αυτά τι σημαίνουν. Διαφέρον, θεωρώ ότι είναι σημαντική για το μάθημά μας. Οπότε τελειώσαμε τη δεύτερη ενότητα και ξεκινάμε την τρίτη, την τρίτη ενότητα που έχει να κάνει με τις τεχνολογίες τοπικών δικτύων.