8. Κατάτμηση και επανασύνδεση datagrams.


Tο
TCP/IP έχει σχεδιαστεί για τη χρήση πολλών διαφορετικών ειδών δικτύων. Δυστυχώς, οι σχεδιαστές δικτύων δεν συμφωνούν για το πόσο μεγάλα πρέπει να είναι τα πακέτα. Τα πακέτα του Ethernet μπορεί να περιέχουν έως και 1500 octets. Τα πακέτα του ARPANET περιέχουν γύρω στα 1000 octets. Μερικά γρήγορα δίκτυα έχουν πολύ μεγαλύτερο μήκος πακέτου. Αρχικά, ίσως σκεφτείτε ότι το IP θα έπρεπε απλά να χρησιμοποιεί το μικρότερο δυνατό μέγεθος. Δυστυχώς, κάτι τέτοιο θα δημιουργούσε προβλήματα επίδοσης. Έτσι, όταν γίνεται μεταφορά μεγάλων αρχείων τα μεγάλα πακέτα είναι πολύ πιο πρακτικά από τα μικρά. Στην περίπτωση λοιπόν αυτή θέλουμε να χρησιμοποιούνται όσο το δυνατόν μεγαλύτερα πακέτα. Θέλουμε όμως να μπορούμε να χειριστούμε και δίκτυα με μικρά όρια στο μέγεθος πακέτων. Όσον αφορά αυτές τις περιπτώσεις έχουν γίνει οι εξής δυο διευθετήσεις. Πρώτον, το TCP έχει τη δυνατότητα να διαπραγματεύεται το μέγεθος του datagram. Όταν πρωτοανοίγει μια σύνδεση TCP και τα δυο άκρα στέλνουν το μέγιστο μέγεθος datagram που μπορούν να χειριστούν. Ο μικρότερος από τους δυο αυτούς αριθμούς χρησιμοποιείται κατά το υπόλοιπο της σύνδεσης. Αυτό επιτρέπει σε δυο εφαρμογές που μπορούν να χειριστούν μεγάλα datagrams να τα χρησιμοποιήσουν, αλλά επιτρέπει επίσης και συνεργασία με εφαρμογές που διαθέτουν μικρότερου μεγέθους datagrams. Παρ όλα αυτά όμως, δεν επιτυγχάνεται λύση στο πρόβλημα. Το πιο σοβαρό πρόβλημα είναι ότι τα δυο άκρα δεν γνωρίζουν απαραίτητα όλα τα ενδιάμεσα βήματα που πρέπει να γίνουν. Για παράδειγμα, όταν στέλνονται δεδομένα μεταξύ Rutgers και Berkeley, είναι πολύ πιθανόν και οι δυο υπολογιστές να βρίσκονται πάνω σε Ethernets. Έτσι και οι δυο προετοιμάζονται να χειριστούν datagrams των 1500 octets. Η σύνδεση όμως αυτή θα πρέπει σε κάποιο σημείο να περάσει πάνω από το ARPANET το οποίο δεν μπορεί να χειριστεί τέτοιου μεγέθους πακέτα. Για το λόγο αυτό, υπάρχει η δυνατότητα διαχωρισμού των datagrams σε κομμάτια (Η διαδικασία αυτή αναφέρεται σαν κατάτμηση - fragmentation). H IP επικεφαλίδα περιέχει πεδία που δηλώνουν ότι ένα datagram έχει διαχωριστεί και αρκετές πληροφορίες ώστε τα κομμάτια να μπορέσουν να επανασυνδεθούν. Αν ένα gateway συνδέσει ένα Ethernet στο ARPANET πρέπει να είναι προετοιμασμένο να πάρει τα 1500- octet πακέτα του Ethernet και να τα διασπάσει σε κομμάτια που θα χωράνε στο ARPANET. Επίσης, κάθε host που λειτουργαί βάση TCP/IP πρέπει να είναι προετοιμασμένος ώστε να συνδέσει πάλι τα κομμάτια (Η διαδικασία αυτή αναφέρεται ως επανασύνδεση -reassembly). Οι διάφορες υλοποιήσεις βάση του TCP/IP διαφέρουν στο πως λαμβάνεται η απόφαση για το μέγεθος του datagram. Είναι σύνηθες να χρησιμοποιούνται datagrams των 576 bytes όταν δεν μπορεί να εξασφαλιστεί ότι ολόκληρο το path μπορεί να χειριστεί μεγαλύτερα πακέτα. Αυτή η συντηρητική στρατηγική χρησιμοποιείται επειδή υπάρχουν αρκετές υλοποιήσεις με bugs στον κώδικα επανασύνδεσης των κομματιών. | BACK TO TOPIC | |TABLE OF CONTENTS|