ΤοΠρωτόκολλο Διαδικτύου (IP) (αγγλ., Internet Protocol), αποτελεί την κυριότερη σύμβαση επικοινωνίας γιατη μετάδοση πακέτων δεδομένων σε ένα διαδίκτυο1, και είναι τμήμα της Συλλογής Πρωτοκόλλων Διαδικτύου. Είναι υπεύθυνο γιατηδρομολόγησητων πακέτων δεδομένων ανάμεσα στα διάφορα δίκτυα, ανεξάρτητα από την υποδομή τους, και αποτελεί το κύριο πρωτόκολλο πάνω στο οποίο είναι βασισμένο τοΔιαδίκτυο.
Το πρωτόκολλο ανήκει στοΕπίπεδο Δικτύου, στοΜοντέλο Διαστρωμάτωσης TCP/IP. Καθορίζει τη μορφή των πακέτων που στέλνονται μέσω ενός διαδικτύου, καθώς και τους μηχανισμούς που χρησιμοποιούνται γιατην προώθηση των πακέτων από έναν υπολογιστή προς έναν τελικό προορισμό μέσω ενός ή περισσότερων δρομολογητών. Γι' αυτούς τους σκοπούς, το πρωτόκολλο, χρησιμοποιεί συγκεκριμένες μεθόδους διευθυνσιοδότησης και δομές γιατηνενθυλάκωσητων πακέτων δεδομένων.
Το πρωτόκολλο πρωτοπαρουσιάστηκε από τους ΒιντΣερφκαι Μπομπ Καντο 1974. Συνδέεται στενά μετοΠρωτόκολλο Ελέγχου Μετάδοσης (TCP), με αποτέλεσμα ολόκληρη η συλλογή των πρωτοκόλλων του Διαδικτύου να αναφέρεται απλά ως TCP/IP.
Η πρώτη μεγάλης κλίμακας έκδοση του πρωτόκολλο ήταν η έκδοση 4 (IPv4) η οποία επικρατεί μέχρι και σήμερα σε όλο το Διαδίκτυο. Ωστόσο, λόγω του ότι δεν επαρκούν πλέον οι διαθέσιμες διευθύνσεις, τα τελευταία χρόνια, έχει αναπτυχθεί η διάδοχη έκδοση του πρωτοκόλλου, η έκδοση 6 (IPv6), η οποία είναι εν ενεργεία και χρησιμοποιείται ολοένα και περισσότερο σε όλο τον κόσμο. Οι τελευταίες διευθύνσεις IPv4 παραδόθηκαν σε ειδική τελετή, στις 3 Φεβρουαρίου του 2011, στο Μαϊάμι.[1]
Το πρωτόκολλο είναι υπεύθυνο γιατη διευθυνσιοδότηση των κόμβων καιτην δρομολόγηση των πακέτων από έναν υπολογιστή προς έναν τελικό προορισμό, κατά μήκος ενός ή περισσότερων δικτύων. Γιατο σκοπό αυτό, καθορίζει ένα σύστημα διευθυνσιοδότησης, το οποίο έχει δύο λειτουργίες. Κάθε πακέτο, αποτελείται από μια κεφαλίδα καιστη συνέχεια ακολουθούν τα δεδομένα. Στη κεφαλίδα εμπεριέχονται πληροφορίες γιατα δεδομένα του πακέτου καιοι διευθύνσεις αφετηρίας και προορισμού. Η διαδικασία προσθήκης της κεφαλίδας σε ένα πακέτο δεδομένων ονομάζεται ενθυλάκωση.
Το πρωτόκολλο είναι μια υπηρεσία χωρίς σύνδεση, είναι ανεξάρτητο από την τεχνολογία της υλικής υποδομής του δικτύου καιδεν χρειάζεται νατην γνωρίζει πριντην μετάδοση.
Εκτός από τον ορισμό της μορφής των αυτοδύναμων πακέτων, το πρωτόκολλο ορίζει τη σημασιολογία της επικοινωνίας και χρησιμοποιεί τον όρο βέλτιστη προσπάθεια, γιανα περιγράψει την υπηρεσία που παρέχει. Ουσιαστικά το πρότυπο αυτό ορίζει, ότι παρ’ όλο πουτο πρωτόκολλο κάνει τη βέλτιστη δυνατή προσπάθεια γιανα αποδώσει ένα πακέτο στο προορισμό του, η φυσική υποδομή του εκάστοτε δικτύου που διασχίζει μπορεί να συμπεριφερθεί λανθασμένα. Έτσι, το πρωτόκολλο, δεν εγγυάται ότι θα μπορέσει να αντιμετωπίσει τα παρακάτω προβλήματα:
Αλλοίωση δεδομένων
Απώλεια αυτοδύναμου πακέτου
Επανάληψη αυτοδύναμου πακέτου
Επίδοση με καθυστέρηση ή εκτός σειράς.
Γιατην αντιμετώπιση του κάθε ενός από αυτά τα σφάλματα, χρειάζονται πρόσθετα, ανώτερα επίπεδα λογισμικού πρωτοκόλλων.
Η μόνη διαβεβαίωση που μπορεί να δώσει το πρωτόκολλο στην έκδοση 4 (IPv4), είναι τοαντα δυαδικά ψηφία της κεφαλίδας έχουν υποστεί αλλοίωση ή όχι κατά τη διάρκεια της μεταφοράς. Αυτή η πληροφορία εμπεριέχεται σε ένα πεδίο της κεφαλίδας του πακέτου, που ονομάζεται Άθροισμα Ελέγχου Κεφαλίδας (Αγγλ. Header Checksum). Κάνοντας χρήση του αθροίσματος ελέγχου, μπορεί να διαπιστωθεί εάν η κεφαλίδα έχει μεταφερθεί σωστά ή όχι και, αναλόγως, το πακέτο απορρίπτεται ή γίνεται αποδεκτό.
Στην έκδοση 6 (IPv6) ωστόσο, έχει εγκαταλειφθεί η χρήση του αθροίσματος ελέγχου κεφαλίδας προς όφελος της ταχείας προώθησης μέσω ορισμένων στοιχείων δρομολόγησης στο δίκτυο.
Η επικεφαλίδα στο IPv4 αποτελείται από 14 πεδία, από τα οποία τα 13 είναι απαραίτητα. Το δέκατο τέταρτο πεδίο είναι προαιρετικό (μετο κόκκινο φόντο στον πίνακα) και ονομάζεται Επιλογές. Τα πεδία στην επικεφαλίδα πακετάρονται μετο περισσότερο σημαντικό πεδίο εμπρός καιγιατο διάγραμμα καιτη συζήτηση, τα περισσότερο σημαντικά δυαδικά ψηφία βρίσκονται μπροστά. Έτσι το 0 είναι το“περισσότερο σημαντικό bit”MSB), έτσι ‘ώστε για παράδειγμα το πεδίο «έκδοση» βρίσκεται στα 4 περισσότερο σημαντικά δυαδικά ψηφία του πρώτου Byte.
Το πρώτο πεδίο της επικεφαλίδας σε ένα πακέτο είναι το πεδίο της έκδοσης του πρωτοκόλλου, μήκους τεσσάρων δυαδικών ψηφίων. ΓιατοIPv4 αυτό έχει την τιμή 4 (απ’ όπου και προέρχεται το όνομα IPv4).
Το δεύτερο πεδίο (μήκος τεσσάρων δυαδικών ψηφίων) είναι το μήκος της επικεφαλίδας (Αγγλ. IHL, Internet Header Length). Αυτό μας δίνει το μήκος της επικεφαλίδας σε λέξεις των 32 δυαδικών ψηφίων. Επειδή η επικεφαλίδα του IPv4 μπορεί να περιέχει μεταβλητό αριθμό επιλογών, αυτό το πεδίο παρέχει το μήκος της επικεφαλίδας. Η μικρότερη τιμή του πεδίου είναι 5 (RFC 791), που σημαίνει ότι το μήκος είναι 5×32 = 160 bits = 20 bytes. Επειδή το πεδίο είναι 4 δυαδικά ψηφία, το μέγιστο μήκος είναι 24-1=15 λέξεις (15×32 bits) ή 480 bits = 60 bytes.
Το πεδίο αυτό έχει μήκος 16 δυαδικών ψηφίων. Καθορίζει το συνολικό μήκος του κομματιού (Αγγλ. fragment) σε bytes, συμπεριλαμβανομένων της επικεφαλίδας καιτων δεδομένων. Το ελάχιστο μήκος του πακέτου είναι 20 bytes (20 bytes επικεφαλίδα +0 bytes δεδομένα) καιτο μέγιστο μήκος είναι 216-1=65535 bytes, καθότι το μήκος του πεδίου Συνολικό Μήκος είναι 16 bits.
Διάφορες συσκευές, και μερικές φορές τα υποδίκτυα, μπορεί να επιβάλλουν περιορισμούς στο μέγεθος των αυτοδύναμων πακέτων, τα οποία σ’ αυτήν την περίπτωση πρέπει να διασπαστούν σε μικρότερα κομμάτια. Στο IPv4 η διάσπαση μπορεί να γίνει στους σταθμούς εργασίας ή στους δρομολογητές.
Το πεδίο αυτό είναι ένα πεδίο ταυτοποίησης και χρησιμεύει γιατον μοναδικό προσδιορισμό των κομματιών (αγγλ. fragments) που ανήκουν στο ίδιο αρχικό αυτοδύναμο πακέτο.
Αυτό είναι ένα πεδίο τριών δυαδικών ψηφίων που χρησιμεύει στονα ελέγχει ή να προσδιορίζει τα κομμάτια. Αυτά είναι, με σειρά από το περισσότερο προς το λιγότερο σημαντικό, τα εξής:
δυαδικό ψηφίο 0: Δεσμευμένο, πρέπει να είναι 0
δυαδικό ψηφίο 1: Απαγόρευση διάσπασης του αυτοδύναμου πακέτου (Αγγλ. Don’t Fragment (DF))
Εάν ο σηματοδότης DF έχει τιμή 1 και γιατην δρομολόγηση του πακέτου είναι απαραίτητη η διάσπασή του, τότε το πακέτο απορρίπτεται. Αυτό θα μπορούσε να χρησιμοποιηθεί κατά την αποστολή πακέτων σε σταθμούς εργασίας οι οποίοι δεν έχουν επαρκείς πόρους γιατον χειρισμό της διάσπασης. Επίσης μπορεί να χρησιμοποιηθεί γιατην αυτόματη ανίχνευση της Μέγιστης Μονάδας Μεταφοράς κατά Μήκος της Διαδρομής (Path MTU Discovery) είτε αυτόματα από τολογισμικότων σταθμών εργασίας, είτε χειροκίνητα μετην χρήση διαγνωστικών εργαλείων, όπως ταpingκαιtraceroute.
Στα πακέτα πουδεν έχουν διασπαστεί, ο σηματοδότης MF έχει τιμή 0. Στα διασπασμένα πακέτα, όλα τα κομμάτια έχουν MF με τιμή 1, εκτός από το τελευταίο πού έχει MF με τιμή 0. Το τελευταίο κομμάτι έχει μη μηδενικό πεδίο Δείκτη Εντοπισμού Τμήματος, το οποίο το διακρίνει από μη διασπασμένα πακέτα.
Ο δείκτης εντοπισμού τμήματος έχει μήκος 13 δυαδικών ψηφίων και απαριθμεί σε οκτάδες Byte. Προσδιορίζει την θέση ενός συγκεκριμένου κομματιού, από την αρχή του αρχικού μη διασπασμένου αυτοδύναμου πακέτου. Το πρώτο κομμάτι έχει δείκτη εντοπισμού τμήματος 0. Αυτό επιτρέπει έναν μέγιστο αριθμό θέσεων (213 – 1) × 8 = 65,528 bytes, το οποίο και ξεπερνά το μέγιστο μήκος του πακέτου, που είναι 65535 bytes, εάν συμπεριλάβουμε καιτο μήκος της επικεφαλίδας (65,528 + 20 = 65,548 bytes).
Το πεδίο αυτό οριοθετεί το χρόνο ζωής του αυτοδύναμου πακέτου. Έχει μήκος 8 δυαδικών ψηφίων και χρησιμεύει γιατην καταστροφή των αυτοδύναμων πακέτων πουγια διάφορους λόγους περιφέρονται άσκοπα στο Διαδίκτυο. Δίνεται σε δευτερόλεπτα, αλλά χρόνοι μικρότεροι από 1 δλ. στρογγυλεύονται στο 1 δλ.. Στην πράξη, λειτουργεί ως καταμετρητής αναμεταδόσεων: όταν ένα αυτοδύναμο πακέτο φτάσει σε έναν δρομολογητή, ο δρομολογητής μειώνει το πεδίο TTL κατά 1. Όταν μηδενιστεί, ο δρομολογητής απορρίπτει το πακέτο και στέλνει ένα μήνυμα τέλους χρόνου τουπρωτοκόλλου μηνυμάτων ελέγχου του Internet (ICMP Time Exceeded) μήνυμα στον αποστολέα.
Το πρόγραμμα traceroute χρησιμοποιεί το μήνυμα τέλους χρόνου του ICMP γιανα εκτυπώσει τους δρομολογητές που χρησιμοποιούνται από τα πακέτα στη διαδρομή τους από την πηγή στον προορισμό.
Το άθροισμα ελέγχου της επικεφαλίδας, που έχει μήκος 16 δυαδικών ψηφίων, χρησιμοποιείται γιατον έλεγχο σφαλμάτων της επικεφαλίδας. Μόλις ένα πακέτο φτάσει σε έναν δρομολογητή, ο δρομολογητής υπολογίζει το άθροισμα ελέγχου της επικεφαλίδας καιτο συγκρίνει μετο πεδίο αθροίσματος ελέγχου της επικεφαλίδας. Εάν δεν είναι ίσα, τότε ο δρομολογητής απορρίπτει το πακέτο. Σφάλματα στο πεδίο δεδομένων πρέπει να διαχειρίζονται από το ενθυλακωμένο πρωτόκολλο. Τόσο τοUDP όσο καιτοTCP έχουν πεδία αθροισμάτων ελέγχου.
Όταν ένα πακέτο φτάσει σε έναν δρομολογητή, ο δρομολογητής μειώνει το πεδίο χρόνου ζωής (TTL). Συνεπώς ο δρομολογητής πρέπει να υπολογίσει το νέο άθροισμα ελέγχου. ΗRFC 1071 καθορίζει τον τρόπο υπολογισμού του αθροίσματος:
Το πεδίο αθροίσματος ελέγχου είναι το 16 δυαδικά ψηφία συμπλήρωμα ως προς ένα, του αθροίσματος των συμπληρωμάτων ως προς 1 των λέξεων μήκους 16 δυαδικων ψηφίων της επικεφαλίδας. Γιατον υπολογισμό του αθροίσματος, το πεδίο άθροισμα ελέγχου επικεφαλίδας θεωρείται 0.
Ας θεωρήσουμε για παράδειγμα την Δεκαεξαδική Επικεφαλίδα: 4500003044224000800600008c7c19acae241e2b (20 bytes IP Επικεφαλίδα):
Βήμα 2) 2 + BBCF = BBD1 = 1011101111010001 (Συμπλήρωμα ως προς 1 του 16-bit Αθροίσματος)
Βήμα 3) ~BBD1 = 0100010000101110 = 442E (Συμπλήρωμα ως προς 1 του 16-bit Αθροίσματος)
Γιατον έλεγχο αθροίσματος ελέγχου της επικεφαλίδας, μπορεί να χρησιμοποιηθεί ο ίδιος αλγόριθμος: το άθροισμα ελέγχου μιας επικεφαλίδας, που περιέχει ένα σωστό άθροισμα, είναι μηδέν (τιμή 0):
2BBCF + 442E = 2FFFD. 2 + FFFD = FFFF. the 1'S of FFFF = 0.
Αυτό το πεδίο είναι η διεύθυνση IPv4 του αποστολέα του πακέτου. Η διεύθυνση αυτή μπορεί να αλλάξει κατά την διέλευση από μία συσκευή μετάφρασης διεύθυνσης δικτύου (ΝΑΤ)
Αυτό το πεδίο είναι η διεύθυνση IPv4 του παραλήπτη του πακέτου. Η διεύθυνση αυτή μπορεί να αλλάξει κατά την διέλευση από μία συσκευή μετάφρασης διεύθυνσης δικτύου (ΝΑΤ)
Το πρωτόκολλο καθιστά δυνατό τονα επικοινωνεί το ένα δίκτυο μετο άλλο. Ο σχεδιασμός προβλέπει την συνύπαρξη δικτύων διαφόρων τύπων. Το πρωτόκολλο είναι ανεξάρτητο από την φύση της υποκείμενης τεχνολογίας μετάδοσης τουεπιπέδου σύνδεσης. Τα δίκτυα με διαφορετική φυσική υποδομή συνήθως διαφέρουν όχι μόνο στην μέγιστη ταχύτητα μετάδοσης, αλλά επίσης στημέγιστη μονάδα μετάδοσης (MTU). Όταν ένα δίκτυο θέλει να στείλει αυτοδύναμα πακέτα σε δίκτυα με μικρότερο MTU, μπορεί να διασπάσει το αυτοδύναμο πακέτο. Στο IPv4 αυτή η λειτουργία είναι τοποθετημένη στοεπίπεδο internetκαι εκτελείται στο IPv4 από τους δρομολογητές.
Αντίθετα το IPv6, η επόμενη γενιά του Πρωτοκόλλου Διαδικτύου, δεν επιτρέπει στους δρομολογητές να κάνουν διάσπαση. Οι σταθμοί εργασίας πρέπει να προσδιορίσουν το MTU της διαδρομής, προτού αποστείλουν τα αυτοδύναμα πακέτα.
Το τμήμα δεδομένων του πακέτου, δεν συμπεριλαμβάνεται στο Άθροισμα Ελέγχου, το οποίο καιγι’ αυτό αποκαλείται Άθροισμα Ελέγχου Επικεφαλίδας. Ο τρόπος αναπαράστασης των περιεχομένων του βασίζεται στην τιμή που υπάρχει στο πεδίο «Αριθμός Πρωτοκόλλου» της επικεφαλίδας.
1Ο όρος διαδίκτυο (αγγλ. internetήinternetwork), με πεζό το πρώτο γράμμα, αναφέρεται στη γενικότερη έννοια ενός δικτύου που προκύπτει από τη σύνδεση πολλών φυσικών δικτύων, και όχι στο γνωστό μας Διαδίκτυο (αγγλ. Internet).