Σάββατο 10 Ιουλίου 2010

UDP

Αν έπρεπε να συγκρίνουμε το UDP (User Datagram Protocol) με το TCP, τότε το UDP είναι μια μικρότερη έκδοση και οικονομικότερη ως μοντέλο το οποίο στη βιβλιογραφία αναφέρεται ως "λεπτό/αδύνατο" πρωτόκολλο. Έτσι αφού είναι πιο "λεπτό", δεν πιάνει πολύ χώρο με αποτέλεσμα να μην χρειάζεται και τόσους πολλούς πόρους στο διαδίκτυο. Το UDP δεν προσφέρει όλες αυτές τις πρόσθετες προαπαιτήσεις του TCP αλλά καταφέρνει την μεταφορά πληροφοριών η οποία δεν απαιτεί αξιόπιστη παράδοση.
Υπάρχουν περιπτώσεις όπου είναι σοφότερο να χρησιμοποιηθεί το UDP έναντι του TCP, όπως στην περίπτωση του πρωτοκόλλου SΝMP το οποιό λειτουργεί στο επίπεδο εφαρμογής και ελέγχει το δίκτυο. Το SNMP κατά βάση αποστέλλει διακοπτόμενα μηνύματα καθώς και σχετκά σταθερή ροή μηνυμάτων ανανέωσης (update) και συναγερμού (alert) ειδικά όταν πρόκειται για μεγάλα δίκτυα. Έτσι το κόστος σε ταχύτητα για την εγκαθίδρυση, συντήρηση και λήξη μιας σύνδεσης TCP, για κάθε ένα από τα μικρά μηνύματα, θα μείωνε την αποδοτικότητα ακόμα και σε αρκετά υγιή δίκτυα.

To UDP δεν τοποθετεί τα τεμάχια σε ακολουθία και δεν ενδιαφέρεται με ποια σειρά θα φτάσουν στον παραλήπτη. Δεν ακολουθεί την πορεία των τεμαχίων, δεν τα ελέγχει και δεν απαιτεί μηνύματα επιβεβαίωσης ασφαλούς άφιξης. Γι΄αυτούς τους λόγους το UDP θεωρείται αναξιόπιστο πρωτόκολλο. Αυτό βέβαια δεν σημαίνει ότι το UDP είναι αναποτελεσματικό απλα δεν χειρίζεται θέματα αξιοπιστίας. Σαν παραδειγμα έχουμε τις εφαρμογές audio και video streaming (π.χ. youtube) όπου χρησιμοπούνται κατα κόρον πακέτα UDP. Για τις εφαρμογές αυτές είναι πολύ σημαντικό τα πακέτα να παραδοθούν στον παραλήπτη σε σύντομο χρονικό διάστημα για να μην υπάρξει διακοπή της ροής ήχου και εικόνας ενω αν χαθεί κάποιο πακέτο οι εφαρμογές εχουν μηχανισμούς ώστε να μην το αντιλαμβάνεται ο χρήστης. Τέλος το UDP δεν δημιουργεί virtual circuit και δέν επικοινωνεί με την πλευρά προορισμού πριν την παράδοση της πληροφορίας, γι' αυτό και θεωρείται ως ασυνδεσμικό (connectioneless) πρωτόκολλο.

Όπως παρατηρούμε το "τεμάχιο" του UDP είναι αρκετά μικρότερο απο αυτό του TCP και επισης δεν προσφέρει πεδία για επιβεβαίωση στο header.

Sourse port: η πόρτα του αποστολέα από την οποία προήλθε το πακέτο. Εάν ο παραλήπτης επιθυμεί να στείλει κάποια απάντηση θα πρέπει να την στείλει στην πόρτα αυτήν. Το συγκεκριμένο πεδίο δεν είναι υποχρεωτικό και στις περιπτώσεις που δεν χρησιμοποιείται θα πρέπει να έχει την τιμή 0.

Destination Port: η πόρτα του παραλήπτη στην οποία θα πρέπει να παραδοθεί το πακέτο.

Length: αυτό το πεδίο μας δείχνει το μέγεθος του πακέτου σε bytes.

Checksum: ένα πεδίο 16-bit το οποίο χρησιμοποιείται για επαλήθευση της ορθότητας του πακέτου στο σύνολό του, δηλαδή τόσο της κεφαλίδας όσο και των δεδομένων.

Άλλες εφαρμογές που χρησιμοποιούν το πρωτόκολλο UDP είναι οι διαδικασίες σχετικές με το Domain Name System (DNS), το Dynamic Host Configuration Protocol (DHCP) καθώς και το Routing Information Protocol (RIP).