Διάλεξη 6 (β μέρος) / Διάλεξη 6 (β μέρος) - Γούδος Σωτήριος (ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ, 2014)
Διάλεξη 6 (β μέρος): Λοιπόν, θα συνεχίσουμε με το πρωτόκολλο διαδικτύου, ότι είχαμε τελείωσει την προηγούμενη φορά. Είμασταν κάπου εδώ. Έχουμε υπολογιστές, έτσι, όχι κώδες, πότες, δέξει, υπολογιστές, έτσι, συσκευές. Να θυμίσουμε πρώτα τι σημαίνει multi-home. Είναι οι συσκευές οι οποίες έχουν πολλαπλές διεπαφές και συνδέονται με πολλά δίκτυα. Μπορούν να συνδεθούν με περισσότερα του ενός δίκτυα. Οι συσκευές αυτές λέγονται με τον όρο multi-home. Τώρα δεν υπάρχει ακριβής μετάφραση στα ελληνικά όπως καταλαβαίνουμε σε αυτό. Αυτό σημαίνει ότι μια τέτοια συσκευή θα έχει πολλαπλές διευθύνσεις IP. Και μια τέτοια πρώτη συσκευή που ξέρουμε που έχει σίγουρα δύο τουλάχιστον διαπαφές είναι ένας δρομολογητής. Έτσι, ένας δρομολογητής θα έχει τουλάχιστον δύο διαπαφές. Δηλαδή, για παράδειγμα, ένα παράδειγμα multi-home συσκευής, δηλαδή αυτή στο δίκτυο classes-alpha 123.0.0.0.90, εδώ έχει μία IP διεύθυνση. Απ' την άλλη, έχει μία άλλη διεπαφή σε ένα δίκτυο classes-veeta 141.14.0, βλέπετε, η άλλη IP διεύθυνση. Και συνδέεται πάλι με ένα router, ο οποίος συνδέεται σε τρία δίκτυα, δηλαδή ένα classes-alpha, ένα classes-veeta και εδώ ένα classes-c. Αυτές είναι οι multi-home, όχι κωδεσποντές, είναι κακή μετάφραση του host, είναι συσκευές. Τώρα, για τα υποδίκτυα δεν είχαμε κάνει την προηγούμενη φορά, απ' ό,τι θυμάμαι. Μία πολύ βασική, από εδώ και πέρα, ό,τι κάνουμε είναι πάρα πολύ βασικό για να κατανοήσουμε το IP, οι διεύθυνσεις του IP, είπαμε ότι είναι σχεδιασμένες σε δύο επίπεδα ιαρχίας, δηλαδή δίκτυο και net-id και host-id, έτσι. Άρα, δηλαδή, αν σε έναν οργανισμό, π.χ., ας πούμε πως το απηθεί, έτσι, έχω δώσει μία διεύθυνση, έχει δοθεί μία διεύθυνση classes-veeta, όπως αυτή εδώ, 141.14.0.0, τότε, όλοι οι υπολογιστές, διάφοροι οι υπολογιστές, θα πάρουν διευθύνσεις από αυτήν την διεύθυνση classes-veeta, θα υπάρχει κάπου ένας δρομολογητής με το υπόλοιπο δίκτυο, έτσι. Δηλαδή, ακριβώς, όπως είναι το παράδειγμα το απηθείτα, μόνο το απηθείτα είναι 155.207, έτσι, η classes-veeta, η διεύθυνσή του. Τώρα, όμως, αυτό το προηγούμενο, η προηγούμενη διαμόρφωση, έτσι, είχε το εξής πρόβλημα, ότι δημιουργεί ένα τεράστιο δίκτυο. Δηλαδή, το δίκτυο classes-veeta, έτσι, είναι ένα δίκτυο το οποίο μπορεί να έχω 2 στη 16 υπολογιστές μειών 2, έτσι, δηλαδή περίπου 65.000 υπολογιστές. Λοιπόν, ένα τέτοιο δίκτυο δεν είναι εύκολα διαχείρισιμο, καλύτερα είναι, από τη στιγμή που εγώ, εσωτερικά, για το υπόλοιπο δίκτυο, για το υπόλοιπο internet, έχω μια διεύθυνση classes-veeta, ό,τι και να γίνει, εσωτερικά, να σπάσω αυτό το μεγάλο δίκτυο classes-veeta σε μικρότερα υποδίκτυα, τα οποία να τα χωρίσω και με δρομολογητές μεταξύ τους, έτσι, τα sub-network, να βάλω εσωτερικά routers και τελικά αυτή τη διεύθυνση, τη μεγάλη, τη classes-veeta, να τη σπάσω σε μικρές διευθύνσεις classes-c. Καθενά το δικό τους υποδίκτυο, έτσι, για παράδειγμα, έπαμε, ακριβώς παράδειγμα είναι του οργανισμού στο οποίο βρισκόμαστε, στο APYTHETA, το APYTHETA έχει μια διεύθυνση classes-veeta 155.207.0.0, έτσι, και όλο αυτό το έχει σπάσει σε διάφορα υποδίκτυα, δηλαδή στο φυσικό, έτσι, αν δεν κάνω λάθος υπάρχει το 207.9.0, έτσι, ή το υποδίκτυο 207.10.0, έτσι, όλα αυτά, ανάλογα με το τμήμα και τα λοιπά, έχουν σπάσει σε διαφορετικά υποδίκτυα. Ποιο είναι το πλεονέκτημα σε αυτή την προσέγγιση, ότι για το ίντερνετ είναι το ίδιο, για τους υπόλοιπους είναι το ίδιο, γιατί η διεύθυνσή μου πάντα παραμένει η διεύθυνση classes-veeta του APYTHETA, αλλά εσωτερικά μπορώ να χωρίσω τα διαφορετικά δίκτυα με, αντί να έχω ένα τεράστιο δίκτυο με πολλές χιλιάδες υπολογιστές, να τα χωρίσω ανακτήριο, ανατμήμα με γεωγραφικά κριτήρια και έτσι να έχω διαφορετικά υποδίκτυα, να έχω εσωτερικούς δρομολογητές που κάνουν εσωτερικά δρομολογήσεις και με αυτόν τον τρόπο απομονώνω τα διάφορα άλλα δίκτυα και έχω πολύ γρήγορη απόκριση σε αυτά και αυτά τα τοπικά δίκτυα. Δηλαδή τι κάνω με την υποδικτύωση. Προσθέτω ένα τρίτο επίπεδο ιεραρχίας, δηλαδή στα δύο επίπεδα ιεραρχίας που προϋποθέτει το IP, εγώ κάνοντας αυτό εδώ, χωρίζοντας τα υποδίκτυα, προσθέτω ένα επιπλέον επίπεδο ιεραρχίας, δηλαδή έχω NETID, SUBNETID και HOSTID. Έχω τρία επίπεδα ιεραρχίας τώρα. Δηλαδή χωρίς SUBNETING θα είχα κάτι τέτοιο, με SUBNETING θα έχω NETID, SUBNETID και HOSTID. Δηλαδή ποια είναι η διαφορά του. Εδώ έχω δηλαδή, η διαφορά εδώ είναι ότι εδώ έχω το HOSTID, εδώ θεωρώ ότι αυτή είναι η διεύθυνση κλάσης Β, ενώ εδώ το χωρίζω σε μικρά υποδίκτυα κλάσης Σ. Και φτάνουμε στη διαδικασία του MASKING. Φαντάζομαι ότι έχετε δει και στα Windows που λέει Subnet Mask να εξηγήσουμε τι είναι αυτό. Η διαδικασία του MASKING είναι μια διαδικασία για να εξάγωτη την διεύθυνση δικτύου από τη διεύθυνση IP ενός μίας συσκευής, ενός υπολογιστή κλπ. Δηλαδή ας πούμε ότι έχω αυτή τη μάσκα 255.255 και βάζω σαν είσοδο αυτήν εδώ την IP διεύθυνση. Τελικά κάνοντας μια λογική πράξη μου βγάζει τη διεύθυνση δικτύου. Ποια λογική πράξη, η μόλη λογική πράξη που μπορεί να μου το βγάλει αυτό ποια είναι? Bitwise end, δηλαδή end bit προς bit. Αν όλα αυτά είναι άση, τι θα μου βγάζει τη διεύθυνση δικτύου. Ενώ αν έχω υποδίκτυα τότε η μάσκα μου δεν είναι κλάσης Β, είναι κλάσης Σ, οπότε μου βγάζει τι, όχι τη διεύθυνση δικτύου, τη διεύθυνση υποδικτύου. Δηλαδή η διαδικασία του masking, η μάσκα τι είναι, είναι αυτά τα bits τα οποία κάνοντας λογικό end με μία διεύθυνση έχει ως αποτέλεσμα μου βρει τη διεύθυνση δικτύου. Για να τα δούμε λίγο πιο αναλυτικά αυτά, δηλαδή αν έχουμε αυτή την IP διεύθυνση στα διαδικά είναι έτσι και έχω αυτή τη μάσκα, η μάσκα δεν ανάγκη να τελειώνει σε 255.0 μπορεί να τελειώνει και σε αυτή, και αυτή είναι μία μάσκα υποδικτύου. Δηλαδή αυτή πάλι τι είναι, αρκεί να είναι κάποια bits να είναι άση, τα bits που παριστάνουν το δίκτυο είναι άση, τα bits που παριστάνουν το host είναι μηδέμι. Εάν κάνω ένα bitwise end μεταξύ αυτών των δύο το αποτέλεσμά μου θα είναι αυτό, αυτή σε αυτή την περίπτωση είναι η διεύθυνση δικτύου. Δηλαδή η διεύθυνση δικτύου δεν είναι απαραίτητο, θα δούμε γιατί, δεν είναι απαραίτητο να τελειώνει πάντα σε δεκαδικό μηδέν, εδώ πάλι τελειώνει σε μηδέν και αυτή είναι διεύθυνση δικτύου, τελειώνει σε μηδέν. Αλλά όχι απαραίτητα όλα και τα 8 bits, τώρα θα το δούμε να το εξηγήσουμε αυτό γιατί. Αυτό γιατί, γιατί υπάρχει και ο τρόπος εκτός από τις κλάσεις A, B, B και C, έτσι, υπάρχει και ο τρόπος διευθυσιοδότησης αυτό που λέγεται classless inter-domain routing, έτσι, δηλαδή χωρίς κλάση. Τι σημαίνει αυτό, σημαίνει ότι παριστάνω τις διευθύνσεις με x slash ψ, όπου x τι σημαίνει, x δηλώνει το πρόθεμα όλων των διευθύνσεων στο μπλοκ και το ψ δηλώνει το μήκος του προθέματος, έτσι, σε bits. Δηλαδή το 128.9 slash 16, έτσι, σημαίνει ότι ξεκινάνε οι διευθύσεις μου από αυτό εδώ το πρόθεμα και το πρόθεμα αυτό σημαίνει ότι τα πρώτα αυτά είναι το πρόθεμα που ξεκινάει η διευθυσία και τα 16 σημαίνει το μήκος του προθέματος σε bit, δηλαδή το μήκος του δικτύου σε bit. Αυτό μου δείχνει ότι τα πρώτα 16 bit παριστάνουν το δίκτυο, δηλαδή είναι το αντίστοιχο της κλάσης β. Δηλαδή αυτό εδώ, slash 8, τα πρώτα 8 bit είναι το δίκτυο, άρα είναι το αντίστοιχο της κλάσης α, έτσι, slash 16, το αντίστοιχο της κλάσης β, slash 19, αυτό δεν αντίστοιχη σε κάποια κλάση, δηλαδή αυτό μου λέει ότι όλοι οι διευθύσεις ξεκινάνε από 142.12, αλλά στο οποίο τα πρώτα 19 bits αντιστοιχούν σε host, έτσι, αντιστοιχούν σε δίκτυο, έτσι, τα πρώτα 19 bits είναι το δίκτυο και τα υπόλοιπα bits αντιστοιχούν στους υπολογιστές. Δεν ξέρω, περδευθήκαμε? Θα το δούμε λίγο με παραδείγματα. Δηλαδή αν άλλος ο χώρος διευθύσεων είναι αυτός, από 0 έως 2 στη 22η Δευτέρα μειών 1, έτσι, ορίζω διαφορετικά κομμάτια διευθύσεων κάθε φορά, ξέρω εγώ εδώ, ας πούμε ορίζω κομμάτια που ξεκινάνε από 168.9.1.176-20, όπου ορίζω ότι τα πρώτα 20 bits είναι το δίκτυο, άρα τα υπόλοιπα 12 bits είναι υπολογιστές. Άρα, κατευθείαν, ο χώρος διευθύσεων αυτός είναι τι, 2 στη 12η, έχω 2 στη 12η διαθέσιμες διευθύνσεις, άρα 2, νομίζω είναι 4096, μειών 2, 4094, οι υπολογιστές μπορούν να συνδεθούν σε αυτό το δίκτυο. Απλά διαμερίζω το χώρο των διευθύσεων όχι σε κομμάτια όσα ορίζουν οι κλάσεις αλλά και σε μικρότερα και διαφορετικά κομμάτια. Άρα, τα πρώτα 21 bits συμβολίζουν το δίκτυο ενώ τα υπόλοιπα 15 bits αντιπροσφέρουν το χώρο, δηλαδή η μάσκα δικτύου αυτού του δικτύου θα αποτελείται από τι, από 21 άσους και 11 μηδενικά, δηλαδή αυτό είναι σε 12η μορφή, το βλέπουμε με αυτήν εδώ τη μορφή. Για να δούμε λίγο κάποια άλλα παραδείγματα, δηλαδή, εδώ αυτό το δίκτυο, Slash 17, το πρόθεμα είναι αυτό, η μάσκα υποδικτύου είναι αυτή εδώ, αυτή εδώ βλέπετε, η μάσκα είναι αυτή, όλα άσοι, 17 άσοι και όλα τα υπόλοιπα μηδενικά. Εντάξει, το Slash 16 το καταλαβαίνουμε γιατί είναι έτσι, το Slash 26 η μάσκα υποδικτύου, όλα τα υπόλοιπα μηδενικά και εδώ αυτή είναι η διεύθυνση του δικτύου, η πρώτη διεύθυνση. Δεν ξέρω αν υπάρχουν κάποιες ερωτήσεις τώρα πάνω σε αυτό γιατί αυτά είναι αρκετά σημαντικά, έτσι να τα κατανοήσουμε. Τώρα, η μάσκα υποδικτύου αυτή, έτσι, Slash 24 συνεπάγεται τί, 32 μη 24 beats, έτσι, για τους υπολογιστές, άρα 2 στην 8η μειών 2 διαθέσιμες συσκευές μπορούν να συνδεθούν σε αυτό το δίκτυο, έτσι. Δηλαδή, κάθε φορά, ξαναλέω ότι είναι άλλο πράγμα να λέμε πόσο είναι το εύρος των διευθύσεων, δηλαδή πόσες διευθύσεις υπάρχουν σε αυτή την, υπάρχουν και πόσοι υπολογιστές μπορούν να συνδεθούν, πόσες συσκευές μπορούν να συνδεθούν. Από τις συσκευές που μπορούν να συνδεθούν, αφαιρούμε πάντα 2, έτσι. Αν έχω σλάση 27, έτσι, η μάσκα υποδεικτή είναι αυτή, δηλαδή έχω 5 beats δικτύου, άρα έχω 2 στην 5 μειών 2, 30 πιθανή συνδυασμή, έτσι. 30 τι, 30 πιθανή, όχι οικοδεσπότες, έτσι, πιθανή υπολογιστές που μπορούν να συνδεθούν στο δίκτυο. Τώρα, κάποιες απλές ασκήσεις σε αυτή είναι να βρούμε την πρώτη διεύθυνση, έτσι, αν μας δίνεται ένα μπλοκ, δηλαδή μας δίνεται αυτό το μπλοκ, έτσι, σλάση 27. Ποια είναι η πρώτη διεύθυνση σε αυτό το μπλοκ, αν το κάνουμε αυτό στο διαδικό, τι έχουμε να κάνουμε, λέμε ότι είναι τα πρώτα 27 beats στο δικτύο, άρα τα 5 τελευταία beats είναι το host. Άρα, εάν βάλω, θα βρω την πρώτη διεύθυνση, εάν το γράψω σε διαδική μορφή και τα 5 τελευταία beats, τα κάνω 0, έτσι. Και τελικά, αν το μετατρέψω αυτό σε δεκαδικό μου, προκύπτει αυτό. Δηλαδή, στις εξετάσεις, θα πρέπει να έχουμε μαζί μας και κοπιτεράκι που κάνει πράξεις από δεκαδικούς σε διαδικούς και το αντίστροφο. Το καταλάβουμε πώς το βρίσκουμε, έτσι, δηλαδή είναι πολύ απλό. Για παράδειγμα πάλι, εάν μια από τις διευθύσεις είναι αυτή, σλας 20, που σημαίνει ότι τα 12 τελευταία beats είναι το host, τι θα κάνω, δηλαδή θα γράψω τα πρώτα 20 beats όπως είναι και στη θέση των 12 τελευταίων beats θα βάλω το 0. Δηλαδή, εδώ βλέπετε ότι 140, 120, εδώ τώρα πρέπει να πάρω τα 4 beats από το 84, δηλαδή να κρατήσω μόνο τα 4 beats και τα υπόλοιπα τα θεωρώ 0. Άρα τελικά αυτό θα είναι το δεκαδικό 80, έτσι, και τελικά αυτό που προκείται η πρώτη διεύθυση είναι η 120.8.0, έτσι, από αυτό το μπλοκ διευθύσεων σλας 20. Το καταλαβαίνουμε? Τώρα, για να βρούμε την τελευταία διεύθυση, έτσι, πώς θα βρω την τελευταία διεύθυση, ή θα πρέπει να βρω την πρώτη διεύθυση να προσθέσω τον αριθμό του διευθύσεων και να αφαιρέσω ένα, που είναι πιο πολύ πλοκό, ή απλά, με πολύ απλή λογική με την άλλη, να θέσω όλα τα beats που αποτελούν το host id, να τα θέσω ίσα με ένα, δηλαδή για την πρώτη τα θέτω ίσα με 0, για τη δεύτερη τα θέτω ίσα με 1, έτσι. Δηλαδή, για παράδειγμα, ή αν θέλω να πω τον αριθμό των διευθύσεων, σλας 20 είναι, το μήκος του προθέματος είναι 20, άρα λοιπόν ο αριθμός των διευθύσεων είναι 2 στο 10, ή 4 096 διευθύνσεις. Αλλά, ξαναλέω, ο αριθμός των συσκευών που θα μπορούσα να συνδέσω σε αυτό είναι 4 094, έτσι, μειών 2. Αν θέλω στο αυτό το μπλοκ να βρω την τελευταία διεύθυνση, έτσι, τι θα κάνω, ή θα πρέπει, είπαμε, γιατί ο αριθμός των διευθύσεων είναι 3 096, να προσθέσουμε 3 096 μειών 1 στην πρώτη διεύθυνση, ή, πολύ απλά, έτσι, πολύ πιο απλά, να θέσω όλα τα τελευταία 12 bit, ίσα με 1, όπου τελικά μου προκύπτει η τελευταία διεύθυνση. Έτσι, πολύ απλά, δηλαδή, την πρώτη διεύθυνση, όλα τα bits, τα host bits, ίσα με 0, για τη τελευταία διεύθυνση, τα host bits, τα θέτω ίσα με 1. Τώρα εδώ, δεν φαίνεται πολύ καλά, απλά κανένα πίνακα, μόλις τις διαφορετικές επιλογές που έχω, δηλαδή, από σλάς 8, 9 κτλ, ακόμα σλάς 31, 20 κτλ, δηλαδή, πού μπορώ να τα χρησιμοποιήσω αυτά. Για παράδειγμα, εδώ σας λέει, η μάσκα υποδεικτήου, οι διαθέσιμες διευθύσεις κτλ, δηλαδή, για σλάς 30 έχω, 2 bit τελικά, έχω και αυτές τις διαθέσιμες διευθύσεις. Που θα μπορούσα να τα χρησιμοποιήσω, θα μπορούσα να τα χρησιμοποιήσω, έτσι, για να μη σπαταλήσω χώρο διευθύσεων, σε τι, σε link, μεταξύ 2 δρομολογητών, έτσι. Δηλαδή, σε ζεύξεις, που χρειάζονται στην ουσία 2 διευθύσεις, θα μπορούσα να χρησιμοποιήσω κάτι τέτοιο, έτσι, για να μη σπαταλήσω χώρο διευθύσεων. Δηλαδή, γιατί να ορίσω ένα δικτύο κλάση C, όταν έχω ζεύξεις μόνο απλά μεταξύ 2 δρομολογητών, έτσι, για μια ζεύξη σημείω προσιμείω, θα χρησιμοποιήσω μια τέτοια μάσκα, έτσι. Εντάξει, αυτό δεν φαίνεται καλά, θα το δείτε όταν πάρετε της διαφάνειας. Τώρα, ένα άλλο πρωτόκολλο, αυτά για τις IP διευθύνσεις, έτσι, έκδοσης 4 γενικά, ένα άλλο πρωτόκολλο που θα μας απασχολήσει είναι το address resolution πρωτόκολλο, έτσι. Δηλαδή, το πρωτόκολλο στο οποίο μου βρίσκει την φυσική διεύθυνση, και τα λέμε φυσική διεύθυνση, να δούμε τη Mac διεύθυνση, έτσι, κατά κανόνα, ενός υπολογιστή, όταν είναι γνωστή η IP διεύθυνση. Και πάλι, ξαναχώμαστε στο ερώτημα, γιατί να το κάνω αυτό, δηλαδή, δεν αρκεί η IP διεύθυνση για να πάει ένα πακέτο σαν υπολογιστή. Όχι, η απάντηση είναι όχι. Γιατί, για να πάει τελικά, για να φτάσουν, όταν φτάνουν τα πακέτα, για ένα υπολογιστή σε ένα δίκτυο, έτσι, σαν ένα τοπικό δίκτυο Ethernet, απ' έξω, ξέρουμε την IP διεύθυνση αυτού του υπολογιστή, αλλά για να φτάσει από τον ρούτερ, το τελευταίο ρούτερ του τοπικού δικτύου, σε αυτόν τον υπολογιστή, δεν γνωρίζουμε τη Mac διεύθυνση. Πρέπει να ξέρουμε, για να φτάσει, μην ξεχνάτε ότι το IP πακέτο μπαίνει μέσα σε Mac πακέτο και τα λοιπά και πάει στο δίκτυο, αλλά πως θα πάει το Mac πλαίσιο, πρέπει να ξέρουμε σε ποιον υπολογιστή απευθυνόμαστε. Για να το κάνουμε αυτό, δηλαδή, όταν είμαστε στο ίδιο τοπικό δίκτυο, για να ξέρουμε και την IP διεύθυνση, αλλά και την Mac διεύθυνση, ώστε να μπορούμε να στείλουμε το πακέτο. Και γιατί ακριβώς, λέει ότι, η Mac διεύθυνση θα μπορούσε να αλλάξει, βέβαια είναι hardware, το hardware δεν αλλάζει, αλλά θα μπορούσα εγώ πυχή, χαλάει μια κάρτα δικτύου, αλλάζω την κάρτα δικτύου. Η IP διεύθυνση σε αυτό το υπολογιστή θα παραμένει εμωσταθερή. Η Mac διεύθυνση μπορεί να αλλάξει, αν αλλάξω εγώ κάρτα δικτύου και τα λοιπά. Άρα λοιπόν, θα πρέπει να υπάρχει ένας τρόπος με τον οποίο να μπορώ να βρω τη φυσική διεύθυνση, τη Mac διεύθυνση, όταν ξέρω την IP διεύθυνση. Και αυτό κάνει το 4 resolution protocol, δηλαδή τι γίνεται. Στέλνει ο router ένα πακέτο ARP, και λέει ότι ψάχνω να βρω τον υπολογιστή που έχει αυτή την IP διεύθυνση. Δηλαδή, τι στέλνει εδώ και το πακέτο αυτό, τι IP διεύθυνση προορισμού θα έχει, θα έχει την IP διεύθυνση προορισμού που θα είναι τι. Το τμήμα του host θα είναι όλα άση. Θυμάστε τη διεύθυνση εκπομπής. Δηλαδή δεν ξέρω τη διεύθυνση, εδώ τώρα σε αυτή την περίπτωση η διεύθυνση προορισμού θα είναι η λεγόμενη illimited broadcast. Θυμάστε από τα προηγούμενα, δηλαδή, που το είχαμε δει αυτό, όχι προορισμόνες εκπομπήσεις, κατευθυνόμενες εκπομπήσεις. Ναι, δηλαδή αυτό στέλνω, destination address αυτή, έτσι, στέλνω, ο router στέλνει με διεύθυνση προορισμού τη διεύθυνση του δικτύου και όλα τα υπόλοιπολοι άση που σημαίνει ότι αυτό το πακέτο με αυτή τη διεύθυνση προορισμού θα πάει σε όλους τους υπολογιστές στο δίκτυο. Έτσι, ένα τέτοιο δηλαδή IRP πακέτο έχει αυτή τη διεύθυνση προορισμού, τις κατευθυνόμενες εκπομπήσεις, όλα ας στο τέλος. Ε, τελικά, αφού φτάνει σε όλους, ο υπολογιστής στον οποίο ανήκει αυτό το IP, οι άλλοι υπολογιστές δεν απαντάνε. Το βλέπουν το μήνυμα, βλέπουν ότι δεν απαιφθεί στο δικό τους IP, δεν απαντάνε. Αυτός που έχει αυτό εδώ το IP απαντάει, η φυσική μου διεύθυνση είναι αυτή εδώ και τα λοιπά και στείλει το πακέτο. Έτσι μπορεί να τους στείλει το πακέτο. Φυσικά ο router, έτσι, μαθαίνει, κρατάει και τις διευθύνσεις αυτές, έτσι, κρατάει ένα IRP table και μαθαίνει και τις διευθύνσεις. Δηλαδή, μαθαίνει ποια φυσική διεύθυνση και τα λοιπά. Αλλά αυτό πάλι έχει ένα timer, είναι για συγκεκριμένο χρονικό διάστημα και μετά από κάποιο χρόνο ανανεώνονται πάλι αυτές οι διευθύσεις. Γιατί, εγώ μπορώ να συνδέσω άλλων υπολογιστής στο δίκτυο, μάλι κάρτα δικτύου, έτσι, που θα έχει άλλο Mac. Και όλα αυτά, δηλαδή, αυτό είναι δυναμικό των περιβάλλων. Άρα λοιπόν, δεν είναι στάνταρ πάντα οι αντιστοιχίες αυτές. Αν αλλάξω κάρτα σε έναν υπολογιστή, αλλάζει. Άρα, μαθαίνει δυναμικά ο router αυτές τις διευθύνσεις. Στα Windows αυτό μπορεί να το ελέγξει. Θέλω την εντολή, πώς να δούμε λίγο και κάτι άλλο. Αν πάμε εδώ στο command line. Δεν ξέρω αν φαίνεται τώρα καλά. Το βλέπετε? Θα δώσω ARP. Όλοι, μάλλον, μπορεί να δώσω. Βλέπετε, υπάρχει και ARP table. Προσδέξτε εδώ. Και αυτός ο υπολογιστής λέει internet address, physical address. Το ARP table που κρατάει αυτός εδώ ο υπολογιστής. Για να ξέρει τις αντιστοιχίες και βλέπω το type dynamic. Κάποια είναι dynamic, κάποια είναι static. Δηλαδή αυτό μπορεί να το κάνω στα Windows και στο Linux φυσικά μέσα από αντίστοιχες εντολές. Νομίζω και στο Linux υπάρχει ARP. Τώρα, το αντίστροφο, το reverse address resolution protocol. Τι κάνει αυτό? Δεν ξέρω τη φυσική μου διεύθυνση, αλλά δεν ξέρω την IP μου. Δεν έχω IP. Δηλαδή, ένας υπολογιστής που μόλις τώρα ανοίγει, θέλει να μάθει την IP του. Κάνε ρώτημα από σένα server να μου δώσει μια IP. Άρα τότε θα στείλω ένα μήνυμα. Ο υπολογιστής αυτός θα στείλει ένα μήνυμα που θα έχει τι? Θα έχει, αφού δεν ξέρει την IP του, τι θα βάλει ως διεύθυνση. Το είχαμε πει στο προηγούμενο μάθημα. Βάλει διεύθυνση πηγής, όλο μηδενικά, δηλαδή αυτός ο υπολογιστής, και διεύθυνση προορισμού, όλη άση. Δηλαδή, γιατί δεν ξέρω το δίκτυο, δεν ξέρω ποιο είναι το δίκτυο, άρα το στέλνω σε όλους. Ε, ο server θα του απαντήσει, ο server ο οποίος κάνει δυναμικά, ένα server που θα υπάρχει στο δίκτυο που κάνει δυναμικά ανάθεση διευθύσεων, θα του απαντήσει, η IP διεύθυνσή σου είναι αυτή. Αυτό είναι το αντίστροφο. Τώρα, υπάρχει ο όρος private IP, ιδιωτικές IP διευθύνσεις. Και ιδιωτικές IP διευθύνσεις είναι αυτές που βρίσκονται από αυτά τα RFC's και έχουν αυτό εδώ το εύρος. Υπάρχει αυτή η κλάση α, υπάρχει αυτή η κλάση β, υπάρχει αυτή η κλάση 12 και τα λοιπά. Τι είναι αυτά? Νομίζω ότι μπορεί να αναγνωρίζετε αυτήν από τις διευθύνσεις που έχουν τα Wi-Fi. Αν ψάξετε τις διευθύνσεις που έχουν τα router σας, θα δείτε ότι είναι μάλλον κάτι τέτοιες. Ανοίγουν αυτές οι διευθύνσεις. Τι σημαίνουν αυτές οι διευθύνσεις ιδιωτικές? Σημαίνει ότι όταν ένας router βλέπει ότι η διεύθυνση προορισμού ανήκει σε αυτές, δεν προωθεί το πακέτο. Σημαίνει διευθύνσεις που δεν υπάρχουν κάπου στο δίκτυο, αλλά είναι ιδιωτικές. Είναι για να στήσω εγώ το δικό μου intranet. Είναι διευθύνσεις οι οποίες δεν προωθούνται γενικά και μένουν μόνο μέσα σε ένα συγκεκριμένο δίκτυο. Αυτή είναι η έννοια των ιδιωτικών διευθύνσεων. Και με τις ιδιωτικές διευθύνσεις τι κάνουμε? Κερδίζουμε πολύ σε χώρο. Δηλαδή, θα παρατηρήσω ότι το Wi-Fi router που έχουμε σπίτι μας, αναθέτει τέτοιου τύπου ιδιωτικές διευθύνσεις σε όλες τις συσκευές που συνδέουμε. Αντίστοιχες διευθύσεις μπορεί να αθέτει ένα άλλο router στο διπλανό διαμέρισμα. Άρα δεν χρειάζονται ξεχωριστές διευθύσεις. Αλλά ο πάροχος ίντερνετ σου δίνει μία μοναδική, για εκείνη τη στιγμή, παγκόσμια IP διεύθυνση, από την οποία βγαίνουν όλες αυτές οι διευθύσεις. Πώς? Θα το δούμε τώρα. Δηλαδή, το πρόβλημα είναι τώρα... Ωραία, αν έχω πολλές συσκευές που έχουν ιδιωτικές διευθύσεις. Αν θέλουν αυτές οι συσκευές να επικοινωνήσουν με τον έξω κόσμο, με το ίντερνετ, πώς μπορούν να το κάνουν? Και όμως υπάρχει λύση που λέγεται... Είναι το πρωτόκολο network address translation. Δηλαδή, μετάφραση διευθύσεων. Τι σημαίνει? Μεταφράζω τις ιδιωτικές διευθύσεις δικτύου σε κανονικές ίντερνετ διευθύσεις. Δηλαδή, αλλάζω όταν ένας τέτοιος υπολογιστής με ιδιωτική διευθύση, στέλνει ένα πακέτο, φτάνει στο τελικό ο router, και ο router αλλάζει την IP διεύθυνση αυτή, με την κανονική γνήσια παγκόσμια διεύθυνση που έχει αυτός. Έτσι, διέψει το πακέτο και στέλνει το πακέτο προς τα έξω. Και μετά, όταν ξαναλάβει το πακέτο, πάλι ξαναλλάζει η διεύθυνση προεσμού και γίνεται αυτό. Και τώρα, υπάρχει και το port address translation, το PAT. Αυτό βέβαια τώρα δεν είναι πρωτόκολλα, αυτό είναι εφεύρεστη σύσκο, περισσότερο, αλλά θα το πούμε και αυτό για να δείξουμε πώς σε ένα δίκτυο, πολύ διαφορετικές εφαρμογές μπορούν να επικοινωνούν με αυτόν τον τρόπο, που είναι κάτι αντίσκολο. Δηλαδή, το port address translation το επεκτείνει το NAT και στο χώρο των ports, δηλαδή και στο TCP, όχι μόνο στο IP. Για να το δούμε λίγο με παραδείγματα. Δηλαδή, έστω ότι έχω αυτό το δίκτυο που έχει εδώ χωρίσει ιδιωτικές διεύθυνσες, source address είναι αυτή εδώ, άρα δηλαδή η διεύθυνσή μου είναι αυτή. Έχει όμως, ο router αυτός έχει μια κανονική global IP, που είναι αυτή εδώ, η οποία αντιπροσωπεύει όλες τις συσκευές που συνδέονται εδώ σε αυτό το δίκτυο. Outside global IP, εντάξει, global IP στην οποία θέλω να στείλω. Η outside, η εξωτερική είναι ότι αυτός εδώ ο server με τον οποίο θέλω να επικοινωνήσω. Τώρα το πρόβλημα είναι, πώς θα επικοινωνήσω με αυτός ο υπολογιστής, θα επικοινωνήσει με αυτό το server, ενώ έχει διεύθυνση ιδιωτική IP. Να το δούμε κατευθείαν, δηλαδή, στέλνει αρχικά ένα πακέτο που έχει destination address αυτό, source address αυτό, τη δικιά του, την κανονική. Το πακέτο αυτό μόλις φτάνει εδώ στον δρομολογητή με το NAT, μεταφράζεται, γιατί εδώ αυτός έχει ενεργοποιημένο το πρωτόκολλο NAT, που σημαίνει ότι υπάρχει ένα τέτοιο σπίνακας που λέει, σε αυτή την τοπική διεύθυνση αντιστοίχει σε αυτή την πραγματική διεύθυνση. Και τελικά το πακέτο που βγαίνει δεν είναι αυτό, αλλά είναι αυτό εδώ, όπου το source address έχει αλλάξει και είναι το κανονικό παγκόσμο IP, δεν είναι το ιδιωτικό. Τώρα, φτάνει το πακέτο εδώ, έτσι, όταν αυτός εδώ στέλνει την απάντησή του, θα έχει destination address αυτό και source address αυτό. Και τώρα, το αντίστοιχο, όταν φτάσει εδώ αυτό το πακέτο, τι θα γίνει? Αυτός θα κάνει την αντίστροφη μετάφραση, δηλαδή το hender τώρα θα αλλάξει το destination address σε 10.03, έτσι. Δηλαδή από αυτό το destination address που του έφτασε, θα το αλλάξει σε αυτό. Και όλοι, βλέπετε, δηλαδή, ο κάθε υπολογιστής αντιστοιχεί σε, βέβαια εδώ βλέπετε, διαφορετικές IP, εσωτερικές, αντιστοιχούν στο ίδιο global IP. Τι θα γίνει τώρα αυτό όμως, δεν θα μπλέξουνε λίγο, δηλαδή, αν ταυτόχρονα πολλές συσκευές ζητάνε, πώς θα ξέρουμε ποια ροή είναι σε ποιον, για να το λύσουμε αυτό το πρόβλημα, το λύνουμε και με το port address translation. Δηλαδή, στο καθένα αντιστοιχούμε και θείρες, δηλαδή μεταφράζω όχι μόνο τη διεύσελα και τη θείρα, τη θείρα την αφήνω την ίδια, έτσι. Δηλαδή, αν ταυτόχρονα θέλει να επικοινωνήσει και ο 2 και ο 3, έτσι, τι γίνεται, καταγράφονται και οι θείρες τους, έτσι, μεταφράζονται και τα TCP ports που έχουν. Άρα λοιπόν, ανάλογα με τα TCP ports, πάλι μεταφράζονται και μπορώ να στείλω τις τα πακέτα στον κάθε ένα προορισμό. Έτσι, δηλαδή, γιατί αυτό μπορεί να είναι η ίδια διεύθυνση, αλλά το port είναι διαφορετικό. Και ξέρω ότι, ξέρεις κάτι από το NAT table, ότι αυτό το port αντιστοιχεί σε αυτόν τον υπολογιστή με αυτήν την IP, αυτό το port αντιστοιχεί σε αυτόν τον υπολογιστή με την άλλη IP. Έτσι, δηλαδή, για να μπορούμε να επικοινωνήσουμε πολύ ταυτόχρονα, χρειάζεται και το port address translation. Έτσι, και αυτές είναι διεργασίες που είναι ενεργοποιημένες, δηλαδή είναι κάτι που το ζητείς τη καθημερινότητα, επικοινωνώντας μέσα από το Wi-Fi router σας. Μέχρι τώρα, υπάρχουν και άλλες ερωτήσεις εδώ. Πώς χρειάζεται δύο δημοτικές IP να τεχνίσουν στην ίδια παγκόσμια IP? Γιατί δεν έχουμε... Μα αν είχε κάθε μία τη δική της αντιστοίχηση... Μα αν είχε κάθε μία τη δική της αντιστοίχηση, τότε πάλι θα είχαμε σπατάλη χώρου διευθύνσεων, έτσι. Δηλαδή, η λογική του NAT είναι, για να μου περιορίσει το χώρο IP διευθύνσεων, μία και μόνη παγκόσμια IP διευθύνση να αντιστοίχει σε πολλές ιδιωτικές διευθύνσεις. Δηλαδή, αυτή είναι η λογική του NAT. Και αυτό ακριβώς, σου λέω, συμβαίνει, δηλαδή, εσύ όταν συνταίνεσαι στο σπίτι σου με ένα πάροχο, παίρνεις μία και μοναδική παγκόσμια διεύθυνση. Ναι, αλλά μέσω του NAT, εσύ μπορείς να έχεις πολλές συσκευές μέσα στο σπίτι σου, ξέρω εγώ, που έχουν Wi-Fi, μπορεί να έχεις πολλούς πολογιστές, smartphones, κτλ. Όλα λειτουργούν όμως, όταν φεύγει το πακέτο, η επικεφαλίδα, το source address είναι της μοναδικής παγκόσμιας διεύθυνσης που έχεις. Δηλαδή, αυτό είναι ακριβώς, ότι αν είχαμε πολλές IP διευθύνσεις, τότε θα είχαμε σπατάλι χώρο διευθύνσεων. Έτσι, με αυτόν τον τρόπο μπορούμε να αντιστοιχίσουμε πολλές συσκευές σε μία και μόνο διεύθυνση. Όχι, κοιτάξε, η κάθε συσκευή, όταν κάνει επικοινωνία TCP ή UTP, επικοινωνεί με κάποιο port. Τελικά, όμως, στο router, προς το internet, θα ενεργαίνεται ότι είναι μία IP που ανοίγει διάφορες ports. Ναι, ναι, ναι, ναι, ναι, ναι. Και με αυτόν τον τρόπο έχουμε εξοικονόμηση διευθύνσεων. Δηλαδή, αυτός είναι ο σκοπός του NAT και του PATH, εξοικονόμηση διευθύνσεων. Τώρα, κάτι άλλο, που δεν υπάρχει στα βιβλία σας, είναι προφανώς ότι θα έχετε ακούσει το πρωτόκολο DHCP. Με αυτόν τον τρόπο, παίρνετε εσείς από το router, πάλι από το Wi-Fi router, παίρνετε αυτόματα IP διεύθυνση. Τι είναι αυτό, δηλαδή, όταν ξεκινάει ο υπολογιστής, στέλνει πάλι ένα μήνυμα στο server, όπου server μπορεί να είναι το Wi-Fi router, στο DHCP server, για να είμαστε πιο ακριβείς, και λέει, ζητάω να μάθω την IP διεύθυσή μου, δεν έχω IP διεύθυσή του δικτύου. Και μπορεί να απαντήσει, ότι αυτή είναι η IP διεύθυσή σου, αυτό είναι το Sapnet mask, αυτά είναι τα gateways, αυτά είναι οι routers, αυτά είναι οι DNS servers, και ακόμα μπορεί αυτό να έχει και χρόνο, δηλαδή, αυτά ισχύουν για πέντε μέρες. Δηλαδή, δυναμικά και όχι στατικά, αναθέτω IP διευθύσεις, κάτι που γίνεται standard με το Wi-Fi. Τώρα, να δούμε κάποια θέματα ή θέλετε να κάνουμε διάλειμμα. Ναι, μάλλον δεν θα κάνουμε διάλειμμα και θα τελειώσουμε στις δύο, εντάξει. Λοιπόν, η προώθηση ενός IP datagram, πώς τελικά ο κάθε δρομολογητής, ανάλογα με την IP διεύθυνση, που βλέπει στην επικεφαλή, θα μπορεί να προωθήσει το datagram. Ας δούμε για παράδειγμα, μάλλον, εντάξει, κάθε δρομολογητής κρατάει αυτό που λέμε ένα πίνακα δρομολόγησης. Και τι περιέχει αυτός ο πίνακας δρομολόγησης, περιέχει πιθανές διευθύσεις που υπάρχουν στο δίκτυο, τις μάσκες δικτύου και από πού πρέπει τελικά να πάει το πακέτο για να φτάσει στον προορισμό του. Δηλαδή, μάλλον, ας το πάμε λίγο πιο αρχικά, αν έχω αυτό το δίκτυο και έχω τρεις δρομολογητές, έχω μάλλον τέσσερα δίκτυα και τρεις δρομολογητές. Στον router 2, όταν ο προορισμός μου είναι το δίκτυο 1, αυτό που θα ορίσω μέσα θα είναι το next hop, δηλαδή ποιος είναι ο επόμενος δρομολογητής από το οποίο θα βρεις το δίκτυο 1. Θα το στείλεις στον R1, γιατί το R1 συνδέεται στο NET1. Όταν θες να πας στο NET2 θα το παραδώσεις απευθείας, γιατί ο router 2 συνδέεται και με το NET2 και με το NET3. Όταν θες να πας στο δίκτυο 4, αυτό εδώ, τότε πρέπει να το στείλεις στο δρομολογητή R3 και αυτός θα το πρόθεση. Αυτό θα ήταν σχηματικά το routing table. Για να το δούμε λίγο όμως πιο κανονικά με IP. Δηλαδή κανονικά θα ήταν ποιος είναι ο προορισμός αν έχουμε αυτά τα δίκτυα. Ο προορισμός μου είναι αυτός, η μάσκα είναι αυτή, η IPDF στο επόμενο router είναι αυτή εδώ. Όταν πάω σε αυτά τα δίκτυα, τότε έχω deliver direct. Όταν ο προορισμός μου είναι αυτό εδώ το δίκτυο, αυτό εδώ, τότε η μάσκα υποδικτύου είναι αυτή. Ποιος το καθορίζει? Μα εδώ, σου λέει ότι αυτό το δίκτυο έχει Slash24. Είναι δίκτυο class C, στο λέει. Και ο επόμενος προορισμός είναι αυτός εδώ. Καταλαβαίνουμε, είναι πάρα πολύ σημαντικό να καταλάβουμε, τη λογική αυτού του πίνακα δρομολόγησης. Δηλαδή αυτό σημαίνει καταδρομολόγηση του R1. Μπορούμε να κάνουμε τώρα εμείς, στην ανάσκηση να κάνουμε τον πίνακα δρομολόγησης του R2, να κάνουμε εμείς του R1. Για παράδειγμα, ο R1 θα έχει όταν το destination είναι αυτό το δίκτυο. Αυτό το δίκτυο μου λέει ότι είναι class A. Άρα η μάσκα του είναι αυτή. Συμφωνούμε? Θα κάνουμε τώρα R1. Εδώ τι θα πω, το next hop ποιο θα είναι? DeliverDirect. Όταν θέλω να πάω στο δίκτυο 40.0, που είναι και αυτό, class A, εδώ πάλι τι θα ήταν, τι θα λέγα σε αυτό το δίκτυο, στο R1? DeliverDirect. Αν θέλω να πάω τώρα σε αυτό το δίκτυο, το οποίο δεν είναι direct. 255, είναι class A, 0.0. Εδώ τώρα πρέπει να ορίσω το next hop. Εδώ τι θα βάλω, ποιο, όχι πρέπει να βάλω IP, δηλαδή θα βάλω το 40.0.8, γιατί αυτό είναι το επόμενο. Και προσέξτε, εδώ αυτός ο δρομολογητής συνδέεται σε αυτά τα δίκτυα, έτσι, άρα τα next hop που μπορώ να βάλω μπορούν να είναι μόνο κάποια IP από αυτά τα δίκτυα. Δεν μπορώ να πάρω το next hop, φάνε το 128 και τα λοιπά, μα αφού δεν είναι συνδέεται σε αυτό το δίκτυο, δεν μπορώ να το στείλει. Όταν θέλω να πάω σε αυτό πάλι, έτσι, στο τελευταίο δίκτυο, τι θα βάλω πάλι, ποιο θα είναι το next hop. Πάλι το ίδιο, είναι ακριβώς το ίδιο, έτσι. Ο επόμενος δρομολογητής που θα το στείλεις θα είναι πάλι αυτός, έτσι. Αν δεν έχεις interface που να στείλεις σε αυτό το δίκτυο, θα το στείλεις στον επόμενο κοντινό δρομολογητή, που μπορεί να το προωθείς αυτός μετά στο άλλο δίκτυο, αλλά που συνδέεται στο δικό σου δίκτυο, που βρίσκεται σε ένα subnet δικό σου. Δηλαδή αυτός θα ήταν ο πίνακας δρομολόγησης του R1. Θέλετε να δούμε και το πίνακα δρομολόγησης του R3, να το δούμε. Λοιπόν, αντίστοιχα στον R3, έτσι. Το 30.0, έτσι. Τώρα, αν είμαι στον R3 και θέλω να πάω σε αυτό το δίκτυο, έτσι, δηλαδή στο 30.0, το next hop που θα βάλω δεν συνδέεται. Ποιο θα είναι? Ποια IP διεύθυση? 40.0, δεν μπορώ να πάω στο 40.0. Αυτά εδώ τα δύο IP σε αυτά τα δίκτυα συνδέεται. Θα είναι το 128.1.0.8. Αυτό είναι το next hop για να πάει σε αυτό το δίκτυο. Τώρα, όταν θέλω να πάω σε αυτό το δίκτυο, 40.0, πάλι το next hop ποιο θα είναι? Το ίδιο, έτσι. Αν θέλω να πάω στο 128.1.0, εδώ το next hop ποιο θα είναι? Deliver Direct, έτσι, είναι σε αυτό το δικτύο. Και τέλος, όταν θέλω να πάω στο 192.4.10.0, πάλι θα είναι Deliver Direct, έτσι. Δηλαδή, αυτή είναι και οι τρεις πίνακες δρομολόγησης και στους τρεις δρομολόγητές που έχουμε. Και νομίζω ότι από αυτό μπορούμε να καταλάβουμε, έτσι, κι αν έχουμε κάποια παρόμοια άσκηση να λύσουμε στις εξετάσεις, νομίζω ότι μπορούμε να καταλάβουμε τη λογική της δρομολόγησης, έτσι. Δηλαδή, τι θα έχει ένας πίνακας δρομολόγησης. Και κάπως έτσι, τα ορίζουμε και στην πραγματικότητα σε πραγματικούς δρομολογητές, έτσι. Έτσι τα ορίζουμε στους πραγματικούς δρομολογητές. Λοιπόν, οπότε, να συνεχίσουμε. Τώρα, πώς γίνεται η δρομολόγηση, δηλαδή πώς βρίσκει ο κάθε δρομολογητής που θα τα στείλει. Το είπαμε και πριν, δηλαδή, τι κάνει, αν το γράφαμε σε C θα το γράφαμε κάπως έτσι. Δηλαδή, εάν παίρνω το destination address, κάνω ότι bitwise end, βλέπετε αυτό είναι το σύμβολο του bitwise end στη C. Αν το mask I και το D είναι ίσο με destination του I, τότε forward to next hope. Δηλαδή, εάν η μάσκα δικτύου είναι, η μάσκα δικτύου που θα βγάλεις, δηλαδή κάτι τέτοιο, είναι με βάση της διευθείας δικτύου που έχεις εσύ στο πίνακα δρομολόγησης σου, έτσι, τέτοιες, δηλαδή τα συγκρίνω με αυτές που έχω στο πίνακα δρομολόγησης μου και τα στέλνεις σε αυτό, τα στέλνεις με βάση αυτό που λέει ο πίνακα δρομολόγησης. Δηλαδή, όταν φτάνω αυτά τα πακέτα, βλέπω, έχω ένα πακέτο 30.1.0 με αυτό το IP, που θα το στείλω, το συγκρίνω, με βάση τη μάσκα μου είναι αυτή, το παραδίδω απευθείας ας πούμε αυτό, ή αν είναι σε αυτό το δίκτυο, το στέλνω σε αυτό το IP. Δηλαδή, γιατί, κάνοντας λογικό end, bitwise end, μάλλον όχι λογικό end, bitwise end για να είμαστε πιο σαφείς, μεταξύ της διεύθυνσης προορισμού και της μάσκας του δικτύου που έχω, βρίσκω τη διεύθυνση δικτύου πάντα. Άρα, με βάση της αποδικευμένης διεύθυνσης δικτύου και αυτά που ξέρω, ανάλογα παίρνω την απόφαση δρομολόγησης. Έτσι, δηλαδή, παίρνονται οι αποφάσεις δρομολόγησης για κάθε IP, ανεξάρτα από όλα τα υπόλοιπα, σε κάθε κόμβο, σε κάθε δρομολογητή. Και το ίδιο κάνει όχι μόνο ο router αλλά και ο υπολογιστής σας. Δηλαδή, γι' αυτό το λόγο, δεν βάζουμε και στον υπολογιστή subnet mask. Γιατί έτσι παίρνει ο υπολογιστής μας, δεν μπορεί να έχει πολλαπλά interfaces. Υπάρχει, ας πούμε, ένα laptop, έχει και τοπικό δίκτυο, έχει και Ethernet, έχει και Wi-Fi, έτσι. Άρα πώς παίρνει τις αποφάσεις δρομολόγησης στο laptop, πάλι με αυτή τη λογική. Έχει και αυτό πίνακα δρομολόγησης. Δηλαδή, με βάση αυτά που το έχουμε βάλει εμείς, παίρνουν τις αποφάσεις δρομολόγησης. Έτσι. Δηλαδή, για παράδειγμα, έτσι. Αν θεούς μου ότι έχουμε, εντάξει, το destination address αυτό, φτάνεις στο router δύο τότε, η πρώτη καταχώρηση θα... Δηλαδή, φτάνει ένα, πούμε, αυτό το destination address, έτσι, φτάνεις σε αυτό το router, τι θα γίνει τώρα. Η πρώτη καταχώρηση θα αποτύχει, έτσι, δεν είναι αυτό. Η δεύτερη θα αποτύχει, κάτσε ποιο είπαμε ό,τι είναι όμως το IP του, 192, έτσι, θα πάει στην τελευταία, ναι. Θα αποτύχει και αυτή, και τελικά, με βάση την τελευταία καταχώρηση του πίνακα, θα πει, είναι αυτή η διεύθυνση, εδώ έχω ισότητα, άρα, θα το στείλω σε αυτόν εδώ το δρομολογητή, έτσι. Το next hop είναι αυτό, θα διαβάσει την τελευταία σειρά, έτσι. Τώρα, ένα άλλο χαρακτηριστικό του IP είναι αυτό που λέμε το best effort, έτσι, στα αγγλικά, δηλαδή, η βέλτιστη προσπάθεια. Λέμε ότι όταν στέλνουμε IP πακέτα, κάνουμε, είναι μια υπηρεσία βέλτιστης προσπάθειας. Δηλαδή, αυτό τι σημαίνει, γιατί το IP δεν μου δίνει καμία εγγύηση, ότι θα πάρω κάποιο acknowledgement σε πέδο δικτύου για το αν έχει φτάσει το πακέτο μου, έτσι. Δεν παίρνω κάποια εγγύηση για το αν έχω φτωρά των δεδομένων, έχω απώλεια των datagram, δεν φτάσουν όλα με τη σωστή σειρά, δεν παίρνω καμία τέτοια εγγύηση. Δεν παίρνω καμία τέτοια απάντηση. Άρα λοιπόν, γι' αυτό λέμε ότι το επίπεδο του δικτύου, του IP, είναι μη αξιόπιστο. Είναι ένα πρωτόκολλο μη αξιόπιστο. Δεν παρέχει αξιοπιστία. Λέω πως θα γίνει όμως να έχω αξιοπιστία. Η αξιοπιστία είναι δουλειά των ανωτέρων επιπέδων. Δηλαδή το TCP πάνω από το IP είναι αυτό το οποίο θα πάρει τα acknowledgement, θα κάνει τον έλεγχο σφαλμάτων, θα κάνει τον έλεγχο ροής και θα μου κάνει δηλαδή τη μη αξιόπιστη σύνθεση δικτύου, αξιόπιστη. Η αξιόπιστία δηλαδή σε αυτήν την αρχιτεκτονική TCP-IP είναι δουλειά των παραπάνω επιπέδων. Τώρα, η ανύχταση σφαλμάτων στο IP γίνεται μόνο για τα σφάλματα στην επικεφαλήδα. Αν θυμόσαστε τη μορφή της IP επικεφαλήδας, υπάρχει μόνο σφάλμα στην επικεφαλήδα. Άρα η ανύχταση σφαλμάτων γίνεται μόνο στην επικεφαλήδα. Δεν γίνεται δηλαδή αν είχατε σφαλμάτων στο πεδίο των δεδομένων, στο payload του IP. Άρα δεν ξέρω αν τα δεδομένα μου έχουν φτάσει σωστά ή όχι. Εάν σε αυτό το checksum της επικεφαλήδας βρω ότι υπάρχει κάποιο σφάλμα, βρει δηλαδή ο κάθε δρομολογητής κάποιο σφάλμα, τότε απορρίπτεται αμέσως από αυτό το πακέτο. Δεν προωθείτε. Εδώ θα προτιμούσαμε να μην μεταφράζουμε τα πρωτόκολλα. Αυτό είναι το ICMP, Internet Control Message Protocol. Θα προτιμώ να το λέμε έτσι παρά στα ελληνικά. Είναι αυτό το πρωτόκολλο, το οποίο έχει ανοιχνευτεί για να μουλήνει τέτοια προβλήματα στο TCP-IP. Δηλαδή προβλήματα έχουν να κάνουν με το αν έχει φτάσει σωστά το πακέτο μου, με το αν ο υπολογιστής αυτός έχει τη TCP-IP και ανταποκρίνεται σωστά, με το πώς θα μπορέσω να καταγράψω τη διαδρομή από εδώ μέχρι έναν άλλον υπολογιστή και όλα αυτά. Το πρόγραμμα που χρησιμοποιείται και το οποίο χρησιμοποιείται στα Windows, στο Linux, ακόμα είναι λοποιημένο και σε routers και σε άλλες συσκευές που χρησιμοποιούν να επεί. Όπως ξέρω εγώ τηλεφωνικά κέντρα. Είναι το PINC. Είναι το λεγόμενο πρόγραμμα PINC. Δηλαδή το PINC είναι το πρόγραμμα το οποίο μου στέλνει αυτά τα ICMP μηνύματα και ανάλογα παίρνει τις αποκρίσεις. Δηλαδή έχω μια σειρά από διάφορα μηνύματα ICMP τα οποία μπαίνουν σε ένα πεδίο 8-bit. Παραδείγματα είναι κάποια μηνύματα ασφαλμάτων όπως αυτό το source quence στα αγγλικά. Ένα router στέλνει μένει από χώρο μνήμης και απορρίπτει τελικά τα πακέτα. Δηλαδή source quence. Δεν έχω άλλο χώρο μνήμης. Υπέρβαση χρονικού ορίου. Time exceeded νομίζω αυτό σημαίνει. Δηλαδή στην πρώτη περίπτωση εάν το time to live φτάσει στο μηδέν τότε ο router απορρίπτει το μήνυμα. Απορρίπτει το datagram. Δεν το προωθεί. Η δεύτερη περίπτωση είναι αν ο χρόνος επανασταναμολόγησης που έχω λήξει πριν φτάσουν όλα τα κομμάτια. Άρα δεν μπορεί να γίνει επανασταναμολόγηση. Άρα υπάρχει υπέρβαση χρονικού ορίου. Η άλλη περίπτωση είναι destination unreachable. Δηλαδή εάν τελικά το πακέτο αυτό IP που έχω στείλει δεν μπορεί να παραδοθεί στον προορισμό του. Είτε γιατί είναι κλειστός ο υπολογιστής, είτε γιατί αυτός ο υπολογιστής για κάποιον λόγο δεν δέχεται πακέτα. Το redirection είναι η ανακατεύθυνση. Δηλαδή ένας, όχι οικοδεσποντης, ένας host, ένας υπολογιστής στέλνει ένα μήνυμα το οποίο κανονικά έπρεπε να σταλεί σε διαφορετικό δρομολογητή. Δηλαδή είναι λάθος ο δρομολογητής που έχει σταλεί. Του απαντάει ο δρομολογητής ότι έχεις κάνει λάθος, πρέπει να αλλάξεις τη διαδρομή σου, να το στείλεις σε άλλον δρομολογητή. Το parameter problem, αν υπάρχει πρόβλημα στις παραμέτρους που υπάρχουν μέσα σε ένα datagram, αυτά είναι τα μήνυματα λάθους. Τώρα όχι έτηση ήχου, έτηση απάντηση ήχους θα λέγαμε. Είναι τα εργόμενα μήνυματα echo reply, request. Δηλαδή, τι γίνεται, στέλνω εγώ ένα μήνυμα, echo request, που σημαίνει τι, στέλνω ένα μήνυμα ACMP στον απομακρυσμένο υπολογιστή και του ζητάω να μου απαντήσει. Απάντησέ μου εφόσον είσαι ανοιχτός. Και αυτός απαντάει με ένα μήνυμα echo reply, που έχει ακριβώς τα ίδια στοιχεία και έτσι ξέρω ότι αυτός ο υπολογιστής δουλεύει. Υπάρχει άλλο μήνυμα, θα μπορούσε να ζητήσω ποια είναι η μάσκα του δικτύου. Ζητάω, κάνω έτηση, ζητάω τη μάσκα αυτού του δικτύου και μου απαντάει με τη μάσκα 32-bit αυτού του δικτύου. Αυτό τώρα όμως, να το δούμε λίγο στην πράξη αυτό. Και μια που έχουμε ανοιχτό το παράθυρο. Δεν ξέρω το βλέπετε όλοι. Να πιω κέντρο. Το βλέπω αλλά πως θα το κάνουμε αυτό γιατί... Το κάνω έτσι, το βλέπετε. Λοιπόν, ας πούμε για παράδειγμα, Pink. Να δούμε, είναι ανοιχτός ο δρομολογητής του κεντρικού σερβετοποιηθήτα. Βλέπετε ότι μου απαντάει από αυτόν τον υπολογιστή. Time to live έχει αυτή την τιμή. Τι λέει, το time to live είναι 62. Και bytes 32 bytes. Δηλαδή, μου σημαίνει ότι ο υπολογιστής αυτός είναι ανοιχτός και δουλεύει. Το έχετε ξαναδει αυτό? Το έχετε δει όλοι? Και τότε δεν υπάρχει λοχτό κανένα, παιδιά. Συνεχίζουμε. Τώρα, τα μηνύματα αυτά γενικά δεν έχουν προτεραιότητα. Διαβιβάζονται στο IP ανάλογα όταν τα στέλνει το κάθε καταγραμμύμο, το χρησιμοποιούμε το Pink για να στείλουμε τα μηνύματα. Υπάρχει και ένα άλλο πρόγραμμα, το TraceRoute. Αυτό το ξέρουμε όλοι? Δηλαδή, ανοίχνευση διαδρομής. Δηλαδή, θέλω να βρω πείχη στο google.com, πώς φτάνω τελικά. Πόσους δρομολογητές παίρνω για να φτάσω στο google. Θα τρέξω το πρόγραμμα TraceRoute, που πάλι στέλνει μηνύματα ICMP. Αυτό τι κάνει τώρα. Στέλνει ένα μήνυμα με το time to live σε τιμή 1 την πρώτη φορά. Οπότε, του απαντάει ο πρώτος router, το κάνει 0 φυσικά και το απαντάει. Έτσι βρίσκει κατευθείαν το πρώτο router. Το επόμενο μήνυμα από το στήλι θα έχει time to live τιμή 2. Άρα θα φτάσει στον δεύτερο router και ούτω καθεξής. Δηλαδή, θα τον παντήσει αυτός, άρα έτσι ξέρει αυτόματα ποιος είναι ο δεύτερος router. Μετά το επόμενο μήνυμα που θα στείλει θα έχει τιμή time to live 3 για να φτάσει μέχρι τον τρίτο. Και ούτω καθεξής, μέχρι να φτάσει και να βρει τον τελικό προορισμό. Με αυτόν τον τρόπο μπορεί να βρει πόσα hops θα χρειαστούν. Δηλαδή πόση routers περνάμε για να φτάσουμε στο τελικό προορισμό. Δηλαδή, εάν θέλαμε εμείς να το κάνουμε αυτό. Μέγιστο θα είναι 30 hops. Η πρώτη διεύθυνση. Δεν φαίνεται πολύ καλά, η πρώτη διεύθυνση είναι εδώ. Δεν φαίνεται πολύ καθαρά, έτσι. Στέλνει μηνύματα, λέει το χρόνο που κάνει για να απαντήσει τελικά ο καθεδρομολογητής. Και εδώ σου λέει το IP του κάθε router, δηλαδή για να φτάσουμε τελικά στο Google πόσες διαδρομές κάνουμε. Δηλαδή για να φτάσουμε τελικά στο Google, από εδώ, κάνουμε 15 hops. Περνάμε από 15 διαφορετικούς δρομολογητές. Αυτό μας λέει αυτό το trace route. Να πούμε λίγο τα πρώτα, γιατί θα συνεχίσουμε στο επόμενο μάθημα, που μάλλον θα είναι μετά τις ιδιωτές. Για τις εκδόσεις του IP, έτσι, υπήρχαν αρχικά οι εκδόσεις από ένα έως τρία, έτσι, που τελικά αντικαταστάθηκαν πάρα πολύ εύκολα από την έκδοση 4 που είναι η τρέχουσα. Δημιουργήθηκε κάποτε για πολύ σύντομο χρονικό διάστημα ένα πρωτόκολλο έκδοση 5, το οποίο όμως δεν προχώρησε. Και τελικά δημιουργήθηκε το πρωτόκολλο έκδοση 6, το οποίο προορίζεται για αντικατάσταση του 4. Και γιατί προορίζεται για αντικατάσταση του 4, γιατί λύνει πολλά από τα προβλήματα που είχε το 4. Και ένα από τα μεγάλα προβλήματα που είχε το 4 είναι ποιο, ότι ο χώρος διευθύσεων είναι περιορισμένος, ο χώρος διευθύσεων που έχουν πάρει πολλά υπάροχοι, έτσι. Αν σας θυμάστε το προηγούμενο είχαμε δείξει πώς διαμοιράζονται οι IP διευθύνσεις. Και υπάρχει ένας οργανισμός που είναι υπεύθυνος για την Αμερική, άλλος για την Ευρώπη, άλλος για την Ασία και ούτω καθεξής. Οι χώροι αυτοί διευθύσεων που παίρνουν διευθύνσεις κλάσης Α, κλάσης Β και τα λοιπά, τελειώνουν, έτσι. Για κάποιες περιοχές έχουν ήδη τελειώσει, για κάποιες άλλες, ας πούμε ξεχω πως την Αφρική, δεν έχουν τελειώσει ακόμα. Αλλά θα τελειώσουν. Άρα λοιπόν ο σκοπός είναι να γίνει η σταδιακή αντικατάσταση της συμμενής έκδοσης 4 με την έκδοση 6. Θα έχετε προσέξει ότι τα Windows υποστηρίζουν όλα πλέον, από την έκδοση 7 και μετά νομίζω υποστηρίζουν την IP έκδοση 6. Υπήρχε αυτή η προσθήκη και στο XP, νομίζω αλλά δεν ήταν από την αρχή, νομίζω ήταν το προσθέσεις, δεν θυμάμαι πολύ καλά. Γενικά πάντως έχουμε αρχίσει σιγά σιγά να περνάμε σε αυτήν την εποχή. Οπότε πρέπει να δούμε και τα χαρακτηριστά και να μάθουμε καλά τα χαρακτηριστά αυτού του νέου πρωτοκόλου, έκδοσης 6. Είπαμε ότι είχαμε, ο λόγος είναι ότι έχουμε την εξάνιση του χώρου διευθύσεων, δηλαδή με τα δύο επίπεδα διευθυσιοδότησης που προϋποθέτει η έκδοση 4, έχουμε πολύ χώρο διευθύσεων που σπαταλιέται, γι' αυτό ακριβώς κάναμε και τα τρία επίπεδα με το subnet. Πολλές διευθύνσεις ανατήθονται, δηλαδή σας λέω ότι μεγάλα μπλοκ, ας πούμε κλάσεις α, κλάσεις β ανατήθονται, αλλά αυτό σημαίνει ότι εξουσπαπούνται όλες. Μπορεί κάποιος να μην εξουσπαπούνται. Έχει γίνεται μεγαλύτερη εκτίση του πρωτοκόλου, δηλαδή πλέον μιλάμε για το internet of things. Δηλαδή, οι συσκευές, ακόμα και τα ρούχα μας, ξέρω εγώ, το ψυγείο, διάφορες οικιακές συσκευές, ξέρω, τηλεόραση, θα έχουν IP, έχουν IP. Άρα λοιπόν, χρειάζεται ακόμα μεγαλύτερος χώρος διευθύσεων και κατά δεύτερον, χρειάζονται νέες υπηρεσίες. Δηλαδή, οι πολυμεσικές υπηρεσίες, με διάφορα τεχνάσματα υποστήριζουν την έκδοση 4, αλλά δεν υπήρχαν γέννη στην γέννηση αυτού του πρωτοκόλου. Άρα λοιπόν, χρειάζονται όλες αυτές οι αλλαγές. Εντάξει, τα αρευσίες είναι αυτά, δεν έχει σημασία για το IP version 6, δεν έχουν αυτά πολύ σημασία, απλά να πούμε λίγο και να τελειώσουμε εδώ το μάθημα, ποιες είναι οι βελτιώσεις στην έκδοση 6. Καταρχήν ότι, ο χώρος διευθύσεων από 32-bit επεκτείνεται στα 128, άρα δηλαδή, μιλάμε για ένα τεράστιο πλέον χώρο διευθύσεων που είναι πολύ δύσκολο να εξαδληθεί. Υπάρχουν, όπως είδαμε ότι υπήρχαν τα λεγόμενα options στο IP, εδώ υπάρχουν αυτά πολύ βελτιωμένα στην έκδοση 6. Μάλιστα μπορεί να υπάρχουν επιλογές τι να κάνεις στο πακέτο αναδρομολογητή, δηλαδή εντολές τι θα πρέπει να γίνει για το πακέτο αναδρομολογητή. Γίνεται δυναμική εκχώρηση των διευθύσεων, δηλαδή δεν κουραζόμαστε εμείς να κάνουμε configure και τα λοιπά, να βάλουμε subnets και τα λοιπά. Είναι μεγαλύτερη ευελιξία, γιατί έχω πολλαπλά επίπεδα πλέον διευθύσεων. Θα δούμε ότι έχω και τη διευθύνση της Anycast, που σημαίνει ότι μια συσκευή μπορεί να έχει πολλαπλές IP version 6 διευθύνσεις. Μέσα σε αυτές τις διευθύνσεις και να έχει πολλαπλά interfaces. Ορίζω τις Anycast διευθύσεις ως τις διευθύσεις εκείνες, οι οποίες στείλουν αυτό το πακέτο σε όλες τις διεπαφές αφού του υπολογιστή, ή σε αυτήν την ομάδα υπολογιστών. Και φυσικά έχει πολύ καλύτερη υποστήριξη στην κατανομή των πόρων με τις λεγόμενες αιτικέτες της flow label, δηλαδή αιτικέτες ρωής πακέτων. Αυτά τα εισαγωγικά για την έκδοση 6, θα πούμε πολλά περισσότερα στο επόμενο μάθημα.