Τι είναι τα πρωτόκολλα επικοινωνίας

Για να μπορέσουν δύο οι περισσότεροι σταθμοί εργασίας (workstations) να επικοινωνήσουν μεταξύ τους πέραν της φυσικής τους διασυνδέσεως (είτε αυτή είναι απευθείας με κάποιο Ethernet καλώδιο είτε σε ένα δίκτυο) είναι απαραίτητο να ακολουθηθούν κάποιες συγκεκριμένες διαδικασίες. Για παράδειγμα, ο σταθμός - πηγή πρέπει να ενεργοποιήσει μια απευθείας επικοινωνιακή σύνδεση ή να πληροφορήσει το δίκτυο, για το ποιος είναι ο σταθμός με τον οποίο θέλει να επικοινωνήσει, ώστε να αποκατασταθεί η σχετική σύνδεση. Επίσης ο σταθμός - πηγή πρέπει ακόμη και να γνωρίζει πότε ο σταθμός προορισμού μπορεί να λάβει δεδομένα. Κλείνοντας, κάθε σταθμός πρέπει να είναι σε θέση να γνωρίζει αν τα δεδομένα που έστειλε στάλθηκαν στον δέκτη ή αν χάθηκαν κατά την διάρκεια της μετάδοσης.


Οπότε λοιπόν συμπεραίνουμε ότι στα δίκτυα υπολογιστών υπάρχει ένα σύνολο κανόνων όπου αυτοί βοηθούν στην ύπαρξη επικοινωνίας μεταξύ των διαφόρων σταθμών εργασίας. Για να το καταλάβουμε καλύτερα ας φανταστούμε ένα ποδοσφαιρικό αγώνα. Σε ένα ποδοσφαιρικό αγώνα πέραν του γηπέδου, παικτών και μπάλας πρέπει να ακολουθηθούν και κάποιοι κανόνες. Πρέπει δηλαδή να υπάρχουν δύο ομάδες από 11 παίκτες η κάθε μια, διάφοροι κανόνες σε περίπτωση που κάποιος παίκτης τραυματίσει έναν άλλο παίκτη (κοινώς φάουλ), η ύπαρξη κανόνων όπως για παράδειγμα ότι ένας παίκτης δεν επιτρέπεται να ακουμπήσει με το χέρι του την μπάλα κοκ. Πέραν των κανόνων που έχει ένα άθλημα χρειάζονται και οι διαιτητές οι οποίοι ελέγχουν την τήρηση αυτών των κανόνων κατά την διάρκεια ενός αγώνα. Συνεπώς όπως και σε ένα αγώνα ποδοσφαίρου η ύπαρξη κανόνων είναι απαραίτητη για την ομαλή διεξαγωγή του έτσι λοιπόν και στα δίκτυα υπολογιστών η ύπαρξη ενός συνόλου από κανόνες καθορίζει την ομαλή επικοινωνία μεταξύ των διαφόρων σταθμών εργασίας.


Αυτό λοιπόν το σύνολο κανόνων που υπάρχει στα δίκτυα υπολογιστών αποτελεί το λεγόμενο πρωτόκολλο επικοινωνίας (communication protocol) η απλά πρωτόκολλο. Οπότε λοιπόν με τον όρο πρωτόκολλο επικοινωνίας αναφερόμαστε σε ένα σύνολο από συμβάσεις που καθορίζουν την ανταλλαγή δεδομένων μεταξύ διαφόρων σταθμών εργασίας. Ένα πρωτόκολλο επίσης αναλαμβάνει να καθορίσει τον τρόπο με τον οποίο θα διακινηθούν τα δεδομένα, την επίτευξη ελέγχων και τον χειρισμό των διαφόρων σφαλμάτων (αν αυτά συμβούν) κοκ. Το διαδίκτυο (internet) δεν είναι ένα απλό δίκτυο, αλλά ένα δίκτυο δικτύων. Χρειάζεται επομένως ένα σύνολο από συμβάσεις που να καθορίζουν το πώς πρέπει να γίνει η ανταλλαγή δεδομένων μεταξύ υπολογιστών διαφορετικού τύπου και που να ανήκουν σε διαφορετικά δίκτυα. Συνεπώς, η ύπαρξη προτύπων επικοινωνίας βοηθά στη συμβατότητα ανάμεσα στους κατασκευαστές υλικού (hardware) και λογισμικού (software).


Μοντέλο αναφοράς 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 διεύθυνση ;;;

  • Όπως αναφέραμε προηγουμένως στην πραγματικότητα ένας κόμβος (δηλαδή ένας υπολογιστής ή ένας δρομολογητής) δεν έχει μια φυσική διεύθυνση MAC (διεύθυνση επιπέδου ζεύξης) αλλά ένας προσαρμογέας που λέγεται κάρτα δικτύου
  • Αυτή λοιπόν η κάρτα τοποθετείται απάνω στην μητρική πλακέτα ενός κόμβου.
  • Μια φυσική διεύθυνση MAC έχει μήκος 6 byte, έτσι έχουμε 248 πιθανές διευθύνσεις MAC. Αυτές οι διευθύνσεις εκφράζονται ως ένα ζεύγος δεκαεξαδικών αριθμών και κάθε προσαρμογέας έχει μια μοναδική MAC διεύθυνση.


  • Παράδειγμα LAN δικτύου και οι MAC διευθύνσεις τους στην κάρτα δικτύου τους


  • To ΙΕΕΕ (Institute of Electrical and Electronic Engineers) διαχειρίζεται τον χώρο των φυσικών διευθύνσεων MAC. Συγκεκριμένα όταν μια εταιρία θέλει να κατασκευάσει προσαρμογείς αγοράζει έναντι ενός μικρού ποσού, μια ομάδα χώρου διευθύνσεων που αποτελείται από 224 διευθύνσεις.
  • Το IEEE δεσμεύει την ομάδα διευθύνσεων κρατώντας σταθερά τα πρώτα 24 bit μιας φυσικής διεύθυνσης επιτρέποντας έτσι στην εταιρία να δημιουργήσει μοναδικούς συνδυασμούς των τελευταίων 24 bit για κάθε προσαρμογέα.
  • Η διεύθυνση MAC ενός προσαρμογέα έχει επίπεδη δομή και δεν αλλάζει άσχετα με το που μεταφέρεται ο προσαρμογέας.
  • Για παράδειγμα ένας φορητός υπολογιστής με μια κάρτα δικτύου έχει πάντα την ίδια φυσική διεύθυνση MAC ανεξάρτητα από το που πηγαίνει.
  • Σε αντίθεση με την MAC διεύθυνση η IP διεύθυνση (που θα δούμε στο επίπεδο δικτύου) έχει ιεραρχική δομή. Δηλαδή η IP διεύθυνση πάντα αλλάζει ακόμα κι όταν ο υπολογιστής δεν μετακινείται. Η MAC διεύθυνση σε κάθε hop αλλάζει ενώ η IP διεύθυνση παραμένει ίδια εκτός αν βρει NAT δρομολογητή. Στο πρότυπο επικοινωνίας TCP/IP οι λειτουργίες αυτού του επίπεδου έχουν αντιστοιχηθεί στο επίπεδο πρόσβασης δικτύου (Network Access Layer).

Επίπεδο Δικτύου (Network Layer): Το επίπεδο δικτύου (Network Layer) είναι υπεύθυνο για την μετακίνηση πακέτων επιπέδου δικτύου, που είναι γνωστά ως IP πακέτα (IP packets) από έναν υπολογιστή προς έναν άλλο. Το πρωτόκολλο επιπέδου μεταφοράς (TCP ή UDP) σε έναν υπολογιστή προέλευσης μεταβιβάζει ένα τμήμα (segment) επιπέδου μεταφοράς και μια διεύθυνση προορισμού στο επίπεδο δικτύου. Στην συνέχεια το επίπεδο δικτύου αναλαμβάνει την παράδοση του τμήματος (segment) στον παραλήπτη. Το επίπεδο δικτύου περιλαμβάνει το πολύ γνωστό πρωτόκολλο IP (Internet protocol) το οποίο ορίζει τα πεδία ενός IP πακέτου (IP packet) καθώς και το πώς τα τερματικά συστήματα και οι δρομολογητές ενεργούν σε αυτά τα πεδία. Το επίπεδο δικτύου παρέχει επίσης πολλά πρωτόκολλα δρομολόγησης (π.χ. RIP, ΒGP, OSPF κλπ) τα οποία καθορίζουν δυναμικά τις διαδρομές που ακολουθούν τα IP πακέτα απ' την πηγή στον προορισμό.
Με λίγα λόγια στο μοντέλο αναφοράς OSI το επίπεδο δικτύου είναι σε θέση να γνωρίζει τις διευθύνσεις των γειτονικών κόμβων σε ένα δίκτυο. Στα πακέτα αποδίδονται οι έγκυρες IP διευθύνσεις, επιλέγονται οι διαδρομές τους, η ποιότητα υπηρεσιών (QoS) και πραγματοποιείται η αναγνώριση και η προώθηση των εισερχόμενων μηνυμάτων (TCP ή UDP) του επιπέδου μεταφοράς. Σε αυτό το επίπεδο προστίθεται η επικεφαλίδα δικτύου η οποία καθορίζει την IP διεύθυνση πηγής και προορισμού.

  • Το διαδίκτυο (internet) όπως αναφέραμε και παραπάνω είναι ένα δίκτυο δικτύων που αποτελείται από πολλά δίκτυα υπολογιστών όπου καθένα αποτελείται από κόμβους (π.χ. κόμβος μπορεί να θεωρηθεί ένας προσωπικός υπολογιστής).
  • Για κάθε κόμβο που είναι συνδεδεμένος στο διαδίκτυο εκχωρείται ένας μοναδικός αριθμός που είναι γνωστός ως IP διεύθυνση και το κάθε IP πακέτο (IP packet) θα πρέπει να διαθέτει με την σειρά του μια μοναδική διεύθυνση προορισμού για να μπορέσει να δρομολογηθεί προς έναν άλλον υπολογιστή.
  • Η διεύθυνση αυτή αποτελείται από 4 ακέραιους αριθμούς χωρισμένους με τελεία και σε κάθε υπολογιστή αποδίδεται μια ξεχωριστή μοναδική IP διεύθυνση.
  • Έτσι, ο κάθε υπολογιστής θα πρέπει να διαθέτει μια και μόνο μοναδική διεύθυνση. Σε αυτό το σημείο όμως πρέπει να αναφέρουμε ότι η IP διεύθυνση ακολουθεί ιεραρχική δομή.
  • Δηλαδή σε αντίθεση με την MAC μια IP διεύθυνση αλλάζει κάθε φορά που συνδεόμαστε στο διαδίκτυο και δεν παραμένει η ίδια. Οι πιθανοί αριθμοί μιας IP διεύθυνσης έχουν εύρος από 0 που είναι το ελάχιστο έως και το 255 που είναι το μέγιστο.
  • Για παράδειγμα το σύνολο των αριθμών 193.106.1.51 αποτελεί μια IP διεύθυνση. Στο μοντέλο επικοινωνίας TCP/IP χρησιμοποιείται διευθυνσιοδότηση (addressing) μήκους 32 bits. Στους υπολογιστές, όπως γνωρίζουμε πολύ καλά ένα byte αντιστοιχείται με 8 bits οπότε το μοντέλο επικοινωνίας TCP/IP χρησιμοποιεί 4 bytes. Ένα byte μπορεί να περιέχει 256 διαφορετικές τιμές, που προκύπτουν από τις επαναληπτικές διατάξεις των 2 πραγμάτων ανά 8, δηλαδή το συνολικό πλήθος τιμών 28 = 256.
  • Οι αριθμοί αυτοί είναι οι εξής:

  • 00000000
    00000001
    00000010
    00000011
    00000100
    .
    .
    .
    11111111

Oι IP διευθύνσεις αντιστοιχούνται με συμβολικά ονόματα τα οποία λέγονται domain names. Ο λόγος αυτός οφείλεται λόγω της δυσκολίας απομνημόνευσης μιας IP διεύθυνση. Για παράδειγμα η IP διεύθυνση 150.160.80.1 μπορεί να αντιστοιχεί στο google.gr Σε αυτό το σημείο ας δούμε την δομή από την οποία αποτελούνται αυτές οι διευθύνσεις.
Μια διεύθυνση IP χωρίζεται σε δύο κομμάτια το network part όπου είναι το μέρος που αφορά το δίκτυο και το host part όπου είναι το μέρος που αφορά των αριθμό των hosts σε ένα δίκτυο (δηλαδή το πόσες υπολογιστικές συσκευές μπορούν να συνδεθούν πάνω σε αυτό).



Εύρος διεύθυνσης IP


Ο αριθμός δικτύου (network part) προσδιορίζει το δίκτυο, από τα πολλά που συνθέτουν το διαδίκτυο και εκχωρείται από παγκόσμιους οργανισμούς (π.χ. RIPE,NIC,ARIN κλπ) ενώ ο αριθμός κόμβων (host part) προσδιορίζει τον κόμβο μέσα σε ένα δίκτυο και εκχωρείται από τον τοπικό διαχειριστή του δικτύου.



Αναλυτική απεικόνιση δομής μιας IP διεύθυνσης


Επίπεδο Μεταφοράς (Transport Layer): Τα πρωτόκολλα μεταφοράς δεδομένων TCP και UDP τρέχουν σε τερματικά συστήματα όπου: Ο αποστολέας (δηλαδή η οντότητα που στέλνει τα δεδομένα) χωρίζει τα μηνύματα είτε σε τμήματα - segments (αν η εφαρμογή του χρήστη χρησιμοποιεί το TCP) είτε σε δεδομενογράμματα - datagrams (αν η εφαρμογή του χρήστη χρησιμοποιεί το UDP). Στην συνέχεια αφού τεμαχιστούν τα μηνύματα του επιπέδου εφαρμογής είτε σε segments είτε σε datagrams τα προωθεί στο επίπεδο δικτύου. Ο παραλήπτης (δηλαδή η οντότητα που λαμβάνει τα δεδομένα) παραλαμβάνει αυτά τα πακέτα segment ή datagram, τα επανασυρναμολογεί και τα προωθεί στα ανώτερα επίπεδα.

Τα πρωτόκολλα του επιπέδου μεταφοράς παρέχουν την δυνατότητα λογικής επικοινωνίας (logical communication) ανάμεσα σε διεργασίες εφαρμογών που εκτελούνται σε διαφορετικούς υπολογιστές. Οι διεργασίες εφαρμογών χρησιμοποιούν την λογική επικοινωνία που παρέχεται στο επίπεδο μεταφοράς για να ανταλλάξουν μηνύματα μεταξύ τους χωρίς να ασχολούνται με τις λεπτομέρειες της φυσικής υποδομής που χρησιμοποιείται για την μεταφορά αυτών των μηνυμάτων.

Σε αυτό το σημείο ας κάνουμε μια μικρή παρατήρηση στο επίπεδο δικτύου. Το επίπεδο δικτύου επιτυγχάνει «επικοινωνία» μεταξύ hosts και το πρωτόκολλο IP δεν εγγυάται αξιόπιστη μεταφορά των πακέτων. Όταν αναφερόμαστε σε μη αξιόπιστη μετάδοση εννοούμε ότι δεν υπάρχει εγγύηση αν ο παραλήπτης θα λάβει τα πακέτα με την σειρά που στάλθηκαν ούτε ότι δεν θα υπάρξουν σφάλματα bits σε αυτά. Σε αυτό το επίπεδο προστίθεται η επικεφαλίδα μεταφοράς στο προς μετάδοση πακέτο το οποίο περιέχει την TCP διεύθυνση πηγής και προορισμού.


  • Το πρωτόκολλο TCP παρέχει μια υπηρεσία που ονομάζεται πολύπλεξη. Oι αλγόριθμοι δρομολόγησης παραδίδουν το κάθε πακέτο από κόμβο σε κόμβο έως ότου αυτό φτάσει στον τελικό προορισμό. Το πρωτόκολλο TCP επεκτείνει αυτήν την διαδικασία από διεργασία σε διεργασία σε κάθε κόμβο.

  • Για παράδειγμα ένας server μπορεί να παρέχει πολλές υπηρεσίες όπως για παράδειγμα το FTP, HTTP κλπ. Οι αριθμοί θυρών επικοινωνίας TCP μας δίνουν την δυνατότητα επιλογής αυτών των υπηρεσιών.

  • Ας πάρουμε για παράδειγμα το παρακάτω δίκτυο:



Παράδειγμα επικοινωνίας πελάτη (client) - διακομιστή (server)


Αν θέλουμε να χρησιμοποιήσουμε το πρωτόκολλο HTTP για να δούμε μια ιστοσελίδα θα πρέπει να χρησιμοποιηθεί η TCP θύρα 80 ενώ για μεταφορά αρχείων θα πρέπει να χρησιμοποιηθεί το FTP στην θύρα 21. Για να στείλουμε δεδομένα σε αυτές τις διεργασίες πρέπει να συμπεριλάβουμε την IP διεύθυνση προορισμού. Κάθε διεργασία - εφαρμογή χρησιμοποιεί μια διεπαφή (socket) για επικοινωνία με άλλες διεργασίες. Έστω μια διεργασία Α που εκτελείται στον host A και επιθυμεί να επικοινωνήσει με πολλές διεργασίες του server. Η από-πολυπλεξία είναι η διαδικασία που κάθε διεργασία του server αναγνωρίζει το πρωτόκολλο που θα παρέχει στην διεργασία του host A εξετάζοντας τον αριθμό TCP θύρας.


Επίπεδο Συνόδου (Session Layer): Το επίπεδο συνόδου είναι υπεύθυνο για την εγκαθίδρυση, διαχείριση και τον διαχωρισμό των διαφόρων συνόδων (sessions). Μια εφαρμογή σε έναν υπολογιστή εισάγει, διαγράφει, επεξεργάζεται ή στέλνει δεδομένα στο διαδίκτυο. Προκειμένου να το πετύχει αυτό το επίπεδο συνόδου διατηρεί ένα session για κάθε μια εφαρμογή. Χωρίς την ύπαρξη ξεχωριστών sessions ανά εφαρμογή, τα δεδομένα μεταξύ διαφόρων εφαρμογών που τρέχουν σε έναν υπολογιστή θα μπερδεύονταν με αποτέλεσμα την δημιουργία μιας χαοτικής ή προβληματικής επικοινωνίας. Εν ολίγης η ύπαρξη ξεχωριστών sessions που αναλαμβάνει να αποδώσει στις διάφορες εφαρμογές το επίπεδο συνόδου, μας βοηθάει έτσι ώστε να έχουμε μια ομαλή επικοινωνία και να μπορούμε να χρησιμοποιούμε πολλές εφαρμογές ταυτόχρονα χωρίς να δημιουργείται κάποιο θέμα. Η επικοινωνία μεταξύ διαφόρων hosts προς έναν server χωρίζεται στις εξής κατηγορίες:

  1. Simplex: Η επικοινωνία αυτή είναι μονόδρομη (one-way communication). Δηλαδή ένας υπολογιστής (host) μπορεί μόνο να στείλει δεδομένα σε έναν διακομιστή (server) και δεν περιμένει κάποια απάντηση.

  2. Half Duplex: Επικοινωνία που χρησιμοποιεί δύο οντότητες (two-way communication) για την αποστολή δεδομένων. Δηλαδή ένας υπολογιστής (host) στέλνει δεδομένα σε έναν διακομιστή (server) και στην συνέχεια ο δεύτερος είναι υποχρεωμένος να στείλει μια απάντηση στον πρώτο. Στην Half Duplex επικοινωνία δεν υπάρχει ταυτόχρονη αποστολή δεδομένων. Όταν ο υπολογιστής στέλνει δεδομένα στο μέσο μεταφοράς δεν μπορεί ταυτόχρονα την ίδια χρονική στιγμή να στείλει κι ο sever. Πρέπει να περιμένει την απάντηση από τον υπολογιστή και μετά να στείλει δεδομένα. Εν ολίγης στην Half Duplex επικοινωνία έχουμε διμερής επικοινωνία όχι όμως ταυτόχρονη αποστολή δεδομένων προς το μέσο μεταφοράς.

  3. Full Duplex: Επικοινωνία που αφορά πολλές οντότητες. Είναι εν ολίγης είναι επικοινωνία πραγματικού χρόνου, όπου κάθε κόμβος μπορεί να στείλει και να λάβει δεδομένα από έναν άλλον κόμβο την ίδια χρονική στιγμή ανεξάρτητα αν αποστέλλονται δεδομένα στο μέσο επικοινωνίας από άλλους κόμβους. Δηλαδή όπως κάνουμε κουβέντα σε έναν χώρο συνεδρίασης ή σε μια καφετέρια όπου πολλά άτομα μιλάνε μαζί ή και ταυτόχρονα.


Στο πρότυπο επικοινωνίας TCP/IP οι λειτουργίες αυτού του επίπεδου έχουν αντιστοιχηθεί στο επίπεδο εφαρμογής.


Επίπεδο Παρουσίασης (Presentation Layer): Το επίπεδο αυτό όπως μαρτυράει και το όνομα του αναλαμβάνει έναν βασικό σκοπό, να παρουσιάσει τα δεδομένα στο επίπεδο Εφαρμογής και για να το κάνει αυτό χρησιμοποιεί μηχανισμούς μετάφρασης των δεδομένων - data translation (μετάφραση δηλαδή από καθαρά bits σε κάτι που είναι ευανάγνωστο ως προς τον χρήστη) και τεχνικές κωδικοποίησης - code formatting (για υποστήριξη διαφορετικών κωδικοποιήσεων). Εν ολίγης αυτό το επίπεδο βοηθάει έτσι ώστε τα δεδομένα να αποκτήσουν το κλασσικό standard format που είχαν τα δεδομένα πριν αποσταλούν από τον αποστολέα. Επειδή προφανώς δεν μπορούμε να στείλουμε ένα αρχείο στο διαδίκτυο όπως είναι αυτό πρέπει να μεταφραστεί σε μια γλώσσα που καταλαβαίνει το διαδίκτυο η οποία είναι τα κλασσικά bits (0 και 1). Σκεφτείτε το ως τον μεταφραστή μεταξύ του χρήστη ενός host και του υλικού (hardware) ή και του διαδικτύου (Internet). Στο πρότυπο επικοινωνίας TCP/IP οι λειτουργίες αυτού του επίπεδου έχουν αντιστοιχηθεί στο επίπεδο εφαρμογής.


Επίπεδο Εφαρμογής (Application Layer): Το επίπεδο εφαρμογής του μοντέλου OSI αποτελεί το σημείο από το οποίο οι διάφοροι χρήστες μπορούν να επικοινωνήσουν μεταξύ τους. Δηλαδή το επίπεδο εφαρμογής αναλαμβάνει την διαδικασία διασύνδεσης της εφαρμογής με το υλικό (hardware) του υπολογιστή. Το επίπεδο εφαρμογής χρησιμοποιείται στις παρακάτω λειτουργίες ενός δικτύου:

  1. Μεταφορά αρχείων (file transfer)
  2. Μεταφορά αρχείων (file transfer)
  3. Απομακρυσμένη πρόσβαση (remote access)
  4. Σε διεργασίες που χρησιμοποιούν το μοντέλο πελάτη - εξυπηρετητή (client - server)
  5. Σε υπηρεσίες ενημέρωσης φυσικής τοποθεσίας (Location Information)

Κάποια από τα πρωτόκολλα αυτά είναι το 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


Επίπεδο Μεταφοράς: Υλοποιεί τις συνδέσεις μεταξύ των υπολογιστών συσκευών σε ένα δίκτυο. Το βασικό πρωτόκολλο του είναι το TCP, που:

  • Φροντίζει για τον εντοπισμό πιθανών σφαλμάτων (π.χ. αν χαθεί ένα πακέτο κατά την διαδρομή του) και επίλυσης αυτών με αναμετάδοση των δεδομένων που χάθηκαν (αξιόπιστες συνδέσεις).

  • Επιτρέπει την ταυτόχρονη εγκατάσταση συνδέσεων και στέλνει τα δεδομένα της κάθε σύνδεσης ταυτόχρονα, αλλά ανεξάρτητα από τις άλλες συνδέσεις (ταυτόχρονες συνδέσεις). Δηλαδή κάθε σύνδεση μπορεί να στέλνει, αλλά και να λαμβάνει δεδομένα (διμερής συνδέσεις)


Επίσης υπάρχει και το πρωτόκολλο UDP όπου είναι πρωτόκολλο χωρίς σύνδεση και χρησιμοποιείται για ειδικούς σκοπούς όπως για εφαρμογές που δεν απαιτούν τεχνικές αξιόπιστης μεταφοράς δεδομένων (π.χ. videos στο youtube).


Επίπεδο Δικτύου: Αναλαμβάνει την μετάδοση και δρομολόγηση των TCP ή UDP πακέτων στο δίκτυο. Το βασικό πρωτόκολλο του είναι το IP, που:

  • Εξασφαλίζει στο σύστημα την παγκόσμια συνδεσιμότητα
  • Φροντίζει για την παροχή λογικών διευθύνσεων (κοινώς 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 είναι τα εξής:

  • Το πρώτο και σημαντικότερο μειονέκτημα είναι η απ' άκρο σε άκρο επικοινωνία
  • Το δεύτερο μειονέκτημα είναι ότι βασίζεται σε μια αρχιτεκτονική πελάτη - εξυπηρετητή
  • Δεν έχουμε multicasting


Απεικόνιση του Internet στις μέρες μας με βάση το TCP/IP




Απεικόνιση του Internet στις μέρες μας με βάση το TCP/IP


Named Data Networking - NDN

H επιστημονική κοινότητα που ασχολείται με το κομμάτι των δικτύων αποφάσισαν ότι πρέπει να δημιουργηθεί ένα νέο μοντέλο επικοινωνίας που να μην βασίζεται στην απ' άκρο σε άκρο επικοινωνία. Οπότε λοιπόν γι' αυτόν τον λόγο γίνονται προσπάθειες για να υλοποιηθεί το μοντέλο επικοινωνίας NDN. To Named Data Networking - NDN βασίζεται στην εξής προσέγγιση:

  • Ότι τα NDN πακέτα δεν περιέχουν IP διεύθυνση πηγής και προορισμού όπως στο TCP/IP
  • Υπάρχει ένα NDN πακέτο ενδιαφέροντος (NDN interest packet) και ένα πακέτο δεδομένων NDN (Data packet NDN)
  • Με απλά λόγια τα NDN πακέτα ρωτάνε «τι» και όχι «που»

Τελευταία ενημέρωση: 22/04/2018





Follow us

 ☰