Επισκόπηση
Όπως είδαμε, η διευθυνσιοδότηση και η δρομολόγηση είναι οι δύο κύριες λειτουργίες του επιπέδου διαδικτύου. Η διευθυνσιοδότηση διενεργείται από το πρωτόκολλο IP, το οποίο ορίζει ότι οι δικτυακές συσκευές που συμμετέχουν σε ένα δίκτυο αναγνωρίζονται μοναδικά από μια IP διεύθυνση. Για τον ίδιο λόγο που χρησιμοποιούμε διευθύνσεις για τον εντοπισμό και την αποστολή αλληλογραφίας σε σπίτια και επιχειρήσεις θα πρέπει και κάθε συσκευή συνδεδεμένη σε ένα δίκτυο να έχει τη δική της IP . Μόνο έτσι θα μπορέσει η πληροφορία να φτάσει στον προορισμό της και να ολοκληρωθεί η διαδικασία της δρομολόγησης.
Διευθύνσεις IP
Η διευθυνσιοδότηση είναι ένα στοιχείο ζωτικής σημασίας για την έννοια του Internet. Αν θέλουμε να έχουμε την αίσθηση του Internet ως κάτι το ενιαίο θα πρέπει οι υπολογιστές να χρησιμοποιούν μια ομοιόμορφη μέθοδο διευθυνσιοδότησης αλλά και κάθε διεύθυνση θα πρέπει να είναι μοναδική. Σε αυτό το ζήτημα δεν εξυπηρετούν οι φυσικές διευθύνσεις των διεπαφών καθώς το διαδίκτυο περιλαμβάνει πολλά διαφορετικά δίκτυα και το κάθε ένα από αυτά μπορεί να στηρίζεται σε τεχνολογία που με τη σειρά της να ορίζει τις δικές της MAC διευθύνσεις [5]. Έτσι, το πρωτόκολλο IP ορίζει ότι οι υπολογιστές που θα συμμετέχουν σε ένα δίκτυο θα αναγνωρίζονται μοναδικά από έναν αριθμό μήκους 32-bit, την διεύθυνση IP.
Υπάρχουν δύο εκδόσεις διευθύνσεων IP:
- Η IP version 4 (IPv4) (διευθύνσεις των 32 bit) και
- Η IP version 6 (IPv6) (διευθύνσεις των 128 bit)
Η IPv4 είναι η κυρίως χρησιμοποιούμενη έκδοση σήμερα και αυτή που θα χρησιμοποιηθεί σε όλα τα παραδείγματα αυτής της σελίδας. Από την άλλη, η IPv6 είναι αυτή που νομοτελειακά θα κυριαρχήσει στο μέλλον. Οι διευθύνσεις IP είναι από τη φύση τους δυαδικές. Ωστόσο προκειμένου να είναι εύκολα διαχειρίσιμες μετατρέπονται στο δεκαδικό σύστημα αρίθμησης. Πρακτικά, χωρίζουμε τα 32 bit σε οκτάδες (bytes) και στη συνέχεια κάθε byte μετατρέπεται στον αντίστοιχο δεκαδικό αριθμό.

Οι IP διευθύνσεις διαιρούνται σε δύο μέρη: Στο πρόθεμα (prefix) και το επίθεμα (suffix). Το πρώτο προσδιορίζει το δίκτυο στο οποίο ανήκει ο υπολογιστής (Network ID), ενώ το δεύτερο προσδιορίζει ένα συγκεκριμένο υπολογιστή εντός αυτού του δικτύου (Host ID). Για παράδειγμα, στη διεύθυνση 192.168.1.2, οι αριθμοί 192.168.1 είναι το πρόθεμα και άρα είναι η ταυτότητα του δικτύου, ενώ ο αριθμός 2 χαρακτηρίζει τον συγκεκριμένο υπολογιστή και τον κάνει έτσι να ξεχωρίζει από τους υπόλοιπους του ίδιου δικτύου.
Μάσκα Δικτύου
Η μάσκα δικτύου είναι ένας αριθμός 32 bit που βοηθά στην αναγνώριση του προθέματος και του επιθέματος μιας διεύθυνσης μέσα σε ένα συγκεκριμένο δίκτυο. Για την αντιστοιχία με το πρόθεμα χρησιμοποιεί άσους και για την αντιστοιχία με το επίθεμα χρησιμοποιεί μηδενικά. Έτσι μπορούμε εύκολα να βρούμε το Network ID και το Host ID μιας διεύθυνσης IP, π.χ.:

Στο παράδειγμα της εικόνας οι πρώτοι 24 άσοι της μάσκας μας δίνουν το Network ID, συνεπώς η διεύθυνση του δικτύου είναι η 192.168.124.0.
Κλάσεις Δικτύων
Στο προηγούμενο παράδειγμα δόθηκαν 24 bit στο πρόθεμα και περίσσεψαν 8 bit στο επίθεμα. Συνεπώς, το συγκεκριμένο δίκτυο έχει στη διάθεση του 28=256 διαθέσιμες διευθύνσεις IP. Αν θέλουμε ένα δίκτυο να έχει στη διάθεση του περισσότερες διευθύνσεις για να τις μοιράσει σε υπολογιστές, θα πρέπει το επίθεμα να μεγαλώσει, να γίνει 16 bit, το οποίο αντιστοιχεί σε 65536 διευθύνσεις κ.ο.κ. Η μέθοδος αυτή οδήγησε στις κλάσεις ώστε να μπορούν να υπάρχουν δίκτυα διαφόρων μεγεθών, αναλόγως των αναγκών που εξυπηρετούν [2].

Οι κλάσεις D και E όπως φαίνεται από την παραπάνω εικόνα έχουν ειδικό σκοπό και δεν θα μας απασχολήσουν. Οι κλάσεις A, B και C είναι αυτές που χρησιμοποιούνται από τους τελικούς χρήστες και αυτές είναι που θα εξετάσουμε αναλυτικότερα:

Παρατηρούμε πως το πρώτο bit της κλάσης Α είναι 0 και το πρώτο byte το 0000 0000, δηλαδή το δεκαδικό 0. Επίσης ο τελευταίος αριθμός είναι το 0111 1111, δηλαδή το δεκαδικό 127. Τα δύο αυτά νούμερα όμως δεν χρησιμοποιούνται ως διευθύνσεις δικτύων καθώς είναι δεσμευμένα για ειδικούς σκοπούς. Πρακτικά λοιπόν, δίκτυα τάξης Α είναι όσα έχουν στο πρώτο byte αριθμούς από 1 έως και 126.

Αν θέλουμε να είμαστε απόλυτα σωστοί πρέπει στο πλήθος των hosts της παραπάνω εικόνας να αφαιρέσουμε από κάθε περίπτωση τον αριθμό 2. Κι αυτό γιατί μια IP διεύθυνση πάντα δεσμεύεται για να χαρακτηρίζει το ίδιο το δίκτυο και ακόμη μια για να χρησιμοποιηθεί σαν διεύθυνση εκπομπής (broadcast). Αν δηλαδή κάποιο πακέτο έχει σαν διεύθυνση προορισμού την διεύθυνση broadcast τότε λαμβάνεται από όλους τους υπολογιστές του δικτύου. Η broadcast διεύθυνση διατηρεί το Network ID και στο κομμάτι του Host ID έχει μόνο άσους. Για παράδειγμα, αν το δίκτυο είναι το 192.168.124.0 και η μάσκα δικτύου είναι η 255.255.255.0, τότε η broadcast διεύθυνση είναι η 192.168.124.255.

Ιδιωτικές IP Διευθύνσεις
Υπάρχουν κάποιες διευθύνσεις που τις ονομάζουμε ιδιωτικές και οποίες χρησιμοποιούνται για την υλοποίηση ιδιωτικών δικτύων. Οι υπολογιστές σε αυτά τα δίκτυα δεν έχουν άμεση πρόσβαση στο διαδίκτυο, οι διευθύνσεις τους δηλαδή δεν δρομολογούνται σε αυτό.

Υποδικτύωση
Η υποδικτύωση παρέχει τη μέθοδο διαίρεσης του χώρου των IP διευθύνσεων σε ομάδες που είναι μικρότερες απ’ ότι ένα δίκτυο σαν αυτά που γνωρίσαμε μέχρι στιγμής [6]. Οι λόγοι για να προχωρήσει ένας μηχανικός δικτύων σε κάτι τέτοιο μπορεί να είναι είτε διαχειριστικοί, είτε οικονομικοί. Πρακτικά, για να δημιουργήσουμε x υποδίκτυα με y κόμβους το καθένα, αυτό που πρέπει να κάνουμε είναι να «δανειστούμε» bit από το κομμάτι του επιθέματος της IP διεύθυνσης και να τα δώσουμε στο κομμάτι του προθέματος. Έχοντας λοιπόν τη διεύθυνση και την προκαθορισμένη μάσκα δικτύου, υπολογίζουμε τη νέα μάσκα υποδικτύου και προχωρούμε στον διαχωρισμό.
Για παράδειγμα, έχουμε τη διεύθυνση δικτύου 192.168.10.0 με μάσκα δικτύου 255.255.255.0. Έστω ότι θέλουμε να χωρίσουμε το παραπάνω δίκτυο σε υποδίκτυα τα οποία θα φιλοξενούν τουλάχιστον 52 δικτυακές συσκευές το καθένα. Το αρχικό δίκτυο είναι κλάσης C και όπως έχουμε ήδη αναφέρει μπορεί να μοιράσει διευθύνσεις IP σε 254 υπολογιστές (28 – 2 = 254). Τώρα προέκυψε η ανάγκη για τη δημιουργία υποδικτύων με λιγότερους υπολογιστές έκαστο. Το κλειδί είναι στον αριθμό των bit που πρέπει να πάρουμε από τη μάσκα δικτύου προκειμένου να δημιουργηθεί η νέα μάσκα, η μάσκα υποδικτύου. Τα bit που θα περισσέψουν πρέπει να είναι αρκετά ώστε να δώσουν διευθύνσεις στους κόμβους σύμφωνα με τις απαιτήσεις του προβλήματος. Αν λοιπόν κρατήσουμε 6 bit για το Host ID τότε οι συνδυασμοί μας θα είναι 26 – 2 = 62, ένα νούμερο που μας καλύπτει. Τα 2 bit που πήραμε για την δημιουργία των υποδικτύων μας οδηγούν στο συμπέρασμα πως ο αριθμός των υποδικτύων θα είναι 22 = 4. Άλλωστε, ο συνολικός αριθμός των υποδικτύων είναι πάντα δύναμη του 2. Η νέα μάσκα λοιπόν είναι 11111111 11111111 11111111 11000000. Στο δεκαδικό σύστημα αρίθμησης είναι 255.255.255.192.

Τα τέσσερα υποδίκτυα που δημιουργούνται διαφέρουν ως προς το τέταρτο byte και είναι τα εξής
- 11000000 10101000 00001010 00000000
- 11000000 10101000 00001010 01000000
- 11000000 10101000 00001010 10000000
- 11000000 10101000 00001010 11000000

Το αρχικό δίκτυο κλάσης C των 254 διευθύνσεων μοιράστηκε τελικά σε τέσσερα υποδίκτυα των 62 x 4 = 248 διευθύνσεων IP. Παρατηρούμε μια συνολική μείωση 6 διευθύνσεων, 6 δηλαδή λιγότερων υπολογιστών. Η υποδικτύωση βοηθά στην καλύτερη διαχείριση των διαθέσιμων συνολικά διευθύνσεων με τίμημα όμως την απώλεια κάποιων εξ ‘αυτών.
CIDR
Το Classless Inter-Domain Routing (CIDR) έχει σαν βασική ιδέα να αντιστοιχίζεται σε μία IP διεύθυνση ο αριθμός των bit που αποτελούν το κομμάτι του δικτύου (NetID). Για παράδειγμα, η διεύθυνση 192.168.4.12 με μάσκα δικτύου 255.255.255.0 μπορεί να γραφτεί και ως 192.168.4.12/24 ενώ η 204.17.5.32/27 δηλώνει το υποδίκτυο 204.17.5.32 με μάσκα υποδικτύου την 255.255.255.224. Αυτός ο τρόπος γραφής θα χρησιμοποιηθεί και στις τοπολογίες που θα δημιουργήσουμε με το Packet Tracer.