Internet Protocol

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Μετάβαση σε: πλοήγηση, αναζήτηση

Το Πρωτόκολλο Διαδικτύου (IP) (αγγλ., Internet Protocol), αποτελεί το κύριο πρωτόκολλο επικοινωνίας για τη μετάδοση δεδομενογραμμάτων (αγγλ. datagrams), δηλαδή πακέτων δεδομένων, σε ένα διαδίκτυο1, και είναι τμήμα της Σουίτας Πρωτοκόλλων Διαδικτύου. Το Πρωτόκολλο IP είναι υπεύθυνο για τη δρομολόγηση των πακέτων δεδομένων ανάμεσα στα διάφορα δίκτυα, ανεξάρτητα από την υποδομή τους, και αποτελεί το κύριο πρωτόκολλο πάνω στο οποίο είναι βασισμένο το Διαδίκτυο.

Το Πρωτόκολλο IP, ανήκει στο Επίπεδο Διικτύου, στο Μοντέλο Διαστρωμάτωσης TCP/IP. Καθορίζει τη μορφή των πακέτων που στέλνονται μέσω ενός διαδικτύου, καθώς και τους μηχανισμούς που χρησιμοποιούνται για την προώθηση των πακέτων από έναν υπολογιστή προς έναν τελικό προορισμό μέσω ενός ή περισσότερων δρομολογητών. Γι' αυτούς τους σκοπούς, το IP, χρησιμοποιεί συγκεκριμένες μεθόδους διευθυνσιοδότησης και δομές για την ενθυλάκωση των πακέτων δεδομένων.

Το Πρωτόκολλο IP εισήχθη από τους Vint Cerf και Bob Kahn το 1974. Συνδέεται στενά με το Πρωτόκολλο Ελέγχου Μετάδοσης (TCP), με αποτέλεσμα ολόκληρη η σουίτα των πρωτοκόλλων του Διαδικτύου να αναφέρεται απλά ως σουίτα TCP/IP.

Η πρώτη μεγάλης κλίμακας έκδοση του Πρωτοκόλλου IP, ήταν η έκδοση 4 (IPv4) η οποία επικρατεί μέχρι και σήμερα σε όλο το Διαδίκτυο. Ωστόσο, λόγω του ότι δεν επαρκούν πλέον οι διευθύνσεις, τα τελευταία χρόνια, έχει αναπτυχθεί η διάδοχη έκδοση του πρωτοκόλλου, η έκδοση 6 (IPv6), η οποία είναι εν ενεργεία και χρησιμοποιείται εξαπλωνόμενη σε όλο τον κόσμο. Οι τελευταίες διευθύνσεις IPv4 παραδόθηκαν σε ειδική τελετή, στις 3 Φεβρουαρίου του 2011, στο Μαϊάμι. [1]

Υπηρεσίες του Πρωτοκόλλου IP[Επεξεργασία | επεξεργασία κώδικα]

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

Το Πρωτόκολλο IP είναι μια υπηρεσία χωρίς σύνδεση, είναι ανεξάρτητο από την τεχνολογία του υλικού, που χρησιμοποιείται σε κάθε δίκτυο, και δεν χρειάζεται να την γνωρίζει πριν την μετάδοση.

Αξιοπιστία[Επεξεργασία | επεξεργασία κώδικα]

Εκτός από τον ορισμό της μορφής των αυτοδύναμων πακέτων, το Πρωτόκολλο ΙP ορίζει τη σημασιολογία της επικοινωνίας, και χρησιμοποιεί τον όρο βέλτιστη προσπάθεια, για να περιγράψει την υπηρεσία που παρέχει. Ουσιαστικά το πρότυπο αυτό ορίζει, ότι παρ’ όλο που το πρωτόκολλο IP κάνει τη βέλτιστη δυνατή προσπάθεια για να αποδώσει ένα πακέτο στο προορισμό του, το υποκείμενο υλικό από το οποίο είναι φτιαγμένα τα εκάστοτε δίκτυα που διασχίζει, μπορεί να συμπεριφερθεί λανθασμένα. Έτσι, το πρωτόκολλο, δεν εγγυάται ότι θα μπορέσει να αντιμετωπίσει τα παρακάτω προβλήματα:

  • Αλλοίωση δεδομένων
  • Απώλεια αυτοδύναμου πακέτου
  • Επανάληψη αυτοδύναμου πακέτου
  • Επίδοση με καθυστέρηση ή εκτός σειράς.

Για την αντιμετώπιση του κάθε ενός από αυτά τα σφάλματα, χρειάζονται πρόσθετα, υψηλότερα επίπεδα λογισμικού πρωτοκόλλων.

Η μόνη διαβεβαίωση που μπορεί να δώσει το πρωτόκολλο IP στην έκδοση 4 (IPv4), είναι το αν τα μπιτ της κεφαλίδας έχουν υποστεί αλλοίωση ή όχι κατά τη διάρκεια της μεταφοράς. Αυτή η πληροφορία εμπεριέχεται σε ένα πεδίο της κεφαλίδας του IP πακέτου, που ονομάζεται Άθροισμα Ελέγχου Κεφαλίδας (Header Checksum). Κάνοντας χρήση του checksum, μπορεί να διαπιστωθεί εάν η κεφαλίδα έχει μεταφερθεί σωστά ή όχι, και αναλόγως το πακέτο απορρίπτεται ή όχι.

Στην έκδοση 6 (IPv6) ωστόσο, έχει εγκαταλειφθεί η χρήση του αθροίσματος ελέγχου κεφαλίδας, προς όφελος της ταχείας προώθησης μέσω ορισμένων στοιχείων δρομολόγησης στο δίκτυο.

Σχετικά Διαγράμματα[Επεξεργασία | επεξεργασία κώδικα]

Πάνω:Δύο συσκευές συνδεδεμένες μεταξύ τους μέσω δρομολογητών.
Κάτω:Η ροή των δεδομένων ανάμεσα στα διάφορα επίπεδα, της Σουίτας ΤCP/IP.
Ενθυλάκωση των δεδομένων(πράσινο χρώμα) μιας εφαρμογής.

Μορφή Πακέτου[Επεξεργασία | επεξεργασία κώδικα]

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

Επικεφαλίδα[Επεξεργασία | επεξεργασία κώδικα]

Η επικεφαλίδα στο IPv4 αποτελείται από 14 πεδία, από τα οποία τα 13 είναι απαραίτητα. Το 14 πεδίο είναι προαιρετικό (με το κόκκινο φόντο στον πίνακα) και ονομάζεται: Επιλογές. Τα πεδία στην επικεφαλίδα πακετάρονται με το περισσότερο σημαντικό πεδίο εμπρός και για το διάγραμμα και τη συζήτηση, τα περισσότερο σημαντικά bit βρίσκονται μπροστά. Έτσι το 0 είναι το “περισσότερο σημαντικό bit” MSB), έτσι ‘ώστε για παράδειγμα το πεδίο «έκδοση» βρίσκεται στα 4 περισσότερο σημαντικά bit του πρώτου Byte.


Μορφή Επικεφαλίδας +IPv4
Offsets Octet 0 1 2 3
Octet Bit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
0 0 Έκδοση IHL DSCP ECN Συνολικό Μήκος
4 32 Αναγνώριση Flags Δείκτης Εντοπισμού Τμήματος
8 64 Χρόνος Ζωής Αριθμός Πρωτοκόλλου Άθροισμα Ελέγχου Επικεφαλίδας
12 96 IP Διεύθυνση Πηγής
16 128 IP Διεύθυνση Προορισμού
20 160 IP Επιλογές (Εάν Μήκος Επικεφαλίδας > 5)

Έκδοση[Επεξεργασία | επεξεργασία κώδικα]

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

Μήκος Επικεφαλίδας (IHL)[Επεξεργασία | επεξεργασία κώδικα]

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

Συνολικό Μήκος[Επεξεργασία | επεξεργασία κώδικα]

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

Διάφορες συσκευές και μερικές φορές τα υποδίκτυα μπορεί να επιβάλλουν περιορισμούς στο μέγεθος των αυτοδύναμων πακέτων, τα οποία σ’ αυτήν την περίπτωση πρέπει να σπάσουν σε μικρότερα κομμάτια. Στο IPv4 η διάσπαση μπορεί να γίνει στους σταθμούς εργασίας ή στους δρομολογητές.

Αναγνώριση[Επεξεργασία | επεξεργασία κώδικα]

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

Σημαίες (Flags)[Επεξεργασία | επεξεργασία κώδικα]

Αυτό είναι ένα πεδίο των τριών bit και χρησιμεύει να ελέγχει ή να προσδιορίζει τα κομμάτια. Αυτά είναι (κατά σειρά από το περισσότερο σημαντικό προς το λιγότερο):

  • bit 0: Δεσμευμένο, πρέπει να είναι 0
  • bit 1: Απαγόρευσης διάσπασης του αυτοδύναμου πακέτου (DF=Don’t Fragment)
  • bit 2:Ένδειξης ύπαρξης περισσότερων κομματιών (MF=More Fragments)

Εάν η σημαία DF έχει τεθεί στο 1 και για την δρομολόγηση του πακέτου είναι απαραίτητη η διάσπασή του, τότε το πακέτο απορρίπτεται. Αυτό θα μπορούσε να χρησιμοποιηθεί κατά την αποστολή πακέτων σε σταθμούς εργασίας, οι οποίοι δεν έχουν επαρκείς πόρους για τον χειρισμό της διάσπασης. Επίσης μπορεί να χρησιμοποιηθεί για την αυτόματη ανίχνευση της Μέγιστης Μονάδας Μεταφοράς κατά Μήκος της Διαδρομής (Path MTU Discovery) είτε αυτόματα από το software των σταθμών εργασίας, είτε χειροκίνητα με την χρήση διαγνωστικών εργαλείων, όπως τα ping και traceroute. Σε πακέτα που δεν έχουν διασπαστεί η σημαία MF είναι 0. Για διασπασμένα πακέτα όλα τα κομμάτια έχουν το MF=1, εκτός από το τελευταίο πού έχει το MF=0. Το τελευταίο κομμάτι έχει μη μηδενικό πεδίο Δείκτη εντοπισμού τμήματος, το οποίο το διακρίνει από ακκομάτιαστα πακέτα.

Δείκτης εντοπισμού τμήματος[Επεξεργασία | επεξεργασία κώδικα]

Ο δείκτης εντοπισμού τμήματος είναι 13-bit και απαριθμεί σε οκτάδες Byte. Προσδιορίζει την θέση ενός συγκεκριμένου κομματιού, από την αρχή του αρχικού ακκομάτιαστου αυτοδύναμου πακέτου. Το πρώτο κομμάτι έχει δείκτη εντοπισμού τμήματος 0. Αυτό επιτρέπει έναν μέγιστο αριθμό θέσεων (213 – 1) × 8 = 65,528 bytes, το οποίο και ξεπερνά το μέγιστο μήκος του IP πακέτου, που είναι 65535 bytes, εάν συμπεριλάβουμε και το μήκος της επικεφαλίδας (65,528 + 20 = 65,548 bytes).

Χρόνος Ζωής[Επεξεργασία | επεξεργασία κώδικα]

Το πεδίο αυτό οριοθετεί το χρόνο ζωής του αυτοδύναμου πακέτου. Έχει μήκος 8 bit και χρησιμεύει στο να καταστρέφονται αυτοδύναμα πακέτα που για διάφορους λόγους περιφέρονται άσκοπα στο Internet. Δίνεται σε δευτερόλεπτα, αλλά χρόνοι μικρότεροι από 1s στρογγυλεύονται στο 1 s. Στην πράξη έχει καταντήσει μετρητής αναπηδήσεων: Όταν ένα αυτοδύναμο πακέτο φτάσει σε έναν δρομολογητή, ο δρομολογητής μειώνει το πεδίο TTL κατά 1. Όταν μηδενιστεί, ο δρομολογητής απορρίπτει το πακέτο και στέλνει ένα μήνυμα τέλους χρόνου του πρωτοκόλλου μηνυμάτων ελέγχου του Internet(ICMP Time Exceeded) μήνυμα στον αποστολέα. Το πρόγραμμα traceroute χρησιμοποιεί το μήνυμα τέλους χρόνου του ICMP. για να εκτυπώσει τους δρομολογητές που χρησιμοποιούνται από τα πακέτα στη διαδρομή τους από την πηγή στον προορισμό.

Αριθμός πρωτοκόλλου[Επεξεργασία | επεξεργασία κώδικα]

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

Άθροισμα ελέγχου επικεφαλίδας[Επεξεργασία | επεξεργασία κώδικα]

Το 16-bits άθροισμα ελέγχου της επικεφαλίδας, χρησιμοποιείται για έλεγχο σφαλμάτων της επικεφαλίδας. Μόλις ένα πακέτο φτάσει σε έναν δρομολογητή, ο δρομολογητής υπολογίζει το άθροισμα ελέγχου της επικεφαλίδας και το συγκρίνει με το πεδίο αθροίσματος ελέγχου της επικεφαλίδας. Εάν δεν ταιριάζουν, τότε ο δρομολογητής απορρίπτει το πακέτο. Σφάλματα στο πεδίο δεδομένων πρέπει να διαχειριστούν από το ενθυλακωμένο πρωτόκολλο. Και το UDP και το TCP έχουν πεδία αθροισμάτων ελέγχου.

Όταν ένα πακέτο φτάσει σε έναν δρομολογητή, ο δρομολογητής μειώνει το πεδίο χρόνου ζωής (TTL). Συνεπώς ο δρομολογητής πρέπει να υπολογίσει το νέο άθροισμα ελέγχου. Η RFC 1071 καθορίζει τον τρόπο υπολογισμού του αθροίσματος:

Το πεδίο αθροίσματος ελέγχου είναι το 16 bit συμπλήρωμα ως προς ένα, του αθροίσματος των συμπληρωμάτων ως προς 1 των 16 bit λέξεων της επικεφαλίδας. Για τον υπολογισμό του αθροίσματος, το πεδίο άθροισμα ελέγχου επικεφαλίδας θεωρείται 0.

Ας θεωρήσουμε για παράδειγμα την Δεκαεξαδική Επικεφαλίδα: 4500003044224000800600008c7c19acae241e2b (20 bytes IP Επικεφαλίδα):

Βήμα 1) 4500 + 0030 + 4422 + 4000 + 8006 + 0000 + 8c7c + 19ac + ae24 + 1e2b = 2BBCF (16-bit Άθροισμα)

Βήμα 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.

IP Διεύθυνση πηγής[Επεξεργασία | επεξεργασία κώδικα]

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

IP Διεύθυνση προορισμού[Επεξεργασία | επεξεργασία κώδικα]

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

IP Επιλογές[Επεξεργασία | επεξεργασία κώδικα]

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


Διάσπαση και επανασύνδεση[Επεξεργασία | επεξεργασία κώδικα]

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

Δεδομένα[Επεξεργασία | επεξεργασία κώδικα]

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

Διευκρινήσεις[Επεξεργασία | επεξεργασία κώδικα]

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

Δείτε Επίσης[Επεξεργασία | επεξεργασία κώδικα]

Σουίτα TCP/IP
Πρωτόκολλο Ελέγχου Μεταφοράς
Κατάλογος των TCP και UDP ports

Παραπομπές[Επεξεργασία | επεξεργασία κώδικα]

Εργαλεία[Επεξεργασία | επεξεργασία κώδικα]

Πηγές[Επεξεργασία | επεξεργασία κώδικα]

Στο λήμμα αυτό έχει ενσωματωθεί κείμενο από το λήμμα Internet Protocol της Αγγλικής Βικιπαίδειας, η οποία διανέμεται υπό την GNU FDL και την CC-BY-SA 3.0. (ιστορικό/συντάκτες).

1. Douglas E. Comer, Computer Networks and Internets with Internet Applications, 4η Έκδοση