Η έννοια του πρωτοκόλλου επικοινωνίας είναι γνωστή από την καθημερινότητά μας. Γενικά χρησιμοποιούμε σύνολα κανόνων που ρυθμίζουν πώς γίνονται πολλές καθημερινές ενέργειες. Στη σύνοδο για παράδειγμα των πρυτάνεων των Ελληνικών Α.Ε.Ι. το πρωτόκολλο καθορίζει το ποιος θα καθίσει σε ποια θέση, τη σειρά των ομιλητών, τον τρόπο με τον οποίο θα απευθυνθούν στους ομολόγους τους κ.α. Πολλές φορές τα πρωτόκολλα είναι άγραφα και εθιμοτυπικά ή ακόμη και προαιρετικά στην εφαρμογή τους (π.χ. ο τρόπος με τον οποίο δύο άνθρωποι χαιρετιούνται όταν συναντηθούν). Άλλες πάλι φορές είναι αυστηρά καθορισμένα και πρέπει να τηρούνται απαρέγκλιτα, όπως π.χ. συμβαίνει με το πρωτόκολλο απόσυρσης των ραδιοαποβλήτων ενός ακτινολογικού κέντρου [1] . Γενικά ως  Πρωτόκολλο Επικοινωνίας (communication protocol) ορίζεται ένα σύνολο συμβάσεων - κανόνων συμφωνημένων και από τα δύο επικοινωνούντα μέρη, που διέπουν την μεταξύ τους ανταλλαγή πληροφοριών. Οι κανόνες αυτοί καθορίζουν τη μορφή, το χρόνο και τη σειρά μετάδοσης των πληροφοριών στο δίκτυο. Εκτελούν επίσης, έλεγχο και διόρθωση σφαλμάτων στη διάρκεια μετάδοσης των πληροφοριών. 

Τα δίκτυα υπολογιστών ως υποσύνολο των παραπάνω δικτύων ακολουθούν ειδικότερα πρωτόκολλα. Σε αναλογία με την ανθρώπινη συνομιλία και γενικότερα τις καθημερινές μας ενέργειες, τα πρωτόκολλα δικτύου χρησιμοποιούν τη μετάδοση μηνυμάτων [2] για την εγκαθίδρυση και τη διαχείριση της επικοινωνίας. Είναι προφανές ότι οι οντότητες που επιθυμούν να επικοινωνήσουν θα πρέπει να χρησιμοποιούν τα ίδια πρωτόκολλα, προκειμένου τα μηνύματα που ανταλλάσσονται να γίνονται αντιληπτά από τους παραλήπτες τους.

  Πρωτόκολλο Δικτύου

Δικτύου (network protocol) είναι το σύνολο των κανόνων που πρέπει να ακολουθήσουν δύο διασυνδεμένες στο δίκτυο οντότητες (π.χ. συσκευές ή εφαρμογές) προκειμένου να επικοινωνήσουν μεταξύ τους.

 

Παράδειγμα πρωτοκόλλου δικτύου με το οποίο είμαστε εξοικειωμένοι είναι το πρωτόκολλο που χρησιμοποιούμε κάθε φορά που ανοίγουμε στον υπολογιστή μας ένα πρόγραμμα πλοήγησης στο Διαδίκτυο (browser) και εισαγάγουμε σε αυτό μια διεύθυνση (URL). Στην ουσία αυτό που κάνουμε είναι η αποστολή αίτησης στο εξυπηρετητή ιστοσελίδων της συγκεκριμένης τοποθεσίας, ζητώντας του να μας μεταδώσει κάποιες από τις σελίδες που περιέχει. Τα δύο παραπάνω «σενάρια» (ερώτηση για την ώρα & ανάκτηση ιστοσελίδας) παρατίθενται σχηματικά στο επόμενο σχήμα (Εικόνα 2.12)

 

Εικόνα 2.12 Πρωτόκολλα επικοινωνίας (τι ώρα είναι; | ανάκτηση ιστοσελίδας)

Περισσότερο συγκεκριμένα σε σχέση με την ανάκτηση ιστοσελίδας ο υπολογιστής που επιδιώκει την ανάκτηση, αποστέλλει μία αίτηση για εγκατάσταση μιας νέας σύνδεσης (TCP [3] connection request) στον web server και περιμένει (μέχρι ένα προκαθορισμένο χρονικό όριο) μια απάντηση. Ο εξυπηρετητής που θα λάβει την αίτηση (εφόσον δεν υπάρχει κάποιο πρόβλημα ή απαγόρευση) θα αποδεχθεί τη δημιουργία σύνδεσης και θα επιστρέψει μια απάντηση (TCP connection reply). Γνωρίζοντας πλέον ο υπολογιστής που έχει υποβάλει το αίτημα ότι έχει εγκατασταθεί επικοινωνία, προχωρά στο αίτημα λήψης του περιεχομένου(νων) της ιστοσελίδας, αποστέλλοντας με ένα ειδικό μήνυμα το όνομα της ιστοσελίδας στον εξυπηρετητή (πχ. get https://www.di.uoa.gr/). Μόλις λάβει αυτό το μήνυμα ο εξυπηρετητής της ιστοσελίδας, θα επιστρέψει τα περιεχόμενα της ιστοσελίδας στον υπολογιστή που το ζήτησε και έχει ήδη αποκατασταθεί η επικοινωνία.

Στα δίκτυα υπολογιστών, όπως είναι φανερό, γίνεται ευρεία χρήση πρωτοκόλλων. Διαφορετικά πρωτόκολλα χρησιμοποιούνται για να εκτελέσουν διαφορετικές ενέργειες απαραίτητες στην ανταλλαγή πληροφοριών. Χαρακτηριστικά πρωτόκολλα δικτύων υπολογιστών είναι τα:

  • πρωτόκολλα δρομολόγησης και τα
  • πρωτόκολλα ελέγχου ροής.

Τα πρωτόκολλα δρομολόγησης (routing protocols) καθορίζουν διαδρομή που θα ακολουθήσουν οι πληροφορίες από τον αποστολέα στον παραλήπτη. Άλλα πρωτόκολλα ρυθμίζουν τα φυσικά χαρακτηριστικά με τα οποία πρέπει να μεταδίδονται τα δυαδικά ψηφία μέσα από ένα π.χ. χάλκινο καλώδιο και συγκεκριμένα τα επίπεδα της ηλεκτρικής τάσης που χρησιμοποιούνται, τη διάρκεια του κάθε παλμού, το είδος κωδικοποίησης κ.α.

Τα πρωτόκολλα ελέγχου ροής (flow control protocol) ρυθμίζουν την ταχύτητα με την οποία γίνεται η επικοινωνία έτσι ώστε ένας γρήγορος αποστολέας να μην κατακλύσει με πληροφορίες έναν αργό παραλήπτη. Κάποια από αυτά τα πρωτόκολλα είναι εξαιρετικά απλά, ενώ άλλα είναι ιδιαίτερα πολύπλοκα. Η σε βάθος κατανόηση των δικτύων υπολογιστών είναι ουσιαστικά ισοδύναμη με την κατανόηση των χρησιμοποιούμενων πρωτοκόλλων.



[1] Ένα παράδειγμα εφαρμογής στην ανθρώπινη επικοινωνία είναι το ακόλουθο. Έστω ότι π.χ. βρίσκεστε χωρίς ρολόι και θέλετε να μάθετε τι ώρα είναι. Συνήθως πρέπει να χαιρετήσετε πρώτα αυτόν που σκοπεύετε να ρωτήσετε λέγοντας π.χ. «Γεια σας» ή «Καλημέρα σας» (ανάλογα με την ώρα). Σε περίπτωση που ο συνομιλητής σας απαντήσει ανάλογα, σας δίνει το «μήνυμα» ότι μπορείτε να προχωρήσετε στη συνέχεια της επικοινωνίας και να ρωτήσετε για την ώρα. Αν όμως δεν λάβετε απάντηση ή λάβετε ή μια απάντηση σε άλλη γλώσσα, τότε η επικοινωνία δεν μπορεί να πραγματοποιηθεί. Στην περίπτωση που οι άνθρωποι χρησιμοποιούν διαφορετικά πρωτόκολλα ή οι μηχανισμοί της επικοινωνίας τους δεν είναι συμβατοί, τότε δεν μπορεί να υπάρξει ουσιαστική ανταλλαγή πληροφοριών.

[2] Ο όρος μετάδοση μηνυμάτων είναι πολύ προσεγγιστικός δεδομένου ότι μιλάμε για σήματα που αντιστοιχούν σε bits ή δυάδες, τετράδες, κοκ μεταδίδοντας από άκρο σε άκρο «πλαίσια», «πακέτα», μηνύματα σε μερικά από τα οποία θα αναφερθούμε σε επόμενη ενότητα.

[3] Στην οικογένεια πρωτοκόλλων TCP θα αναφερθούμε στην υποενότητα 2.6.3