Δίκτυα Υπολογιστών Κεφάλαιο 29 – Πρωτόκολλο IP: IPv4 Επικεφαλίδα
Δημοσιεύτηκε από τον/την codebrakes στις
Δίκτυα Υπολογιστών
Κεφάλαιο 29 - Πρωτόκολλο IP: IPv4 Επικεφαλίδα
Επίπεδο δικτύου (Network layer)
Το επίπεδο δικτύου αναλαμβάνει πέντε κύριες λειτουργίες:
- Λογική διευθυνσιοδότηση (Logical Addressing): Κάθε συσκευή η οποία επικοινωνεί στο διαδίκτυο έχει κι από μια λογική διεύθυνση η οποία είναι μοναδική. Για παράδειγμα στο διαδίκτυο το κυριότερο πρωτόκολλο είναι το IP (Internet Protocol) και κάθε μηχάνημα έχει κι από μια μοναδική IP διεύθυνση.
- Δρομολόγηση (Routing): Μεταφέρει τα δεδομένα μεταξύ διασυνδεδεμένων δικτύων, ίσως η κυριότερη λειτουργία του επιπέδου δικτύου. Οι συσκευές επιπέδου δικτύου που λαμβάνουν τα εισερχόμενα πακέτα από διάφορες πηγές αναλαμβάνουν να εντοπίσουν τον τελικό τους προορισμό όπως και την εύρεση της βέλτιστης (χρονικά) διαδρομής.
- Ενθυλάκωση αυτοδύναμου πακέτου (Datagram Encapsulation): Το επίπεδο δικτύου ενθυλακώνει τα μηνύματα που λαμβάνει απο τα υψηλότερα επίπεδα και τα τοποθετεί σε αυτοδύναμα πακέτα (datagrams) ή αλλιώς πακέτα μαζί με την IP επικεφαλίδα.
- Κατακερματισμός και επανασυναρμολόγηση (Fragmentation and Reassembly): Το επίπεδο δικτύου στέλνει τα πακέτα στο επίπεδο πρόσβασης δικτύου για να μεταδοθούν. Μερικές τεχνολογίες του επιπέδου πρόσβασης δικτύου έχουν όρια μεγέθους για κάθε μήνυμα που στέλνεται. Αν το πακέτο είναι αρκετά μεγάλο τότε το επίπεδο δικτύου πρέπει να το τεμαχίσει σε μικρότερα πακέτα και να τα στείλει προς το χαμηλότερο επίπεδο. Έπειτα όταν τα πακέτα αυτά φτάσουν στον παραλήπτη στο επίπεδο δικτύου θα γίνει η επανασυναρμολόγηση αυτών των πακέτων.
- Έλεγχος και διαχείριση σφαλμάτων (Error Handling and Diagnostics): Στο επίπεδο δικτύου υπάρχουν ειδικά πρωτόκολλα που επιτρέπουν σε συσκευές που είναι λογικά συνδεδεμένες (δηλαδή έχουν μια IP διεύθυνση) ή που δρομολογούν την κίνηση των δεδομένων, να ανταλλάσσουν πληροφορίες σχετικά με τους hosts του δικτύου.
IPv.4 Επικεφαλίδα
- Έκδοση (Version): Πεδίο μήκους 4 bit στο οποίο υποδεικνύεται η IP έκδοση που χρησιμοποιείται. Η τωρινή έκδοση που χρησιμοποιείται είναι η version 4 και συναντάται συχνά επίσης κι ως IPv4.
- Μήκος επικεφαλίδας (Header length): Πεδίο μήκους 4 bit το οποίο περιέχει το μήκος της IP επικεφαλίδας. Το ελάχιστο μήκος της IP επικεφαλίδας είναι 20 bytes και το μέγιστο μήκος είναι 24 bytes.
- Τύπος υπηρεσιών (TOS/DSCP): Πεδίο το οποίο έχει σχεδιαστεί για την μεταφορά δεδομένων έτσι ώστε να παρέχονται υπηρεσίες ποιότητας υπηρεσιών σε IP πακέτα (όπως παράδοση πακέτων στον τελικό προορισμό με βάση την προτεραιότητα που αυτά έχουν).
- Συνολικό μήκος πακέτου (Total Length): Περιγράφει το μήκος ενός IP πακέτου συμπεριλαμβανομένου της επικεφαλίδας και των δεδομένων που αυτό φέρει σε bytes. Το μήκος του πεδίου είναι 2 bytes οπότε το μέγιστο μήκος ενός IP πακέτου 65,535 bytes.
- Αναγνωριστικό (Identification): Αυτό το πεδίο χρησιμοποιείται από τον παραλήπτη προκειμένου να ανασυνθέσει την αρχική πληροφορία καθότι τα IP πακέτα δεν στέλνονται με την σωστή σειρά.
- Σημαίες (Flags): Πεδίο 3 bit το οποίο χρησιμοποιείται για έλεγχο ή την αναγνώριση των διαφόρων τμημάτων (fragments). Παρακάτω ακολουθεί ενας πίνακας με τις τιμές που παίρνει αυτό το πεδίο (ιεραρχημένα απο το λιγότερο σημαντικό – least significant bit, έως και τα πιό σημαντικά – most significant bit).
Όνομα υποπεδίου |
Μέγεθος (σε bits) |
Περιγραφή |
Δεσμευμένο (reserved) |
1 Bit |
Δεν χρησιμοποιείται |
DF (Don't Fragment) |
1 Bit |
Όταν αυτό το flag πάρει την τιμή 1 τότε το πακέτο δεν πρέπει να τεμαχιστεί. Καθότι η διεργασία κατακερματισμού είναι σχεδόν απαρατήρητη στα υψηλότερα επίπεδα, τα περισσότερα πρωτόκολλα δεν χρησιμοποιούν αυτό το flag. Η χρήση του γίνεται για έλεγχο μιας σύνδεσης για συγκεκριμένα στο πόσο πακέτα μεγάλου μήκους μπορούν να περάσουν από μια ζεύξη (Maximum Transmission Unit) |
MF (More Fragment) |
1 Bit |
Όταν αυτό το flag πάρει την τιμή 0, υποδεικνύει ότι το τελευταίο κομμάτι ενός μηνύματος. Όταν αυτό τεθεί σε 1 υποδεικνύει ότι το πακέτο πρέπει να τεμαχιστεί σε μικρότερα πακέτα καθότι είναι αρκετά μεγάλο για να μεταδοθεί στο δίκτυο. |
Τιμές που παίρνει το πεδίο Flags
- Σχετική θέση τμήματος (Fragment Offset): Όταν συμβεί κατακερματισμός ενός πακέτου (λόγω του MF flag) τότε αυτό διασπάτε σε μικρότερα κομμάτια τα οποία ονομάζονται τμήματα (fragments). Το πεδίο αυτό υποδεικνύει την θέση του τμήματος (fragment) στο συνολικό πακέτο που τεμαχίστηκε.
- Χρόνος ζωής (Time-To-Live – TTL): Είναι πιθανό σενάριο ένα IP πακέτο να κινείται άσκοπα στο δίκτυο. Αν υπάρξει κάποιο πρόβλημα κατά την δρομολόγηση του πακέτου ή υπάρξει βρόγχος ατέρμονης δρομολόγησης (routing loop), είναι προφανές ότι δεν επιθυμούμε αυτό να συνεχίζεται να κινείται άσκοπα στο δίκτυο. Φαινόμενα βρόγχου ατέρμονης δρομολόγησης παρουσιάζονται όταν ένα πακέτο προωθείται συνεχώς από δρομολογητές που έχει ήδη περάσει. Το πεδίο χρόνου ζωής (TTL Field) έχει αρχικά τεθεί σε έναν X αριθμό ο οποίος μειώνεται κάθε φορά που το πακέτο περνάει από έναν δρομολογητή. Όταν η τιμή αυτού του πεδίου φτάσει την τιμή 0 τότε απορρίπτεται από το δίκτυο.
- Τύπος Πρωτοκόλλου (Protocol): Εντοπίζει το πρωτόκολλο υψηλότερου επιπέδου (γενικά είτε ένα πρωτόκολλο επιπέδου μεταφοράς είτε ένα ενθυλακωμένο πρωτόκολλο επιπέδου δικτύου). Αρχικά οι τιμές αυτού του πεδίου οριζόταν από τον IETF, τώρα πλέον διαχειρίζεται από τον οργανισμό IANA και είναι οι εξής:
- Σχετική θέση τμήματος (Fragment Offset): Όταν συμβεί κατακερματισμός ενός πακέτου (λόγω του MF flag) τότε αυτό διασπάτε σε μικρότερα κομμάτια τα οποία ονομάζονται τμήματα (fragments). Το πεδίο αυτό υποδεικνύει την θέση του τμήματος (fragment) στο συνολικό πακέτο που τεμαχίστηκε.
Τιμή | Πρωτόκολλο |
0 | Δεσμευμένο |
1 | ICMP |
2 | IGMP |
3 | G GP |
4 | IP-in-IP Encapsulation |
6 | TCP |
8 | EGP |
17 | UDP |
50 |
Encapsulating Security payload (ESP) extension header |
51 | Authentication Header (AH) Extension header |
Πιθανές τιμές που παίρνει το πεδίο τύπος πρωτοκόλλου
- Άθροισμα ελέγχου επικεφαλίδας (Header Checksum): Το άθροισμα ελέγχου (Checksum) υπολογίζεται πάνω στην επικεφαλίδα για να παρέχει βασική προστασία ενάντια σε σφάλματα που μπορεί να συμβούν στο πακέτο κατά την μετάδοση. Δεν χρησιμοποιεί το CRC κώδικα όπως γίνεται σε πρωτόκολλα ή τεχνολογίες πρόσβασης δικτύου (π.χ. Ethernet), είναι απλά ένα άθροισμα ελέγχου 16 bit.
- IP διεύθυνση πηγής (Source IP Address): Αποτελεί την IP διεύθυνση πηγής του δημιουργού του αυτοδύναμου πακέτου η οποία έχει μήκος 32-bits. Να αναφέρουμε επίσης ότι παρόλο που οι διάφοροι ενδιάμεσοι δρομολογητές (routers) χειρίζονται το αυτοδύναμο πακέτο, δεν τοποθετούν σε αυτό την δικιά τους IP διεύθυνση προορισμού. Σε αυτό το πεδίο τοποθετείται μόνο η IP διεύθυνση της συσκευής του δημιουργού του πακέτου αυτού. Δηλαδή με απλά λόγια στέλνει ένας κόμβος Α ένα πακέτο προς έναν άλλο κόμβο ας πούμε τον κόμβο Β, παρόλο που αυτό θα περάσει από τους ενδιάμεσους δρομολογητές του δικτύου για να φτάσει στον τελικό του προορισμό, η IP διεύθυνση πηγής στο πακέτο θα είναι η IP διεύθυνση του κόμβου Α. Δηλαδή η IP διεύθυνση δεν μεταβάλλεται στο πακέτο και παραμένει πάντα η ίδια.
- IP διεύθυνση προορισμού (Destination IP Address): Αποτελεί την IP διεύθυνση προορισμού στο οποίο πρόκειται να παραδοθεί ένα αυτοδύναμο πακέτο, η οποία έχει μήκος 32-bits. Ας πάρουμε ένα καθημερινό παράδειγμα, όταν στέλνουμε ένα δέμα πρέπει να γράψουμε απάνω διεύθυνση, οδό, αριθμό οδού, πόλη ακόμη και την χώρα αν πρόκειται να σταλθεί στο εξωτερικό. Η IP διεύθυνση προορισμού είναι ακριβώς το ίδιο σε ένα αυτοδύναμο πακέτο, αφορά τον προορισμό στον οποίο αυτό πρόκειται να μεταβεί. Όπως και στην IP διεύθυνση πηγής έτσι και η IP διεύθυνση προορισμού δεν μεταβάλλεται και παραμένει σταθερή στο πακέτο καθόλη την διάρκεια της αποστολής αυτού.
- Επιλογές (Options): Επιτρέπει στο IP να υποστηρίζει διάφορες επιλογές. Η γενική εικόνα του υποπεδίου επιλογών αποτυπώνεται παρακάτω:
Παρακάτω αποτυπώνονται οι τιμές που παίρνει το πεδίο τύπος επιλογών:
Όνομα Επιλογής | End Of Options List |
Κλάση επιλογής |
0 |
Αριθμός επιλογής |
0 |
Μήκος (σε bytes) |
1 |
Περιγραφή | |
Επιλογή η οποία περιέχει μόνο ένα μηδενικό byte, που χρησιμοποιείται για να υποδείξει το τέλος μιας λίστας επιλογών. |
|
Όνομα Επιλογής | No Operation |
Κλάση επιλογής |
0 |
Αριθμός επιλογής |
1 |
Μήκος (σε bytes) |
1 |
Περιγραφή | |
Μια ψευδό-επιλογή η οποία χρησιμοποιείται ως εσωτερικό συμπλήρωμα (internal padding) για να μετατρέψει ορισμένες επιλογές σε πολλαπλάσιο των 32-bit όταν αυτό είναι απαραίτητο. |
|
Όνομα Επιλογής | Security |
Κλάση επιλογής |
0 |
Αριθμός επιλογής |
2 |
Μήκος (σε bytes) |
11 |
Περιγραφή | |
Επιλογή η οποία παρέχεται από στρατιωτικούς οργανισμούς για να υποδείξει τον βαθμό ασφαλείας που πρέπει να υπάρξει στα IP αυτοδύναμα πακέτα. |
|
Όνομα Επιλογής | Loose Source Route |
Κλάση επιλογής |
0 |
Αριθμός επιλογής |
3 |
Μήκος (σε bytes) |
Μεταβαλλόμενο (Variable) |
Περιγραφή | |
Είναι μια επιλογή η οποία μπορεί να χρησιμοποιηθεί για την επίλυση διευθύνσεων (address translation) |
|
Όνομα Επιλογής | Record Route |
Κλάση επιλογής |
0 |
Αριθμός επιλογής |
7 |
Μήκος (σε bytes) |
Μεταβαλλόμενο (Variable) |
Περιγραφή | |
Αυτή η επιλογή επιτρέπει την καταγραφή του μονοπατιού από το οποίο περνάει ένα αυτοδύναμο πακέτο, η οποία αποθηκεύεται στην IP επικεφαλίδα που αυτό φέρει. Αν μια συσκευή πηγής στείλει ένα αυτοδύναμο πακέτο με αυτήν την επιλογή κάθε δρομολογητής που είναι σε θέση να το διαχειριστεί, προσθέτει και την δική του IP διεύθυνση δημιουργώντας έτσι μια λίστα με τις διάφορες IP διευθύνσεις των δρομολογητών από τους οποίους πέρασε το πακέτο.Ο παραλήπτης μπορεί να εξάγει από την επικεφαλίδα του πακέτου την λίστα αυτή και να εξετάσει την διαδρομή την οποία ακολούθησε το πακέτο. Είναι σημαντικό να αναφέρουμε ότι το μήκος αυτής της επιλογής ορίζεται από την συσκευή πηγής. Συνεπώς το μήκος της λίστας δεν μεταβάλλεται, ακόμη κι αν αυτή γεμίσει. Αν η λίστα γεμίσει πριν το πακέτο αυτό φτάσει στον προορισμό του, τότε καταγράφεται μόνο ένα μέρος της διαδρομής (και συγκεκριμένα αυτό που μπόρεσε να χωρέσει στην λίστα). |
|
Όνομα Επιλογής | Strict Source Route |
Κλάση επιλογής |
0 |
Αριθμός επιλογής |
9 |
Μήκος (σε bytes) |
Μεταβαλλόμενο (Variable) |
Περιγραφή | |
Είναι μια επιλογή που χρησιμοποιείται για να δρομολογηθούν IP πακέτα σύμφωνα με τα δεδομένα που παρέχονται από την πηγή που τα δημιουργεί. |
|
Όνομα Επιλογής | Timestamp |
Κλάση επιλογής |
2 |
Αριθμός επιλογής |
4 |
Μήκος (σε bytes) |
Μεταβαλλόμενο (Variable) |
Περιγραφή | |
Αυτή η επιλογή είναι παρόμοια με την Record Route. Παρόλα αυτά, αντί κάθε συσκευή η οποία διαχειρίζεται το πακέτο δεν εισάγει την IP διεύθυνση της αλλά μια χρονοσφραγίδα (timestamp), έτσι ώστε ο παραλήπτης να είναι σε θέση να εξετάσει πόσο χρόνο χρειάστηκε το πακέτο για να δρομολογηθεί απ' την πηγή στον προορισμό. Όπως και στην επιλογή Record Route, παρομοίως αν η λίστα με τις χρονοσφραγίδες γεμίσει πριν το πακέτο φτάσει στον τελικό του προορισμό, καταγράφεται μόνο ένα μέρος αυτού. |
|
Όνομα Επιλογής | Traceroute |
Κλάση επιλογής |
2 |
Αριθμός επιλογής |
18 |
Μήκος (σε bytes) |
12 |
Περιγραφή | |
Χρησιμοποιείται κατά την εκτέλεση της εντολής traceroute μαζί με το ICMP |
Τιμές που παίρνει το πεδίο τύπος επιλογών
- Μήκος επιλογών: Υποδεικνύει το μέγεθος μιας ολόκληρης επιλογής, συμπεριλαμβανομένων κι όλων των τριών υποπεδίων που αναφέραμε στην προηγούμενη διαφάνεια, σε bytes.
- Δεδομένα επιλογών: Περιέχει τα δεδομένα που πρόκειται να σταλθούν ως κομμάτι του μέρους των επιλογών
- Συμπλήρωμα (Padding): Αν μια ή περισσότερες επιλογές εμπεριέχονται και ο αριθμός των bits που χρησιμοποιείται γι’ αυτές δεν είναι πολλαπλάσιο του 32, τότε προστίθενται ως συμπλήρωμα μηδενικά Bits έτσι ώστε ο αριθμός να γίνει πολλαπλάσιο του 32.
Τελευταία ενημέρωση: 29/04/2018