Πρωτόκολλα Διαδικτύου Μέρος 1ο Επικοινωνίες Δεδομένων Μάθημα 3 ο
Εισαγωγή στην Τεχνολογία TCP/IP To TCP/IP σημαίνει Transmission Control Protocol / Internet Protocol και θα μπορούσε να θεωρηθεί ότι πρόκειται για συνδυασμό αυτών των δύο πρωτοκόλλων. Ωστόσο, το TCP και το IP είναι δύο χωριστά πρωτόκολλα. Χρησιμοποιούνται όμως πάρα πολύ συχνά σε συνδυασμό, καθώς το ένα χρειάζεται για να μεταφέρει τα δεδομένα που δημιουργεί το άλλο. Η ανάγκη για τη δημιουργία του TCP/IP προέκυψε από το γεγονός ότι πριν από αυτό, συσκευές διαφορετικών κατασκευαστών ή με διαφορετικά λειτουργικά δεν μπορούσαν (εύκολα) να επικοινωνήσουν μεταξύ τους.
Δίκτυο και Διαδίκτυο TCP/IP Τα δίκτυα που χρησιμοποιούν τα πρωτόκολλα TCP/IP, αναφέρονται και ως διαδίκτυα TCP/IP (TCP/IP internets). Δεν θα πρέπει ωστόσο να μπερδεύουμε την έννοια των TCP/IP διαδικτύων με το Παγκόσμιο Διαδίκτυο (Internet). Ένα διαδίκτυο TCP/IP μπορεί να είναι ένα οποιοδήποτε δίκτυο βασίζεται στην τεχνολογία TCP/IP. Το Διαδίκτυο (Internet) όμως είναι το μεγαλύτερο παγκόσμιο δίκτυο υπολογιστών το οποίο εκτείνεται σε όλες τις ηπείρους και συνδέει μεταξύ τους εκατομμύρια υπολογιστών. Η τεχνολογία του βασίζεται στα πρωτόκολλα TCP/IP (ενώνοντας μεταξύ τους πολλά μικρότερα δίκτυα υπολογιστών).
Intranet Είναι επίσης δυνατόν να σχεδιάσουμε το εσωτερικό τοπικό δίκτυο μιας εταιρίας ώστε να λειτουργεί με παρόμοιο τρόπο με το Internet. Θα μπορούσαμε π.χ. να δημιουργήσουμε τις εφαρμογές της εταιρίας μας με τέτοιο τρόπο ώστε ο χειρισμός τους να γίνεται μέσω ιστοσελίδων Παγκόσμιου Ιστού (WWW). Ένα τέτοιο ιδιωτικό δίκτυο που μοιάζει στη λειτουργία του με το Internet, ονομάζεται εσωτερικό ιδιωτικό δίκτυο τεχνολογίας TCP ή intranet. Θα το ακούσετε ακόμα και με τον όρο ενδοδίκτυο.
Μοντέλο TCP/IP Αποτελείται από 4 επίπεδα
Επίπεδο Πρόσβασης Δικτύου Παρέχει την πρόσβαση στο φυσικό μέσο στο οποίο η πληροφορία μεταδίδεται με την μορφή πακέτων. Αντιπροσωπεύει το χαμηλότερο επίπεδο λειτουργικότητας που απαιτείται από ένα δίκτυο και περιλαμβάνει όλα τα στοιχεία της φυσικής σύνδεσης: καλώδια, κάρτες δικτύου, πρωτόκολλα πρόσβασης τοπικών δικτύων. Όπως κάθε επίπεδο στο TCP/IP, το επίπεδο αυτό παρέχει τις υπηρεσίες του στο αμέσως ανώτερο επίπεδο, το επίπεδο δικτύου.
Επίπεδο Δικτύου Είναι υπεύθυνο για τη μετάδοση στο φυσικό δίκτυο των πακέτων που δημιουργούνται από τα πρωτόκολλα TCP και UDP που βρίσκονται στο αμέσως ανώτερο επίπεδο (Μεταφοράς). Το βασικό πρωτόκολλο που χρησιμοποιείται σε αυτό το επίπεδο είναι το IP ή πρωτόκολλο Διαδικτύου και είναι αυτό που εξασφαλίζει την παγκόσμια διασυνδεσιμότητα. Το πρωτόκολλο IP είναι υπεύθυνο για την παροχή λογικών διευθύνσεων (των γνωστών μας διευθύνσεων IP) στα σημεία διεπαφής του με το φυσικό δίκτυο (σε κάθε δηλ. συσκευή του δικτύου που διαθέτει δική της διεύθυνση).
Επίπεδο Μεταφοράς Είναι υπεύθυνο για την υλοποίηση των συνδέσεων μεταξύ των υπολογιστών ενός δικτύου. Το βασικό πρωτόκολλο εδώ είναι το TCP (πρωτόκολλο με σύνδεση), ενώ μπορεί να χρησιμοποιηθεί και το UDP (πρωτόκολλο χωρίς σύνδεση). Το TCP είναι υπεύθυνο για την αποκατάσταση αξιόπιστων ταυτόχρονων συνδέσεων διπλής κατεύθυνσης. Η έννοια του αξιόπιστου είναι ότι το TCP αναλαμβάνει να διορθώσει τα λάθη που τυχόν παρουσιάζονται στη μετάδοση. Το TCP παρέχει τις υπηρεσίες του στο αμέσως ανώτερο επίπεδο (Εφαρμογής).
Επίπεδο Μεταφοράς Η έννοια του ταυτόχρονου είναι ότι ένας υπολογιστής μπορεί σε μια δεδομένη στιγμή να διατηρεί πλήθος διαφορετικών συνδέσεων TCP οι οποίες να λειτουργούν όλες μαζί, αλλά καμιά να μην επηρεάζει την άλλη. Επικοινωνία διπλής κατεύθυνσης σημαίνει ότι μέσω μιας σύνδεσης μπορούν ταυτόχρονα να μεταδίδονται και να λαμβάνονται δεδομένα. Το πρωτόκολλο αυτοδύναμων πακέτων UDP είναι ένα πρωτόκολλο χωρίς σύνδεση. Δεν είναι ιδιαίτερα αξιόπιστο, αλλά επειδή είναι λιγότερο πολύπλοκο χρησιμοποιείται σε περιπτώσεις που η αξιοπιστία δεν είναι κρίσιμη και δεν είναι η επιθυμητή η χρήση του TCP.
Επίπεδο Εφαρμογής Παρέχει τις εφαρμογές που χρησιμοποιούν τα πρωτόκολλα του επιπέδου μεταφοράς. Το επίπεδο εφαρμογής είναι και το σημείο που ο τελικός χρήστης έρχεται σε επαφή με την στοίβα πρωτοκόλλων της τεχνολογίας TCP/IP. Χαρακτηριστικά παραδείγματα εφαρμογών είναι η μεταφορά αρχείων, η απομακρυσμένη σύνδεση και το ηλεκτρονικό ταχυδρομείο.
Βασικές Αρχές Επικοινωνίας Παράδειγμα: Το επίπεδο εφαρμογών του δικού μας υπολογιστή μπορεί να θεωρηθεί ότι επικοινωνεί με το αντίστοιχο επίπεδο εφαρμογών του απομακρυσμένου προκειμένου να ολοκληρωθεί μια εργασία (για παράδειγμα η αποστολή ενός μηνύματος Ηλεκτρονικού Ταχυδρομείου με βάση το πρωτόκολλο SMTP, το οποίο ανήκει στο επίπεδο εφαρμογής). Τα ενδιάμεσα επίπεδα προσαρμόζουν και μεταφέρουν τα δεδομένα που παράγονται από το επίπεδο εφαρμογής.
Βασικές Αρχές Επικοινωνίας
Επικοινωνία στο Διαδίκτυο
Transmission Control Protocol (TCP) Το πρωτόκολλο Ελέγχου Μετάδοσης (TCP) είναι το βασικό πρωτόκολλο του επιπέδου μεταφοράς της τεχνολογίας TCP/IP. Παρέχει υπηρεσίες προσανατολισμένες σε σύνδεση και εξασφαλίζει την αξιόπιστη μεταφορά δεδομένων και την από άκρο σε άκρο επικοινωνία. Λαμβάνει από τα πρωτόκολλα ανωτέρου επιπέδου τα προς μετάδοση δεδομένα και τα μεταδίδει. Όταν λαμβάνει μηνύματα σε μέγεθος μεγαλύτερο από το μέγεθος του συμφωνημένου πακέτου, τα σπάει σε μικρότερα.
Επικοινωνία στο επίπεδο δικτύου
TCP τμήματα (segments) Καθένα από αυτά τα πακέτα, τα οποία αποτελούν τη μονάδα μεταφοράς στο πρωτόκολλο TCP, ονομάζεται τμήμα (segment). Κάθε τμήμα αποτελείται από την επικεφαλίδα (Ε), την οποία δημιουργεί το πρωτόκολλο TCP και τα προς μετάδοση δεδομένα, που ήρθαν από το ανώτερο επίπεδο. Τα πεδία της επικεφαλίδας βοηθούν το πρωτόκολλο TCP να διαχειρισθεί τα διάφορα τμήματα που λαμβάνει και αποτελούν φυσικά κομμάτι των πραγματικών δεδομένων του χρήστη που θα μεταφερθούν από το συγκεκριμένο τμήμα.
Δομή πακέτου TCP Όταν τα TCP τμήματα φτάσουν στον προορισμό τους πρέπει να ενωθούν ξανά για να δημιουργήσουν το αρχικό μεγαλύτερο πακέτο. Για να γίνει αυτό πρέπει να μπουν στη σωστή σειρά. Αυτή είναι και η λειτουργία του πεδίου που ονομάζεται Αριθμός Σειράς. Κάθε τμήμα έχει το δικό του αριθμό σειράς, ο οποίος δηλώνει σε ποια θέση πρέπει να μπει το συγκεκριμένο τμήμα μαζί με τα υπόλοιπα για να δημιουργηθεί ξανά το αρχικό πακέτο.
TCP Επικεφαλίδα (Header) Η επικεφαλίδα περιέχει αρκετά πεδία, αλλά τα σημαντικότερα είναι: Ο Αριθμός Σειράς ή Sequence Number Ο Αριθμός Επιβεβαίωσης ή Acknowledgment number Το Παράθυρο ή Window Size Οι Θύρες (ports) TCP αφετηρίας και προορισμού
Λειτουργία θυρών TCP
Θύρες TCP (Ports) Ένας ορισμός για τη θύρα TCP είναι ότι αποτελεί έναν αριθμό που χαρακτηρίζει μέσα στο μηχάνημα του αποστολέα (ή του παραλήπτη) την ίδια την εφαρμογή που πρόκειται να λάβει τα δεδομένα του συγκεκριμένου TCP τμήματος. Πιο συγκεκριμένα, ένα TCP τμήμα που λαμβάνεται σαν τμήμα μιας μετάδοσης δεν ξέρει σε ποια εφαρμογή να κατευθυνθεί. Για το λόγο αυτό κάθε τμήμα περιέχει μέσα του έναν αριθμό θύρας που θα το κατευθύνει στην εφαρμογή για την οποία προορίζεται.
User Datagram Protocol (UDP) Υπάρχουν εφαρμογές που ένα πιο απλό πρωτόκολλο θα μας εξυπηρετούσε καλύτερα. Εφαρμογές που τα μηνύματα τους χωράνε κάθε φορά σε ένα μόνο τμήμα. Εφαρμογές που δεν έχει σημασία αν χαθούν κάποια δεδομένα στη μετάδοση ή δεν έχει νόημα η επαναμετάδοση τους: π.χ. σε εφαρμογές φωνής δεν έχει νόημα να μεταδώσουμε ξανά δεδομένα που χάθηκαν, μας ενδιαφέρει ωστόσο η μετάδοση να προχωράει όσο το δυνατόν πιο γρήγορα και χωρίς καθυστερήσεις. Γενικότερα, εφαρμογές που έχει περισσότερη σημασία να μπορούμε να μεταδώσουμε με τις μικρότερες δυνατές καθυστερήσεις και μεγαλύτερη ταχύτητα παρά με ακρίβεια και αξιοπιστία.
Χαρακτηριστικά UDP Δεν διαθέτει τεμαχισμό, για το λόγο αυτό κάθε μήνυμα που μεταδίδεται από μια εφαρμογή μέσω UDP πρέπει να χωράει εξ ολοκλήρου σε ένα τμήμα UDP. Είναι πρωτόκολλο αυτοδύναμου πακέτου χωρίς σύνδεση: Η αποστολή ξεκινάει αμέσως χωρίς να γίνει επικοινωνία με την άλλη μεριά. Δεν έχει έτσι επιπλέον καθυστερήσεις. Δεν διαθέτει έλεγχο λαθών. Δεν κάνει επαναμετάδοση δεδομένων και δεν κρατάει αντίγραφο των δεδομένων που στάλθηκαν για επιβεβαίωση. Δεν εξασφαλίζει επίσης ότι τα τμήματα θα φτάσουν στον προορισμό τους με τη σωστή σειρά. Αν μια εφαρμογή που χρησιμοποιεί UDP χρειάζεται να εξασφαλίσει ότι τα δεδομένα της δεν έχουν επηρεαστεί από τα παραπάνω προβλήματα, θα πρέπει να τα ελέγξει η ίδια.
UDP Θύρες (Ports) Όπως και με το πρωτόκολλο TCP, το UDP χρησιμοποιεί θύρες (ports), τα UDP ports. Η χρήση τους είναι ακριβώς ίδια με του πρωτοκόλλου TCP και προσδιορίζονται από ένα ακέραιο αριθμό 16 bits (παίρνουν δηλ. τιμές από 0 65535). Ο αριθμός αυτός γράφεται στην επικεφαλίδα του UDP τμήματος. Το κάθε UDP τμήμα αποτελείται από δύο βασικά κομμάτια, την επικεφαλίδα και τα δεδομένα.
Επικοινωνία στο UDP Σε συγκεκριμένα UDP ports έχουν ανατεθεί συγκεκριμένες εφαρμογές που εκτελούνται από τους εξυπηρετητές. Η ανάθεση των UDP ports γίνεται από το λειτουργικό σύστημα. Για παράδειγμα, ο εξυπηρετητής DNS (μετατρέπει τα φιλικά προς το χρήστη ονόματα όπως www.sch.gr σε διευθύνσεις IP π.χ. 194.63.238.40) χρησιμοποιεί τη θύρα UDP 53 για να λαμβάνει αιτήματα. Στο πρωτόκολλο SNMP (Απλό Πρωτόκολλο Διαχείρισης Δικτύου) χρησιμοποιείται η θύρα 161. Από τη μεριά του πελάτη επιλέγεται (όπως και στο TCP) μια τυχαία θύρα.