Πακέτο

Στην επιστήμη των Δικτύων Υπολογιστών, το πακέτο, αποτελεί τη βασική μονάδα πληροφορίας που μεταφέρεται μέσα στα δίκτυα. Τα δίκτυα των υπολογιστών δεν μεταφέρουν δεδομένα με τη μορφή μιας τυχαίας ακολουθίας από συνεχόμενα bit. Το δικτυακό σύστημα διαιρεί τα δεδομένα σε μικρές ενότητες που ονομάζονται πακέτα (packets), τις οποίες στέλνει μεμονωμένα. Επειδή τα δίκτυα υπολογιστών χρησιμοποιούν αυτή τη τεχνολογία, ονομάζονται συνήθως και ως δίκτυα μεταγωγής πακέτων (packet switching networks).

 Ένα πακέτο αποτελείται από δύο μέρη δεδομένων: τις πληροφορίες ελέγχου και τα δεδομένα του χρήστη.Οι πληροφορίες ελέγχου, εμπεριέχουν τα δεδομένα που χρειάζεται το δίκτυο έτσι ώστε να μεταφέρει τα δεδομένα του χρήστη. Μερικές από τις πληροφορίες αυτές είναι: διευθύνσεις αποστολέα και παραλήπτη, εντοπισμός σφαλμάτων και ένας αύξων αριθμός για το κάθε πακέτο. Αυτό το μέρος του πακέτου αποκαλείται κεφαλίδα (header). Γενικά, ο όρος πακέτο αντιστοιχεί σε οποιοδήποτε μήνυμα το οποίο διαμορφώνεται με τη μορφή πακέτου, που περιγράφεται στη προηγούμενη παράγραφο. Ωστόσο, ο ειδικός όρος δεδομενόγραμμα (datagram) (ή αυτοδύναμο πακέτο), αναφέρεται ειδικά στα πακέτα που ενθυλακώνονται από μια “αναξιόπιστη” (ασυνδεσμική) υπηρεσία. Μια “αξιόπιστη υπηρεσία” είναι αυτή η οποία ειδοποιεί το χρήστη σε περίπτωση απώλειας κατά τη μεταφορά ενός πακέτου, ενώ μια “αναξιόπιστη” υπηρεσία δεν ειδοποιεί σε περίπτωση απώλειας. Ο όρος αυτός, χρησιμοποιείται κυρίως για να περιγράψει τα πακέτα των πρωτοκόλλων του Επιπέδου Δικτύου (π.χ. IP datagram, UDP datagram) του μοντέλου αναφοράς OSI. Αν και ο όρος πακέτο αναφέρεται στη γενική έννοια μιας ενότητας δεδομένων, δεν υπάρχει καθολική ομοφωνία για τη συγκεκριμένη μορφή ενός πακέτου. Το υλικό (Ethernet, οπτικές ίνες κλπ) πάνω στο οποίο βασίζονται τα δίκτυα υπαγορεύει τη μορφή του πακέτου και τις μεθόδους μετάδοσης μέσα στο δίκτυο. Για τον λόγο αυτό, χρησιμοποιείται συχνά ο όρος πλαίσιο (frame), για να περιγραφεί η μορφή ενός πακέτου για μια δεδομένη τεχνολογία υλικού. Επομένως, ο όρος αυτός χρησιμοποιείται για τα πακέτα των πρωτοκόλλων που βρίσκονται στο Φυσικό Επίπεδο (π.χ. Ethernet frame) του μοντέλου αναφοράς OSI. Παρακάτω περιγράφονραι οι δυο τύποι πακέτων που χρησιμοποιούνται πιο συχνά κατά τη μεταγωγή δεδομένων, στα δίκτυα υπολογιστών. Η πιο διαδεδομένη και πιο συχνά χρησιμοποιούμενη τεχνολογία τοπικών δικτύων, είναι το Ethernet. Όταν ένα πακέτο(IP datagram, UDP datagram κλπ) χρειάζεται να ταξιδεψει μέσα σε ένα δίκτυο Ethernet, πρέπει πρώτα να ενθυλακωθεί μέσα σε ένα πλαίσιο Ethernet. Η μορφή αυτού του πλαισίου είναι η εξής: Destination Address: έχει μέγεθος 6 byte, και αντιστοιχεί στην φυσική διεύθυνση(διεύθυνση MAC) του παραλήπτη. Source Address: έχει μέγεθος 6 byte, και αντιστοιχεί στην φυσική διεύθυνση του αποστολέα. Type: έχει μέγεθος 2 byte, προσδιορίζει τον τύπο του πλαισίου. ΔΕΔΟΜΕΝΑ: μπορεί να έχει μέγεθος από 46-1500 bytes. Τα δεδομένα αυτά, δεν αντιστοιχούν εξ' ολοκλήρου στα καθαρά δεδομένα, αλλά εμπεριέχονται και οι ενθυλακωμένες κεφαλίδες, απο τα ανώτερα επίπεδα. CRC (έλεγχος σφαλμάτων): έχει μέγεθος 4 byte και αντιστοιχεί στον έλεγχο της ομαλής μετάδοσης των δεδομένων της κεφαλίδας (και όχι όλου του πακέτου). Το πεδίο αυτό, έπεται των δεδομένων. IPv4 Η κεφαλίδα του πακέτου IP στην έκδοση 4 (IPv4), έχει τη μορφή που φαίνεται στην εικόνα, και αποτελείται από τα εξής πεδία: Έκδοση (Version): το πεδίο αυτό έχει μέγεθος 4 bits, και περιγράφει την έκδοση του πρωτοκόλλου IP (4 ή 6). Μήκος Κεφαλίδας (ΙP Header Length – IHL): το πεδίο αυτό έχει μέγεθος 4 bits, και περιγράφει το μήκος της κεφαλίδας σε 32μπιτες λέξεις. Οι λέξεις αυτές είναι συνήθως 5, οπότε και η τιμή του πεδίου αυτού είναι επίσης 5. Τύπος(ή Ποιότητα) Υπηρεσίας (Type of Service or Quality of Service – T.o.S. or Q.o.S.): το πεδίο αυτό έχει μέγεθος 8 bits (1 byte), και περιγράφει τον τρόπο δρομολόγησης του πακέτου. Συνολικό Μήκος πακέτου (Total Length): περιέχει έναν ακέραιο αριθμό των 16 bit, ο οποίος καθορισμένος το συνολικό αριθμό οκτάδων που περιέχει το αυτοδύναμο πακέτο (κεφαλίδα+δεδομένα). Ταυτότητα (Identification): έχει μέγεθος 16 bit (2 byte) και αποτελεί τον αναγνωριστικό αριθμό του πακέτου. Έτσι όταν ένα πακέτο κατακερματιστεί, τα διάφορα κομμάτια του θα έχουν τον ίδιο αριθμό ταυτότητας, για να υποδηλώνουν ότι αποτελούν μέρη, του ίδιου πακέτου. Σημαίες (Flags): έχει μέγεθος 3 bit. Κάθε bit, αποτελεί και μια ξεχωριστή σημαία και ανάλογα με το αν είναι 0 ή 1, εκτελούνται διαδικασίες κατακερματισμού του πακέτου. Χρόνος Ζωής (Time To Live – TTL): έχει μέγεθος 8 bit (1 byte). Περιέχει έναν αριθμό (1-255), ο οποίος προσδιορίζει το χρόνο ζωής του datagram. Μετριέται σε αριθμό αλμάτων μεταξύ των δρομολογητών. Σε κάθε διέλευση από κάποιο δρομολογητή ο αριθμός μειώνεται κατά 1. Όταν μηδενιστεί, το πακέτο απορρίπτεται. Τύπος Πρωτοκόλλου (Protocol): έχει μέγεθος 8 bit (1 byte). Δείχνει πιο πρωτόκολλο χρησιμοποιείται, στο Επίπεδο Μεταφοράς. Άθροισμα Ελέγχου Κεφαλίδας (Header Checksum): έχει μέγεθος 16 bit (2 byte). Χρησιμοποιείται για τον έλεγχο της ορθής μετάδοσης της επικεφαλίδας, και όχι ολόκληρου του πακέτου. ΙP Διεύθυνση Αφετηρίας (Source IP Address): έχει μέγεθος 32 bit, και περιέχει την IP διεύθυνση του αρχικού αποστολέα του πακέτου. IP Διεύθυνση Προορισμού (Destination IP Address): έχει μέγεθος 32 bit, και περιέχει την IP διεύθυνση του τελικού παραλήπτη του πακέτου. Επιλογές IP (IP Options): Συνήθως δεν χρησιμοποιείται. Η χρήση του αφορά σε διαγνωστικούς και διαχειριστικούς ελέγχους. Αν δεν χρησιμοποιείται ολόκληρο συμπληρώνεται με μηδενικά. Σε αντίθετη περίπτωση, το πεδίο IHL θα είναι >5, ώστε να δείχνει το μέγεθός του. IPv6 Λόγω της σταδιακής έλλειψης διευθύνσεων IP, δημιουργήθηκε η ανάγκη για την αναθεώρηση του Πρωτοκόλλου IP.Αναπόφευκτη συνέπεια, ήταν να αλλάξει και η μορφή της κεφαλίδας του πακέτου IP. Η κεφαλίδα του πακέτου IP στην έκδοση 6 (IPv6), διαφέρει σχεδόν εξ' ολοκλήρου, από την έκδοση 4. Παρ’ ότι η κεφαλίδα του του IPv6 είναι διπλάσια σε μέγεθος από μια κεφαλίδα του IPv4, περιέχει λιγότερες πληροφορίες. Ορισμένα πεδία έχουν συγχωνευτεί ενώ άλλα έχουν πλήρως παραλειφθεί, δίνοντας τη θέση τους σε νέα. Τα πεδία της κεφαλίδας ενός πακέτου IPv6 είναι τα εξής: Έκδοση (Version): έχει μέγεθος 4 bit, και προσδιορίζει την έκδοση του πρωτοκόλλου, δηλαδή έχει τη τιμή 6. Κατηγορία Κυκλοφορίας (Traffic Class): έχει μέγεθος 8 bit, και καθορίζει την κατηγορία κυκλοφορίας, η οποία χρησιμοποιείται για την επιλογή ενός δρομολογίου. Το πεδίο αυτό αντικαθιστά τα πεδία Μήκος Κεφαλίδας (ΙP Header Length – IHL) και Τύπος Υπηρεσίας (Type of Service or Quality of Service – T.o.S. or Q.o.S.) του πρωτοκόλλου IPv4. Ετικέτα Ροής (Flow Label): έχει μέγεθος 20 bit, και χρησιμοποιείται για τον προσδιορισμό μιας συγκεκριμένης διαδρομής μέσω του δικτύου. Μήκος Ωφέλιμου Φορτίου (Payload Length): έχει μέγεθος 16 bit, και προσδιορίζει μόνο το μέγεθος των δεδομένων που μεταφέρει το πακέτο, εξαιρείται δηλαδή η κεφαλίδα. Το πεδίο αυτό αντικαθιστά το πεδίο Συνολικό Μήκος πακέτου (Total Length). Επόμενη Κεφαλίδα (Next Header): έχει μέγεθος 8 bit, και χρησιμοποιείται για να καθορίσει τον τύπο των πληροφοριών που ακολουθούν μετά τη τρέχουσα κεφαλίδα. Όριο Αλμάτων (Hop Limit): έχει μέγεθος 8 bit, και αντιστοιχεί στο πεδίο Χρόνος Ζωής (ΤΤL) του IPv4. ΙP Διεύθυνση Αφετηρίας (Source IP Address): έχει μέγεθος 128 bit (4 φορές μεγαλύτερο), , και περιέχει την IP διεύθυνση του αποστολέα του πακέτου. IP Διεύθυνση Προορισμού (Destination IP Address): έχει μέγεθος 128 bit (4 φορές μεγαλύτερο), και περιέχει την IP διεύθυνση του τελικού παραλήπτη του πακέτου. 1. Douglas E. Comer, Computer Networks and Internets with Internet Applications, 4η Έκδοση