Πρωτόκολλο Διαδικτύου

Το Πρωτόκολλο Διαδικτύου (IP) (αγγλ., Internet Protocol), αποτελεί την κυριώτερη σύμβαση επικοινωνίας για τη μετάδοση πακέτων δεδομένων σε ένα 'διαδίκτυο¹, και είναι τμήμα της Συλλογής Πρωτοκόλλων Διαδικτύου. Είναι υπεύθυνο για τη δρομολόγηση των πακέτων δεδομένων ανάμεσα στα διάφορα δίκτυα, ανεξάρτητα από την υποδομή τους, και αποτελεί το κύριο πρωτόκολλο πάνω στο οποίο είναι βασισμένο το Διαδίκτυο.
Το πρωτόκολλο ανήκει στο Επίπεδο Δικτύου, στο Μοντέλο Διαστρωμάτωσης TCP/IP. Καθορίζει τη μορφή των πακέτων που στέλνονται μέσω ενός διαδικτύου, καθώς και τους μηχανισμούς που χρησιμοποιούνται για την προώθηση των πακέτων από έναν υπολογιστή προς έναν τελικό προορισμό μέσω ενός ή περισσότερων δρομολογητών. Γι' αυτούς τους σκοπούς, το πρωτόκολλο, χρησιμοποιεί συγκεκριμένες μεθόδους διευθυνσιοδότησης και δομές για την ενθυλάκωση των πακέτων δεδομένων.
Το πρωτόκολλο πρωτοπαρουσιάστηκε από τους Vint Cerf και Bob Kahn το 1974. Συνδέεται στενά με το Πρωτόκολλο Ελέγχου Μετάδοσης (TCP), με αποτέλεσμα ολόκληρη η συλλογή των πρωτοκόλλων του Διαδικτύου να αναφέρεται απλά ως TCP/IP.
Η πρώτη μεγάλης κλίμακας έκδοση του πρωτόκολλο ήταν η έκδοση 4 (IPv4) η οποία επικρατεί μέχρι και σήμερα σε όλο το Διαδίκτυο. Ωστόσο, λόγω του ότι δεν επαρκούν πλέον οι διαθέσιμες διευθύνσεις, τα τελευταία χρόνια, έχει αναπτυχθεί η διάδοχη έκδοση του πρωτοκόλλου, η έκδοση 6 (IPv6), η οποία είναι εν ενεργεία και χρησιμοποιείται ολοένα και περισσότερο σε όλο τον κόσμο. Οι τελευταίες διευθύνσεις IPv4 παραδόθηκαν σε ειδική τελετή, στις 3 Φεβρουαρίου του 2011, στο Μαϊάμι.

Υπηρεσίες

Το πρωτόκολλο είναι υπεύθυνο για τη διευθυνσιοδότηση των κόμβων και την δρομολόγηση των πακέτων από έναν υπολογιστή προς έναν τελικό προορισμό, κατά μήκος ενός ή περισσότερων δικτύων. Για το σκοπό αυτό, καθορίζει ένα σύστημα διευθυνσιοδότησης, το οποίο έχει δύο λειτουργίες. Κάθε πακέτο, αποτελείται από μια κεφαλίδα και στη συνέχεια ακολουθούν τα δεδομένα. Στη κεφαλίδα εμπεριέχονται πληροφορίες για τα δεδομένα του πακέτου και οι διευθύνσεις αφετηρίας και προορισμού. Η διαδικασία προσθήκης της κεφαλίδας σε ένα πακέτο δεδομένων ονομάζεται ενθυλάκωση.
Το πρωτόκολλο είναι μια υπηρεσία χωρίς σύνδεση, είναι ανεξάρτητο από την τεχνολογία της υλικής υποδομής του δικτύου και δεν χρειάζεται να την γνωρίζει πριν την μετάδοση.

Μορφή Πακέτου

Ένα πακέτο αποτελείται από το τμήμα της επικεφαλίδας και το τμήμα δεδομένων.

Έκδοση

Το πρώτο πεδίο της επικεφαλίδας σε ένα πακέτο είναι το πεδίο της έκδοσης του πρωτοκόλλου, μήκους τεσσάρων δυαδικών ψηφίων. Για το IPv4 αυτό έχει την τιμή 4 (απ’ όπου και προέρχεται το όνομα IPv4).

Μήκος Επικεφαλίδας (IHL)

Το δεύτερο πεδίο (μήκος τεσσάρων δυαδικων ψηφίων) είναι το μήκος της επικεφαλίδας (Αγγλ. IHL, Internet Header Length). Αυτό μας δίνει το μήκος της επικεφαλίδας σε λέξεις των 32 δυαδικών ψηφίων. Επειδή η επικεφαλίδα του  IPv4 μπορεί να περιέχει μεταβλητό αριθμό επιλογών, αυτό το πεδίο παρέχει το μήκος της επικεφαλίδας. Η μικρότερη τιμή του πεδίου είναι 5 (RFC 791), που σημαίνει ότι το μήκος είναι 5×32 = 160 bits = 20 bytes. Επειδή το πεδίο είναι 4 δυαδικά ψηφία,  το μέγιστο μήκος είναι 2⁴-1=15 λέξεις (15×32 bits) ή  480 bits = 60 bytes.

Συνολικό Μήκος

Το πεδίο αυτό έχει μήκος 16 δυαδικων ψηφίων. Καθορίζει το συνολικό μήκος του κομματιού (Αγγλ. fragment) σε bytes, συμπεριλαμβανομένων της επικεφαλίδας και των δεδομένων. Το ελάχιστο μήκος του πακέτου είναι 20 bytes (20 bytes επικεφαλίδα +0 bytes δεδομένα) και το μέγιστο μήκος είναι 2¹⁶-1=65535 bytes, καθότι το μήκος του πεδίου Συνολικό Μήκος είναι 16 bits.
Διάφορες συσκευές, και μερικές φορές τα υποδίκτυα, μπορεί να επιβάλλουν περιορισμούς στο μέγεθος των αυτοδύναμων πακέτων, τα οποία σ’ αυτήν την περίπτωση πρέπει να διασπαστούν σε μικρότερα κομμάτια. Στο IPv4 η διάσπαση μπορεί να γίνει στους σταθμούς εργασίας ή στους δρομολογητές.

Αναγνώριση

Το πεδίο αυτό είναι ένα πεδίο ταυτοποίησης και χρησιμεύει για τον μοναδικό προσδιορισμό των κομματιών (Aggl. fragments) που ανήκουν στο ίδιο αρχικό αυτοδύναμο πακέτο.

Δείκτης εντοπισμού τμήματος

Ο δείκτης εντοπισμού τμήματος έχει μήκος 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 για να εκτυπώσει τους δρομολογητές που χρησιμοποιούνται από τα πακέτα στη διαδρομή τους από την πηγή στον προορισμό.

Αριθμός πρωτοκόλλου

Το πεδίο αυτό προσδιορίζει την έκδοση του πρωτοκόλλου που χρησιμοποιείται από το αυτοδύναμο πακέτο.  Η Internet Assigned Numbers Authority διατηρεί έναν κατάλογο αριθμών πρωτοκόλλου IP, ο οποίος αρχικά είχε καθοριστεί στο RFC 790.

Διεύθυνση πηγής

Αυτό το πεδίο είναι η διεύθυνση IPv4 του αποστολέα του πακέτου. Η διεύθυνση αυτή μπορεί να αλλάξει κατά την διέλευση από μία συσκευή μετάφρασης διεύθυνσης δικτύου (ΝΑΤ)

Διεύθυνση προορισμού

Αυτό το πεδίο είναι η διεύθυνση IPv4 του παραλήπτη του πακέτου. Η διεύθυνση αυτή μπορεί να αλλάξει κατά την διέλευση από μία συσκευή μετάφρασης διεύθυνσης δικτύου (ΝΑΤ)

Επιλογές

Το πεδίο Επιλογές δεν χρησιμοποιείται συχνά.

Διάσπαση και επανασύνδεση

Το πρωτόκολλο καθιστά δυνατό το να επικοινωνεί το ένα δίκτυο με το άλλο. Ο σχεδιασμός προβλέπει την συνύπαρξη δικτύων διαφόρων τύπων. Το πρωτόκολλο είναι ανεξάρτητο από την φύση της υποκείμενης τεχνολογίας μετάδοσης του επιπέδου σύνδεσης. Τα δίκτυα με διαφορετική φυσική υποδομή συνήθως διαφέρουν όχι μόνο στην μέγιστη ταχύτητα μετάδοσης,  αλλά επίσης στη μέγιστη μονάδα μετάδοσης (MTU). Όταν ένα δίκτυο θέλει να στείλει αυτοδύναμα πακέτα σε δίκτυα με μικρότερο MTU, μπορεί να διασπάσει το αυτοδύναμο πακέτο. Στο IPv4 αυτή η λειτουργία είναι τοποθετημένη στο επίπεδο internet και εκτελείται στο IPv4 από τους δρομολογητές. 
Αντίθετα το IPv6, η επόμενη γενιά του Πρωτοκόλλου Διαδικτύου, δεν επιτρέπει στους δρομολογητές να κάνουν διάσπαση. Οι σταθμοί εργασίας πρέπει να προσδιορίσουν το MTU της διαδρομής, προτού αποστείλουν τα αυτοδύναμα πακέτα.

Δεδομένα

Το τμήμα δεδομένων του πακέτου, δεν συμπεριλαμβάνεται στο Άθροισμα Ελέγχου, το οποίο και γι’ αυτό αποκαλείται Άθροισμα Ελέγχου Επικεφαλίδας. Ο τρόπος αναπαράστασης των περιεχομένων του βασίζεται στην τιμή που υπάρχει στο πεδίο «Αριθμός Πρωτοκόλλου» της επικεφαλίδας.

Διευκρινήσεις

¹ Ο όρος διαδίκτυο (αγγλ. internet ή internetwork), με πεζό το πρώτο γράμμα, αναφέρεται στη γενικότερη έννοια ενός δικτύου που προκύπτει από τη σύνδεση πολλών φυσικών δικτύων, και όχι στο γνωστό μας Διαδίκτυο (αγγλ. Internet).