|
||
Κεφάλαιο 3
Τι είναι τα πρωτόκολλα επικοινωνίας
Για να μπορέσουν δύο οι περισσότεροι σταθμοί εργασίας (workstations) να επικοινωνήσουν μεταξύ τους πέραν της φυσικής τους διασυνδέσεως (είτε αυτή είναι απευθείας με κάποιο Ethernet καλώδιο είτε σε ένα δίκτυο) είναι απαραίτητο να ακολουθηθούν κάποιες συγκεκριμένες διαδικασίες. Για παράδειγμα, ο σταθμός - πηγή πρέπει να ενεργοποιήσει μια απευθείας επικοινωνιακή σύνδεση ή να πληροφορήσει το δίκτυο, για το ποιος είναι ο σταθμός με τον οποίο θέλει να επικοινωνήσει, ώστε να αποκατασταθεί η σχετική σύνδεση. Επίσης ο σταθμός - πηγή πρέπει ακόμη και να γνωρίζει πότε ο σταθμός προορισμού μπορεί να λάβει δεδομένα. Κλείνοντας, κάθε σταθμός πρέπει να είναι σε θέση να γνωρίζει αν τα δεδομένα που έστειλε στάλθηκαν στον δέκτη ή αν χάθηκαν κατά την διάρκεια της μετάδοσης.
Μοντέλο αναφοράς OSI
Ενώ τα πρωτόκολλα επικοινωνίας αναφέρονται στους κανόνες που πρέπει να ακολουθεί ένα δίκτυο προκειμένου να επιτευχθεί η αποστολή και η λήψη δεδομένων μεταξύ των κόμβων. Τα πρωτόκολλα αυτά έχουν διάφορες κατηγορίες και λειτουργούν σε διάφορα επίπεδα μοντέλων επικοινωνίας. Το καθιερωμένο πλέον μοντέλο επικοινωνίας είναι το TCP/IP το οποίο αποτελεί τον «απόγονο» του μοντέλου αναφοράς OSI (Open Systems Interconnection). Θα επικεντρωθούμε αργότερα στο μοντέλο επικοινωνίας TCP/IP προς το παρών θα κάνουμε μια μικρή αναφορά στο μοντέλο OSI. Το μοντέλο αναφοράς Ανοικτής Διασύνδεσης Συστημάτων, ή μοντέλο αναφοράς OSI (OSI reference model) είναι μια διαστρωματωμένη, αφηρημένη περιγραφή για τη σχεδίαση τηλεπικοινωνιακών και δικτυακών πρωτοκόλλων η οποία καθορίστηκε από την πρωτοβουλία Ανοικτή Διασύνδεση Συστημάτων - OSI. Είναι επίσης γνωστό και ως μοντέλο των επτά επιπέδων (καθότι αποτελείται από 7 επίπεδα). Το μοντέλο OSI υποδιαιρεί τις λειτουργίες ενός δικτύου σε μια «κατακόρυφη» στοίβα από επίπεδα. Σε κάθε επίπεδο του OSI έχουν οριστεί συγκεκριμένα πρωτόκολλα τα οποία το εκάστοτε επίπεδο αξιοποιεί τις λειτουργίες αυτές που παρέχει το κάθε πρωτόκολλο. Συνήθως τα επίπεδα αυτά είναι αυστηρά διαχωρισμένα μεταξύ τους, αξιοποιούν τις υπηρεσίες του κατώτερου επιπέδου τους προσφέροντας τις υπηρεσίες τους στο ανώτερο τους, αλλά το καθένα δεν παρεμβαίνει στις λειτουργίες του άλλου· πιθανόν να μη γνωρίζει καν γι' αυτές. Αυτός ο λογικός διαχωρισμός των επιπέδων διευκολύνει πολύ τη μελέτη της συμπεριφοράς των πρωτοκόλλων και επιτρέπει τη σχεδίαση πολύπλοκων και αξιόπιστων στοιβών πρωτοκόλλων. Ορισμένες φορές όμως αυτή η αρχή ανεξαρτησίας των επιπέδων παραβιάζεται, για λόγους βελτιστοποίησης της απόδοσης ή αύξησης της λειτουργικότητας, με πρωτόκολλα διαφορετικών επιπέδων να συγχωνεύονται ή να παρεμβαίνουν το ένα στη λειτουργία του άλλου. Ο λόγος που ξεκινάμε πρώτα με το OSI είναι διότι προσφέρει καλύτερη σαφήνεια όσον αφορά τα δύο τελευταία επίπεδα, δηλαδή το επίπεδο ζεύξης και το φυσικό επίπεδο σε σχέση με το TCP/IP που απλά αυτά τα δύο τελευταία επίπεδα τα «βλέπει» ως ένα ενιαίο επίπεδο (Επίπεδο πρόσβασης δικτύου). Το μοντέλο αναφοράς OSI δεν χρησιμοποιείται πλέον και έχει αντικατασταθεί από το TCP/IP. Η κύρια χρήση του μοντέλου αναφοράς OSI είναι περισσότερο για εκπαιδευτικούς σκοπούς. Το μοντέλο αναφοράς OSI όπως αναφέραμε και στην προηγούμενες διαφάνειες αλλά και στα προηγούμενα μαθήματα, αποτελείται από 7 επίπεδα τα οποία είναι το επίπεδο εφαρμογής, επίπεδο παρουσίασης, επίπεδο συνόδου, επίπεδο μεταφοράς, επίπεδο δικτύου, επίπεδο ζεύξης και τέλος το φυσικό επίπεδο. ![]() Μοντέλο αναφοράς OSI και αντιστοίχιση του κάθε επίπεδου του στο TCP/IP ![]() Μοντέλο αναφοράς OSI (διαχώριση: μονάδα δεδομένων, επίπεδο και λειτουργία) ![]() Μοντέλο αναφοράς OSI (διαχώριση: αναπαράσταση λειτουργίας ανά επίπεδο) Όπως αναφέραμε παραπάνω το μοντέλο αναφοράς OSI αποτελείται από 7 επίπεδα και χωρίζονται σε δύο ομάδες. Τα πρώτα τρία επίπεδα (εφαρμογής, παρουσίασης και συνόδου) ορίζουν το πως θα επικοινωνούν οι διάφορες εφαρμογές μεταξύ τους σε ένα τερματικό. Τα υπόλοιπα 4 επίπεδα που είναι στο τέλος (μεταφοράς, δικτύου, ζεύξης και φυσικού επιπέδου) ορίζουν πως τα δεδομένα θα μεταφερθούν από την μία άκρη στην άλλη ![]() Μοντέλο αναφοράς OSI και οι λειτουργίες του ανά επίπεδο
Μοντέλο αναφοράς OSI: Λειτουργίες που αναλαμβάνουν τα διάφορα επίπεδα
Φυσικό επίπεδο (Physical Layer): Το φυσικό επίπεδο είναι υπεύθυνο για την μετατροπή ενός πλαισίου (επίπεδο ζεύξης) σε ηλεκτρικά σήματα προκειμένου να μεταδοθούν μέσω του δικτύου. Το πραγματικό φυσικό δίκτυο μπορεί να περιλαμβάνει καλώδια χαλκού, οπτικές ίνες, ραδιοσήματα που μεταδίδονται ασύρματα, ή οποιοδήποτε άλλο μέσο το οποίο μπορεί να μεταφέρει σήματα. Αυτό το επίπεδο παρέχει επίσης στην συσκευή λήψης μια μέθοδο επαλήθευσης δεδομένων. Με απλά λόγια ότι τα δεδομένα δεν έχουν αλλοιωθεί κατά την μετάδοση κοκ. Στο πρότυπο επικοινωνίας TCP/IP οι λειτουργίες αυτού του επίπεδου έχουν αντιστοιχηθεί στο επίπεδο πρόσβασης δικτύου (Network Access Layer). Επίπεδο Ζεύξης (Data-Link layer): Στόχος αυτού του επιπέδου είναι να παρέχει υπηρεσίες στο αμέσως επόμενο επίπεδο (δηλαδή προς το επίπεδο δικτύου), αξιοποιώντας τις υπηρεσίες του φυσικού επιπέδου. Το επίπεδο ζεύξης καθορίζεται από πρωτόκολλα τα οποία αναλαμβάνουν να ρυθμίσουν τη μετάδοση δεδομένων που διέρχεται από ένα φυσικό μέσο μετάδοσης (π.χ. οπτική ίνα, χάλκινα σύρματα κλπ). Ασχολείται με την τοπική παράδοση πλαισίων (frames) μεταξύ συσκευών στο ίδιο τοπικό δίκτυο. Στο επίπεδο αυτό προστίθεται μια επικεφαλίδα ζεύξης στο προς μετάδοση πακέτο η οποία προσδιορίζει την MAC διεύθυνση πηγής και προορισμού. Μια φυσική διεύθυνση MAC (Media Access Control), είναι ένα μοναδικό σύνολο από αριθμούς που αποδίδεται από τον κατασκευαστή της κάρτας δικτύου. Μια MAC διεύθυνση είναι μοναδική για κάθε κάρτα δικτύου. Μια διεύθυνση MAC αποτελείται από έξι σύνολα των δύο χαρακτήρων, που ο καθένας χωρίζεται από μια διπλή τελεία. Το 00:1B:44:11:3A:B7 είναι ένα παράδειγμα μιας MAC διεύθυνσης. Εδώ δημιουργείται ένα ερώτημα τι είναι μια MAC διεύθυνση ;;;
![]() Παράδειγμα LAN δικτύου και οι MAC διευθύνσεις τους στην κάρτα δικτύου τους
Επίπεδο Δικτύου (Network Layer): Το επίπεδο δικτύου (Network Layer) είναι υπεύθυνο για την μετακίνηση πακέτων επιπέδου δικτύου, που είναι γνωστά ως IP πακέτα (IP packets) από έναν υπολογιστή προς έναν άλλο. Το πρωτόκολλο επιπέδου μεταφοράς (TCP ή UDP) σε έναν υπολογιστή προέλευσης μεταβιβάζει ένα τμήμα (segment) επιπέδου μεταφοράς και μια διεύθυνση προορισμού στο επίπεδο δικτύου. Στην συνέχεια το επίπεδο δικτύου αναλαμβάνει την παράδοση του τμήματος (segment) στον παραλήπτη. Το επίπεδο δικτύου περιλαμβάνει το πολύ γνωστό πρωτόκολλο IP (Internet protocol) το οποίο ορίζει τα πεδία ενός IP πακέτου (IP packet) καθώς και το πώς τα τερματικά συστήματα και οι δρομολογητές ενεργούν σε αυτά τα πεδία. Το επίπεδο δικτύου παρέχει επίσης πολλά πρωτόκολλα δρομολόγησης (π.χ. RIP, ΒGP, OSPF κλπ) τα οποία καθορίζουν δυναμικά τις διαδρομές που ακολουθούν τα IP πακέτα απ' την πηγή στον προορισμό.
00000001 00000010 00000011 00000100 . . . 11111111
Oι IP διευθύνσεις αντιστοιχούνται με συμβολικά ονόματα τα οποία λέγονται domain names. Ο λόγος αυτός οφείλεται λόγω της δυσκολίας απομνημόνευσης μιας IP διεύθυνση. Για παράδειγμα η IP διεύθυνση 150.160.80.1 μπορεί να αντιστοιχεί στο google.gr Σε αυτό το σημείο ας δούμε την δομή από την οποία αποτελούνται αυτές οι διευθύνσεις.
![]() Εύρος διεύθυνσης IP Ο αριθμός δικτύου (network part) προσδιορίζει το δίκτυο, από τα πολλά που συνθέτουν το διαδίκτυο και εκχωρείται από παγκόσμιους οργανισμούς (π.χ. RIPE,NIC,ARIN κλπ) ενώ ο αριθμός κόμβων (host part) προσδιορίζει τον κόμβο μέσα σε ένα δίκτυο και εκχωρείται από τον τοπικό διαχειριστή του δικτύου. ![]() Αναλυτική απεικόνιση δομής μιας IP διεύθυνσης
Επίπεδο Μεταφοράς (Transport Layer): Τα πρωτόκολλα μεταφοράς δεδομένων TCP και UDP τρέχουν σε τερματικά συστήματα όπου: Ο αποστολέας (δηλαδή η οντότητα που στέλνει τα δεδομένα) χωρίζει τα μηνύματα είτε σε τμήματα - segments (αν η εφαρμογή του χρήστη χρησιμοποιεί το TCP) είτε σε δεδομενογράμματα - datagrams (αν η εφαρμογή του χρήστη χρησιμοποιεί το UDP). Στην συνέχεια αφού τεμαχιστούν τα μηνύματα του επιπέδου εφαρμογής είτε σε segments είτε σε datagrams τα προωθεί στο επίπεδο δικτύου. Ο παραλήπτης (δηλαδή η οντότητα που λαμβάνει τα δεδομένα) παραλαμβάνει αυτά τα πακέτα segment ή datagram, τα επανασυρναμολογεί και τα προωθεί στα ανώτερα επίπεδα.
![]() Παράδειγμα επικοινωνίας πελάτη (client) - διακομιστή (server) Αν θέλουμε να χρησιμοποιήσουμε το πρωτόκολλο HTTP για να δούμε μια ιστοσελίδα θα πρέπει να χρησιμοποιηθεί η TCP θύρα 80 ενώ για μεταφορά αρχείων θα πρέπει να χρησιμοποιηθεί το FTP στην θύρα 21. Για να στείλουμε δεδομένα σε αυτές τις διεργασίες πρέπει να συμπεριλάβουμε την IP διεύθυνση προορισμού. Κάθε διεργασία - εφαρμογή χρησιμοποιεί μια διεπαφή (socket) για επικοινωνία με άλλες διεργασίες. Έστω μια διεργασία Α που εκτελείται στον host A και επιθυμεί να επικοινωνήσει με πολλές διεργασίες του server. Η από-πολυπλεξία είναι η διαδικασία που κάθε διεργασία του server αναγνωρίζει το πρωτόκολλο που θα παρέχει στην διεργασία του host A εξετάζοντας τον αριθμό TCP θύρας.
Επίπεδο Συνόδου (Session Layer): Το επίπεδο συνόδου είναι υπεύθυνο για την εγκαθίδρυση, διαχείριση και τον διαχωρισμό των διαφόρων συνόδων (sessions). Μια εφαρμογή σε έναν υπολογιστή εισάγει, διαγράφει, επεξεργάζεται ή στέλνει δεδομένα στο διαδίκτυο. Προκειμένου να το πετύχει αυτό το επίπεδο συνόδου διατηρεί ένα session για κάθε μια εφαρμογή. Χωρίς την ύπαρξη ξεχωριστών sessions ανά εφαρμογή, τα δεδομένα μεταξύ διαφόρων εφαρμογών που τρέχουν σε έναν υπολογιστή θα μπερδεύονταν με αποτέλεσμα την δημιουργία μιας χαοτικής ή προβληματικής επικοινωνίας. Εν ολίγης η ύπαρξη ξεχωριστών sessions που αναλαμβάνει να αποδώσει στις διάφορες εφαρμογές το επίπεδο συνόδου, μας βοηθάει έτσι ώστε να έχουμε μια ομαλή επικοινωνία και να μπορούμε να χρησιμοποιούμε πολλές εφαρμογές ταυτόχρονα χωρίς να δημιουργείται κάποιο θέμα. Η επικοινωνία μεταξύ διαφόρων hosts προς έναν server χωρίζεται στις εξής κατηγορίες:
Επίπεδο Εφαρμογής (Application Layer): Το επίπεδο εφαρμογής του μοντέλου OSI αποτελεί το σημείο από το οποίο οι διάφοροι χρήστες μπορούν να επικοινωνήσουν μεταξύ τους. Δηλαδή το επίπεδο εφαρμογής αναλαμβάνει την διαδικασία διασύνδεσης της εφαρμογής με το υλικό (hardware) του υπολογιστή. Το επίπεδο εφαρμογής χρησιμοποιείται στις παρακάτω λειτουργίες ενός δικτύου:
Κάποια από τα πρωτόκολλα αυτά είναι το HTTP (για υποστήριξη αίτησης και μεταφοράς εγγράφων του Web), το SMTP (για υποστήριξη μεταφοράς μηνυμάτων ηλεκτρονικού ταχυδρομείου) το FTP (για υποστήριξη μεταφοράς αρχείων ανάμεσα σε δύο τερματικά συστήματα) το DNS (που αναλαμβάνει να αποδώσει ένα domain σε μια IP διεύθυνση) κλπ. ![]() Πρωτόκολλα του επιπέδου εφαρμογής
Εισαγωγή στην τεχνολογία TCP/IP
Παραπάνω αναφέραμε επιγραμματικά το μοντέλο επικοινωνίας TCP/IP ας δούμε όμως συνοπτικά πως αυτό λειτουργεί. Οι διαφορές δεν είναι τεράστιες καθότι το TCP/IP αναπτύχθηκε συγχρόνως με το μοντέλο αναφοράς OSI. Εδώ όμως δημιουργείται ένα ερώτημα, αφού λοιπόν το TCP/IP αναπτύχθηκε συγχρόνως με το OSI ποίος ο λόγος να το αναφέρουμε; Παραπάνω είδαμε ότι το TCP/IP αποτελείται μια στοίβα τεσσάρων επιπέδων (και όχι 7 όπως το OSI) όπου το κάθε επίπεδο περιέχει τα δικά του πρωτόκολλα επικοινωνίας. Οπότε σκοπός της στοίβας TCP/IP είναι η επίτευξη μεταφοράς δεδομένων στο μέσο μετάδοσης. Στην ουσία δεν εφαρμόζει ένα συνδυασμό των δύο πρωτόκολλων (TCP και IP) αλλά αποτελεί ένα σύνολο πολλών πρωτοκόλλων. Ο όρος αυτός δεν περιορίζεται μόνο εκεί αλλά και για την αναφορά σε ομάδες που κάνουν χρήση παρόμοιων πρωτοκόλλων για την επίτευξη επικοινωνίας μεταξύ υπολογιστών. Η ονομασία αυτή προέκυψε εξαιτίας του ότι τα πρωτόκολλα TCP και IP είναι αρκετά δημοφιλή. Χάρης την επαρκή διαθεσιμότητα των εν λόγω πρωτοκόλλων αλλά για την ανάγκη επικράτησης ενός και μόνο κοινού επικοινωνιακού προτύπου οδήγησαν στους παράγοντες που συνέβαλλαν στην επιτυχία τους. Αυτό είχε ως αποτέλεσμα την υιοθέτηση των πρωτοκόλλων TCP/IP από την πλειοψηφία των κατασκευαστών με άμεσο σκοπό την επίτευξη διαλειτουργικότητας μεταξύ συσκευών που προέρχονται από διαφορετικούς κατασκευαστές. Συνεπώς, ένα δίκτυο που αποτελείται από υλικό (hardware) διαφορετικών κατασκευαστών, χαρακτηριστικών αλλά και λειτουργικών συστημάτων μπορούν κάλλιστα να επικοινωνήσουν και να λειτουργήσουν με τα ιδία πρωτόκολλα δικτύου. ![]() Βασικά πρωτόκολλα ανά επίπεδο του πρότυπου επικοινωνίας TCP/IP
Τα επίπεδα του πρότυπου επικοινωνίας TCP/IP και οι λειτουργίες τους συνοπτικά
Επίπεδο Εφαρμογής: Παρέχει εφαρμογές, που χρησιμοποιούν τα πρωτόκολλα του επιπέδου μεταφοράς, όπως μεταφορά αρχείων, απομακρυσμένη σύνδεση και ηλεκτρονικού ταχυδρομείου. Αυτό το επίπεδο αποτελεί το σημείο διεπαφής του χρήστη με τη στοίβα πρωτοκόλλων της τεχνολογίας TCP/IP
Υπάρχει επίσης και το πρωτόκολλο ICMP που είναι υπεύθυνο για τον έλεγχο και τη δημιουργία μηνυμάτων, που δηλώνουν την κατάσταση των συσκευών σε ένα δίκτυο.
Προσφέρει τις υπηρεσίες του στο ανώτερο επίπεδο, το επίπεδο δικτύου. Παρέχει τις φυσικές διευθύνσεις (Physical Address) τις οποίες αντιστοιχεί με λογικές διευθύνσεις (διευθύνσεις internet, IP), χρησιμοποιώντας τα πρωτόκολλα Μετατροπής διευθύνσεων (ARP, Address Resolution Protocol), Ανάστροφης Μετατροπής διευθύνσεων (RARP, Reverse Address Resolution Protocol) και MAC (Media Access Control) του OSI
Συμπέρασμα για το TCP/IP
Η επικράτηση του TCP/IP οφείλεται στους παρακάτω λόγους:
Το πρωτόκολλο TCP/IP έχει σήμερα καθολική αποδοχή. Πριν το TCP/IP συσκευές διαφορετικών κατασκευαστών ή με διαφορετικά λειτουργικά δεν μπορούσαν να επικοινωνήσουν μεταξύ τους. Τουλάχιστον με εύκολο τρόπο
Μειονεκτήματα του TCP/IP
Παρόλο που το TCP/IP έχει επικρατήσει πλήρως στον τομέα των δικτύων αρχίζει σταδιακά να μην ανταποκρίνεται στις σημερινές προσδοκίες. Τα μειονεκτήματα του TCP/IP είναι τα εξής:
![]() Απεικόνιση του Internet στις μέρες μας με βάση το TCP/IP ![]() Απεικόνιση του Internet στις μέρες μας με βάση το TCP/IP
Named Data Networking - NDN
H επιστημονική κοινότητα που ασχολείται με το κομμάτι των δικτύων αποφάσισαν ότι πρέπει να δημιουργηθεί ένα νέο μοντέλο επικοινωνίας που να μην βασίζεται στην απ' άκρο σε άκρο επικοινωνία. Οπότε λοιπόν γι' αυτόν τον λόγο γίνονται προσπάθειες για να υλοποιηθεί το μοντέλο επικοινωνίας NDN. To Named Data Networking - NDN βασίζεται στην εξής προσέγγιση:
Τελευταία ενημέρωση: 22/04/2018 |
||
|
☰ | |