Το πρότυπο επικοινωνίας TCP/IP και ο διαχωρισμός των υπηρεσιών

Όπως αναφέραμε στα παραπάνω κεφάλαια το πρότυπο επικοινωνίας TCP/IP διαχωρίζεται σε μια ιεραρχική στρωμάτωση τεσσάρων επιπέδων όπου κάθε επίπεδο αναλαμβάνει μια συγκεκριμένη λειτουργία. Κάθε επίπεδο του TCP/IP επικοινωνεί με το αμέσως επόμενο ή προηγούμενο του και εκτελεί συγκεκριμένα πρωτόκολλα. Τα πρωτόκολλα αυτά είναι ένα σύνολλο απο κανόνες τα οποία ορίζουν τον τρόπο με τον οποίο θα διεξάγεται η επικοινωνία μεταξύ των διαφόρων τερματικών - υπολογιστών σε ένα δίκτυο.
Το TCP/IP χωρίζεται σε δύο κατηγορίες υπηρεσιών. Η πρώτη κατηγορία αφορά υπηρεσίες που παρέχονται σε πρωτόκολλα επικοινωνίας και η δεύτερη κατηγορία αφορά υπηρεσίες που παρέχονται απευθείας προς τους τερματικούς χρήστες (Υπηρεσίες End-User).

  1. Υπηρεσίες που παρέχονται σε πρωτόκολλα επικοινωνίας: Αποτελείται απο πρωτόκολλα που αναλαμβάνουν κύριες λειτουργίες του TCP/IP (όπως για παράδειγμα τα πρωτόκολλα IP, TCP, UDP κλπ). Αυτές οι υπηρεσίες έχουν σχεδιαστεί για να μπορέσει να υπάρξει διαδικτυακή επικοινωνία μεταξύ διαφόρων απομακρυσμένων υπολογιστών. Για παράδειγμα το πρωτόκολλο IP (επίπεδο δικτύου) αναλαμβάνει την διαδικασία της λογικής διευθυνσιοδότησης σε έναν υπολογιστή (απόδοση μιας IP διεύθυνσης κλπ). Χωρίς μια IP διεύθυνση δεν υπάρχει δυνατότητα να μπορέσει ενας κόμβος να συνδεθεί στο διαδίκτυο και κατά συνέπεια δεν μπορεί να επικοινωνήσει με άλλους απομακρυσμένους κόμβους. Επίσης τα πρωτόκολλα δρομολόγησης (RIP, OSPF κλπ.) του επιπέδου δικτύου αναλαμβάνουν την διαδικασία εύρεσης διαδρομής για ένα πακέτο κάτι που ίσως αποτελεί την σημαντικότερη λειτουργία στο πρότυπο επικοινωνίας TCP/IP. ’λλα πρωτόκολλα υπηρεσιών είναι επίσης τα πρωτόκολλα μεταφοράς TCP και UDP (επίπεδο μεταφοράς) που αναλαμβάνουν τον διαχωρισμό των δεδομένων σε τμήματα (segments) κλπ. Εν ολίγης τα πρωτόκολλα αυτά φροντίζουν για την ομαλή λειτουργία της δικτυακής επικοινωνίας.

  2. Υπηρεσίες End-user: Αφορούν πρωτόκολλα που παρέχουν υπηρεσίες ως προς τον τερματικό χρήστη. Για παράδειγμα ένα πρωτόκολλο που ανήκει σε αυτήν την κατηγορία είναι το πρωτόκολλο μεταφοράς υπερκειμένου HTTP όπου μας παρέχει πρόσβαση στο διαδίκτυο. Εν ολίγης τα πρωτόκολλα αυτά καθορίζουν την παροχή υπηρεσιών ως προς τον τερματικό χρήστη.


Μοντέλο πελάτη - εξυπηρετητή (client - server)

Ένα πολύ σημαντικό χαρακτηριστικό του πρότυπου επικοινωνίας TCP/IP είναι η προσανατολισμένη επικοινωνία. Δηλαδή κάθε επικοινωνία στο πρότυπο επικοινωνίας TCP/IP αφορά ανταλλαγή δεδομένων μεταξύ ενός υπολογιστή - πελάτη (client) όπου ζητάει μια υπηρεσία και έναν εξυπηρετητή (server) ο οποίος παρέχει αυτές τις εν λόγω υπηρεσίες. Θα πρέπει όμως να σημειώσουμε ότι ένας και μόνο ένας εξυπηρετητής δεν είναι ικανός να ικανοποιήσει όλα τα αιτήματα από τους πελάτες του. Γι' αυτόν τον λόγο χρησιμοποιείται ένα σύμπλεγμα υπολογιστών που ονομάζεται κέντρο δεδομένων (data center) το οποίο φιλοξενεί έναν μεγάλο αριθμό υπολογιστών, για να δημιουργήσει έναν ισχυρό εικονικό εξυπηρετητή (server). Η παρακάτω εικόνα αποτυπώνει τον τρόπο με τον οποίο λειτουργεί το μοντέλο πελάτη - εξυπηρετητή (client - server).



Μοντέλο πελάτη εξυπηρετητή (client - server) με χρήση πρωτοκόλλου HTTP


Στην παραπάνω εικόνα αποτυπώνεται η δομή με την οποία λειτουργεί το μοντέλο πελάτη - εξυπηρετητή (Client - Server). Όπως φανερώνεται από το όνομα του μοντέλου ένας υπολογιστής ζητάει κάτι με την μορφή αιτήματος το οποίο και προωθεί σε εναν εξυπηρετητή (server). Με την σειρά του ο εξυπηρετητής (server) αφού λάβει αυτό το αίτημα είναι υποχρεωμένος είτε να το ικανοποιήσει προσφέροντας την υπηρεσία που ζητάει απο αυτόν (π.χ. κατέβασμα ενος αρχείου, παρουσίαση μιας ιστοσελίδας στον browser κλπ) ή να απαντήσει στον υπολογιστή - πελάτη (client) τον λόγο για τον οποίο δεν ικανοποιήθηκε αυτό το αίτημα. Για παράδειγμα έστω ένας υπολογιστής - πελάτης (client) όπου θέλει μια πληροφορία (συγκεκριμένα πρόσβαση σε μια ιστοσελίδα). Για να λάβει αυτήν την πληροφορία θα στείλει ένα μήνυμα αίτησης προς τον εξυπηρετητή που φιλοξενεί αυτήν την ιστοσελίδα. Ο εξυπηρετητής αφού λάβει αυτό το μήνυμα αίτησης θα απαντήσει πίσω στον πελάτη (client) με ένα απαντητικό μήνυμα όπου θα περιέχει την ιστοσελίδα που ζήτησε. Με αυτήν την δομή λειτουργεί το μοντέλο πελάτη - εξυπηρετητή (client-server).


Μειονεκτήματα της αρχιτεκτονικής πελάτη - εξυπηρετητή (Client - Server)

Υπάρχουν αρκετά ζητήματα τα οποία επηρεάζουν αρνητικά την αρχιτεκτονική πελάτη - εξυπηρετητή. Μερικά απο αυτά τα αρνητικά ζητήματα είναι τα εξής:

  1. Ο αριθμός των χρηστών (σπατάλη πόρων): Στα περισσότερα δίκτυα που χρησιμοποιούν την αρχιτεκτονική πελάτη εξυπηρετητή (client - server) υπάρχει το φαινόμενο της σπατάλης πόρων των διακομιστών (servers). Όταν για παράδειγμα μια ιστοσελίδα κάποια στιγμή της ημέρας φτάσει μια υψηλή επισκεψιμότητα τότε υπάρχει η πιθανότητα να μην μπορούν οι servers να τους εξυπηρετήσουν.

  2. Απαιτούν έμπειρο τεχνικό: Πολλά δίκτυα πελάτη - εξυπηρετητή δεν είναι σωστά δομημένα (δεν υπάρχει σωστό cabling management, παλιά μηχανήματα, φθαρμένα καλώδια κλπ). Οπότε από τα παραπάνω αντιλαμβανόμαστε ότι για να υλοποιήσουμε ένα δίκτυο που χρησιμοποιεί την αρχιτεκτονική πελάτη - εξυπηρετητή απαιτεί την συνδρομή έμπειρου τεχνικού προσωπικού

  3. Υψηλό κόστος: Οι εξυπηρετητές (servers) πρέπει να είναι σχεδιασμένοι έτσι ώστε να αγγίζουν αρκετά υψηλές επιδόσεις, προκειμένου να υπάρχουν αρκετοί πόροι. Το κόστος όμως για να υπάρχον σύγχρονοι και καλοί εξυπηρετητές (servers) είναι αρκετά δαπανηρό.

  4. Ασφάλεια: Το μεγαλύτερο πρόβλημα της αρχιτεκτονικής πελάτη - εξυπηρετητή (server) είναι η έλλειψη ασφάλειας. Λόγω του ότι υπάρχει προσανατολισμένη κίνηση δεδομένων (δηλαδή ότι ένας υπολογιστής στέλνει αίτημα σε έναν εξυπηρετητή) αυτό δημιουργεί μια πληθώρα προβλημάτων:

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

    • Malwares, adware, trojans: Είναι μερικά παραδείγματα επιθέσεων υποκλοπής δεδομένων ή καταστροφής του λειτουργικού συστήματος στον υπολογιστή ενός απλού χρήστη.

Μια εξίσου σημαντική παράμετρος είναι τα προβλήματα φυσικών καταστροφών. Αν ένα datacenter για παράδειγμα αρπάξει φωτιά ή συμβεί κάποια άλλη φυσική καταστροφή υπάρχει πιθανότητα τα δεδομένα που έχουν αυτοί οι εξυπηρετητής να χαθούν. Υπάρχουν πάρα πολλά ζητήματα τα οποία είναι σημαντικά να αναφέρουμε όπως για παράδειγμα οι άσκοποι πόροι που καταναλώνονται σε ένα δίκτυο που υποστηρίζει την αρχιτεκτονική πελάτη - εξυπηρετητή, παρόλα αυτά δεν θα αναφερθούμε σε όλα αυτά διότι αυτό από μόνο του αποτελεί μια πολύ μεγάλη συζήτηση.


Αρχιτεκτονική ομότιμων συστημάτων (Peer-to-Peer)

Όπως αναφέραμε παραπάνω στην κλασσική αρχιτεκτονική πελάτη - εξυπηρετητή έχουμε διάφορους κόμβους οι οποίοι ζητάνε μια πληροφορία από έναν εξυπηρετητή υπηρεσιών (dedicated server). Όμως στην αρχιτεκτονική peer-to-peer δεν υπάρχει κάποιος εξυπηρετητής υπηρεσιών (dedicated server) και κάθε κόμβος μπορεί να αναλάβει είτε τον ρόλο του πελάτη (client) είτε τον ρόλο του εξυπηρετητή (server). Δηλαδή στην αρχιτεκτονική peer-to-peer ένα σύνολο απο διάφορους κόμβους συνδέονται μεταξύ τους (μέσω κάποιου προγράμματος όπως το BitTorrent, qbittorent κλπ) χρησιμοποιώντας το διαδίκτυο (internet), έτσι ώστε να μπορέσουν να διαμοιρασουν μεταξύ τους δεδομένα (π.χ. διάφορα αρχεία ήχου, video κλπ). Η αρχιτεκτονική πελάτη - εξυπηρετητή (client - server) είναι ιδανική για μικρά δίκτυα όπου δεν χρειάζεται η ανάγκη χρήσης κάποιου εξυπηρετητή υπηρεσιών (dedicated server) όπως για παράδειγμα σε οικιακά δίκτυα ή σε ένα δίκτυο μιας μικρής επιχείρησης. Η Microsoft αναφέρει την αρχιτεκτονική πελάτη - εξυπηρετητή με τον όρο workgroup.



Παράδειγμα διαμοιρασμού ενός αρχείου με αρχιτεκτονική peer-to-peer


Όπως παρατηρούμε απο την παραπανω εικόνα κάθε υπολογιστής που διαθέτει ενα αρχείο στο οποίο αντίστοιχα ενδιαφέρονται άλλοι peer-to-peer κόμβοι, ονμάζονται ως πόροι (peers). Οσοι περισσότεροι ενεργοί πόροι (peers) υπάρχουν τόσο πιο γρήγορα θα λάβουμε ένα αρχείο. Χωρίς ενεργούς πόρους δεν είναι δυνατών να διαμοιραστούν δεδομένα μεταξύ peer-to-peer κόμβων. Κάποιες αρχιτεκτονικές P2P χρησιμοποιούν:

  • Διαμοιρασμό αρχείων (File sharing)
  • Απευθείας επικοινωνία (Instant messaging)
  • Μετάδοση Φωνής (Voice Communication)
  • Συνεργασία κόμβων (Node Collaboration)
  • Υψηλή Υπολογιστική Επίδοση (High Performance Computing)

Παρακάτω ακολουθούν μερικά παραδείγματα προγραμμάτων που κάνουν χρήση αρχιτεκτονικής P2P:

Napster - Το οποίο σταμάτησε η υποστήριξη του το 2001


Napster v2.0 BETA


BitTorrent και qBittorent - Χρησιμοποιούνται για διαμοιρασμό αρχείων μέσω P2P


qBittorent



BitTorrent


Skype - Παλιότερα χρησιμοποιούσε ένα υβριδικό μοντέλο P2P, τώρα χρησιμοποιεί το μοντέλο πελάτη - εξυπηρετητή μετά από μετάβαση του στην Microsoft


Skype


Bitcoin - Διαδικτυακό νόμισμα peer-to-peer (P2P cryptocurrency) χωρίς κάποια κεντρική νομισματική αρχή


Bitcoin Logo



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





Follow us

 ☰