Μοντέλο αναφοράς OSI

Το **μοντέλο αναφοράς Ανοικτής Διασύνδεσης Συστημάτων**, ή **μοντέλο αναφοράς OSI** (αγγλ. *OSI reference model*) είναι μια διαστρωματωμένη, αφηρημένη περιγραφή για τη σχεδίαση τηλεπικοινωνιακών και δικτυακών πρωτοκόλλων η οποία καθορίστηκε από την πρωτοβουλία Ανοικτή Διασύνδεση Συστημάτων – OSI. Είναι γνωστό και ως *μοντέλο των επτά επιπέδων*.

## Σκοπός
Το *μοντέλο OSI* υποδιαιρεί τις λειτουργίες ενός τηλεπικοινωνιακού δικτύου σε μια «κατακόρυφη» στοίβα από επίπεδα, για το καθένα από τα οποία μπορεί να οριστεί κάποιο πρωτόκολλο σε μία συγκεκριμένη υλοποίηση. Κάθε επίπεδο αξιοποιεί τις λειτουργίες του κατώτερού του στη στοίβα επιπέδου, ενώ στόχος του είναι να παρέχει λειτουργικότητα στο αμέσως ανώτερο επίπεδό του. Μία συγκεκριμένη υλοποίηση του μοντέλου, με καθορισμένα πρωτόκολλα για κάθε επίπεδο, ονομάζεται **στοίβα πρωτοκόλλων** ή απλά *στοίβα*. Το κάθε πρωτόκολλο υλοποιείται είτε σε υλικό είτε σε λογισμικό. Συνήθως τα κατώτερα επίπεδα υλοποιούνται στο υλικό ενώ τα ανώτερα σε λογισμικό.

Το *μοντέλο OSI* είναι στενά συσχετισμένο με τον κλάδο της επιστήμης υπολογιστών και τη δικτύωση υπολογιστών. Το βασικό χαρακτηριστικό του είναι η διασύνδεση μεταξύ των επιπέδων, η οποία υπαγορεύει τις προδιαγραφές της αλληλεπίδρασής τους. Αυτό σημαίνει ότι ένα επίπεδο υλοποιημένο με κάποιο συγκεκριμένο πρωτόκολλο μπορεί να συνεργαστεί με το γειτονικό του στη στοίβα επίπεδο, το οποίο υλοποιείται με κάποιο άλλο πρωτόκολλο, υπό την προϋπόθεση ότι οι προδιαγραφές του καθενός έχουν δημοσιευθεί και έχουν γίνει αντιληπτές σωστά. Αυτές οι προδιαγραφές είναι τυπικά γνωστές ως RFC (*Requests for Comments*) και αποτελούν πρότυπα του Διεθνούς Οργανισμού Τυποποίησης ISO.

Συνήθως τα επίπεδα είναι αυστηρά διαχωρισμένα μεταξύ τους: αξιοποιούν τις υπηρεσίες του κατώτερου επιπέδου τους και προσφέρουν υπηρεσίες στο ανώτερό τους, αλλά το καθένα δεν παρεμβαίνει στις λειτουργίες του άλλου· πιθανόν να μη γνωρίζει καν γι' αυτές. Αυτός ο λογικός διαχωρισμός των επιπέδων διευκολύνει πολύ τη μελέτη της συμπεριφοράς των πρωτοκόλλων και επιτρέπει τη σχεδίαση πολύπλοκων και αξιόπιστων στοιβών πρωτοκόλλων. Ορισμένες φορές όμως αυτή η *αρχή ανεξαρτησίας των επιπέδων* παραβιάζεται, για λόγους βελτιστοποίησης της απόδοσης ή αύξησης της λειτουργικότητας, με πρωτόκολλα διαφορετικών επιπέδων να συγχωνεύονται ή να παρεμβαίνουν το ένα στη λειτουργία του άλλου.

## Μοντέλο αναφοράς OSI
Το *μοντέλο OSI* είναι μια ιεραρχική δομή επτά επιπέδων που καθορίζει τις προδιαγραφές επικοινωνίας μεταξύ δύο υπολογιστών, ορίζοντας επακριβώς τον σκοπό κάθε επιπέδου αλλά και τα χρησιμοποιούμενα πρωτόκολλα, και τυποποιήθηκε ως πρότυπο ISO 7498-1. Θεωρήθηκε ότι θα επέτρεπε τη λειτουργική συνεργασία μεταξύ ποικίλων ψηφιακών συσκευών που ήταν διαθέσιμες στην αγορά. Το μοντέλο επιτρέπει σε όλα τα στοιχεία ενός δικτύου να συλλειτουργούν, με κάθε στοιχείο να υλοποιεί ένα ή περισσότερα πρωτόκολλα δικτύωσης, ανεξάρτητα από το ποιος είναι ο κατασκευαστής τους. Περί τα τέλη της δεκαετίας του 1980 ο ISO συνιστούσε την εφαρμογή του *μοντέλου OSI* ως κοινώς αποδεκτού υποδείγματος σχεδιασμού δικτύων.

Ωστόσο εκείνη την εποχή η στοίβα πρωτοκόλλων TCP/IP, η οποία βασιζόταν σε ελαφρώς διαφορετική διαστρωμάτωση επιπέδων, ήταν ήδη επί πολύ καιρό σε ευρεία χρήση. Το TCP/IP ήταν θεμελιώδες για το δίκτυο ARPANET και τα άλλα δίκτυα που εξελίχθηκαν στο σημερινό Διαδίκτυο. Ως αποτέλεσμα το *μοντέλο OSI* παραμερίστηκε και σήμερα μόνο ένα υποσύνολό του χρησιμοποιείται ακόμη. Η επικρατούσα αντίληψη είναι ότι οι περισσότερες προδιαγραφές του είναι περίπλοκες και η πλήρης λειτουργικότητά του θα χρειαζόταν μεγάλο χρόνο κατασκευής, αν και συνεχίζουν να υπάρχουν σθεναροί υποστηρικτές του.

## Περιγραφή των επιπέδων OSI

### Επίπεδο 7: Εφαρμογών

Το *επίπεδο εφαρμογών* (αγγλ. application layer) παρέχει στον χρήστη έναν τρόπο να προσπελάσει μέσω μιας εφαρμογής τις πληροφορίες ενός δικτύου. Αυτό το επίπεδο είναι η κύρια διασύνδεση του χρήστη με την εφαρμογή και, συνεπώς, με το δίκτυο. Στο επίπεδο αυτό γίνεται η διαχείριση των κατανεμημένων εφαρμογών, η αποστολή του ηλεκτρονικού ταχυδρομείου κλπ. Παραδείγματα πρωτοκόλλων επιπέδου εφαρμογών αποτελούν τα Telnet, FTP, SMTP και http.

### Επίπεδο 6: Παρουσίασης

Το *επίπεδο παρουσίασης* (αγγλ. presentation layer) μετασχηματίζει τα δεδομένα σε τυπική μορφή που την αναμένει το επίπεδο εφαρμογών. Στο επίπεδο αυτό τα δεδομένα υφίστανται κρυπτογράφηση, συμπίεση, κωδικοποίηση MIME και όποια άλλη διαμόρφωση απαιτεί η μορφή δεδομένων ή ο σχεδιαστής του πρωτοκόλλου. Παραδείγματα αποτελούν η μετατροπή αρχείων από κώδικα EBCDIC σε κώδικα ASCII και η μετατροπή της δομής των δεδομένων σε μορφή XML ή αντίστροφα (π.χ. από XML σε έγγραφο τύπου DOC).

### Επίπεδο 5: Συνόδου

Το *επίπεδο συνόδου* (αγγλ. session layer) ελέγχει τις συνόδους (δηλαδή τις ανταλλαγές δεδομένων) μεταξύ δύο υπολογιστών, του Α και του Β. Ξεκινά, διαχειρίζεται και τερματίζει τη σύνδεση μεταξύ μιας τοπικής και μιας απομακρυσμένης εφαρμογής. Αντιμετωπίζει λειτουργίες FDX (*full duplex, οι Α και Β μιλούν ταυτόχρονα από δύο κανάλια*) ή HDX (*half-duplex, μιλάει ο Α και μετά απαντάει ο Β από το ένα διαθέσιμο κανάλι*), ενώ υποστηρίζει διαδικασίες αποθήκευσης κατάστασης (αγγλ. checkpoint), αναβολής (αγγλ. adjournment), τερματισμού (αγγλ. termination) και επανεκκίνησης (αγγλ. restart). Αυτό το επίπεδο είναι υπεύθυνο για το ομαλό κλείσιμο της συνόδου (που είναι ιδιότητα του TCP) και επίσης για την *αποθήκευση* και *ανάκτηση κατάστασης*, λειτουργίες οι οποίες δεν χρησιμοποιούνται στην στοίβα πρωτοκόλλων του Διαδικτύου.

### Επίπεδο 4: Μεταφοράς

Το *επίπεδο μεταφοράς* (αγγλ. transport layer) διεκπεραιώνει τη μεταφορά των δεδομένων από χρήστη σε χρήστη, απαλλάσσοντας έτσι τα ανώτερα επίπεδα από κάθε φροντίδα να προσφέρουν αξιόπιστη μεταφορά δεδομένων από το ένα άκρο της επικοινωνίας στο άλλο. Το επίπεδο μεταφοράς ελέγχει την αξιοπιστία ενός χρησιμοποιούμενου καναλιού με έλεγχο ροής (αγγλ. flow control), κατάτμηση και αποτμηματοποίηση (αγγλ. segmentation / desegmentation), καθώς και έλεγχο σφαλμάτων (αγγλ. error control). Ορισμένα πρωτόκολλα καταγράφουν καταστάσεις και συνδέσεις, οπότε κρατούν λογαριασμό των πακέτων και επανεκπέμπουν αυτά που δεν παρελήφθησαν σωστά. Τα διάφορα πρωτόκολλα μοφοποιούν διαφορετικά τα εκπεμπόμενα πακέτα πληροφοριών, αλλά τα προς αποστολή δεδομένα παραλαμβάνονται αρχικά από τα ανώτερα επίπεδα.

Το συνηθέστερο παράδειγμα πρωτοκόλλου μεταφοράς είναι το TCP (αγγλ. Transmission Control Protocol, πρωτόκολλο ελέγχου μετάδοσης). Άλλα πρωτόκολλα μεταφοράς είναι τα UDP (αγγλ. User Datagram Protocol, πρωτόκολλο για ασυνδεσμική αποστολή δεδομένων, SCTP (αγγλ. Stream Control Transmission Protocol, πρωτόκολλο ελέγχου της ροής μετάδοσης), κλπ.

### Επίπεδο 3: Δικτύου

Το *επίπεδο δικτύου* (αγγλ. network layer) παρέχει τα λειτουργικά και διαδικαστικά μέσα για τη μεταφορά στοιχειοσειρών δεδομένων μεταβλητού μήκους από μια προέλευση σε έναν προορισμό, μέσα από ένα ή περισσότερα ενδιάμεσα δίκτυα, ενώ διατηρεί την ποιότητα εξυπηρέτησης που απαιτεί το επίπεδο μεταφοράς. Το επίπεδο δικτύου εκτελεί λειτουργίες δρομολόγησης, με πιθανές κατατμήσεις / αποτμηματοποιήσεις, και αναφέρει σφάλματα σχετικά με την παράδοση των πακέτων. Οι δρομολογητές (αγγλ. routers) λειτουργούν στο επίπεδο αυτό· διακινώντας δεδομένα σε διασυνδεδεμένα δίκτυα έκαναν το Διαδίκτυο πραγματικότητα. Υπάρχουν και δικτυακοί διακόπτες που σχετίζονται με τις διευθύνσεις (IP). Εδώ υπάρχει μια λογική οργάνωση και τις τιμές των διευθύνσεων τις καθορίζει ιεραρχικά ο τεχνικός των επικοινωνιών. Το πλέον αναγνωρίσιμο παράδειγμα πρωτοκόλλου δικτύου είναι το Πρωτόκολλο Διαδικτύου (αγγλ. Internet Protocol, IP). 

### Επίπεδο 2: Ζεύξης Δεδομένων

Το *επίπεδο ζεύξης* (αγγλ. data link layer) δεδομένων παρέχει τα λειτουργικά και διαδικαστικά μέσα για τη μεταφορά δεδομένων από μια συσκευή ενός τοπικού δικτύου σε άλλη, αλλά και για την ανίχνευση και διόρθωση σφαλμάτων που συμβαίνουν στο φυσικό επίπεδο. Οι μη ιεραρχημένες διευθύνσεις των συσκευών εδώ είναι οι φυσικές (π.χ. MAC διευθύνσεις), δηλαδή είναι προκαθορισμένες και αποθηκευμένες στις κάρτες δικτύου των επικοινωνούντων κόμβων από το εργοστάσιο.

Το πιο γνωστό πρότυπο αυτού του επιπέδου είναι το Ethernet, για τοπικά δίκτυα. Άλλα παραδείγματα πρωτοκόλλων ζεύξης δεδομένων αποτελούν τα:
* HDLC και ADCCP, για συνδέσεις από-σημείο-σε-σημείο (αγγλ. point-to-point).
* 802.11, για ασύρματα τοπικά δίκτυα.

Στα τοπικά δίκτυα της οικογένειας πρωτοκόλλων IEEE 802, και σε κάποια άλλα όπως το FDDI, αυτό το επίπεδο μπορεί να διαιρεθεί σε δύο μικρότερα:
* Ένα επίπεδο ελέγχου πρόσβασης στο κοινό μέσο, το υποεπίπεδο MAC (αγγλ. Media Access Control, Έλεγχος Πρόσβασης Μέσου)
* Ένα ανώτερο επίπεδο ελέγχου λογικών συνδέσεων, το υποεπίπεδο LLC (αγγλ. Logical Link Control, Έλεγχος Λογικών Ζεύξεων), όπου επικρατεί καθολικά το πρωτόκολλο IEEE 802.2 ανεξάρτητα από το υποκείμενο πρωτόκολλο MAC ή φυσικού επιπέδου.

Στο επίπεδο αυτό λειτουργούν οι δικτυακές *γέφυρες* (αγγλ. bridge) και οι δικτυακοί διακόπτες (αγγλ. switch). Η συνδεσιμότητα παρέχεται μόνο για κόμβους που συνδέονται στο ίδιο κοινό μέσο (τοπικό δίκτυο ή σύνδεση από-σημείο-σε-σημείο).

### Επίπεδο 1: Φυσικό

Το *φυσικό επίπεδο* (αγγλ. physical layer) ορίζει όλες τις ηλεκτρικές και φυσικές προδιαγραφές της επικοινωνίας. Σ’ αυτές περιλαμβάνονται οι σχηματισμοί των ακίδων, οι επιτρεπτές τάσεις, οι προδιαγραφές των καλωδίων κλπ. Συσκευές φυσικού επιπέδου είναι οι διανεμητές, οι επαναλήπτες (αγγλ. repeaters), οι κάρτες δικτύου, οι προσαρμοστές διαύλου (αγγλ. bus adapters). Οι κυριότερες λειτουργίες και υπηρεσίες του φυσικού επιπέδου είναι:
* Έναρξη και τερματισμός της ηλεκτρικής σύνδεσης μιας επικοινωνιακής συσκευής.
* Συμμετοχή σε διαδικασίες όπου οι επικοινωνιακές συσκευές εξυπηρετούν αποτελεσματικά πολλούς χρήστες (πολυπλεξία). Επιλύονται προβλήματα προτεραιότητας πρόσβασης και ελέγχου ροής δεδομένων.
* Διαμόρφωση και αποδιαμόρφωση των ψηφιακών δεδομένων κατά τη μετάδοση από συσκευή σε συσκευή. Για παράδειγμα, τα ψηφιακά ηλεκτρικά σήματα μπορεί να ταξιδέψουν ως αναλογικά σε χάλκινο καλώδιο, μετά σε οπτική ίνα, μετά να μεταδοθούν από ραδιοζεύξη ή δορυφορικά, να φθάσουν πάλι αναλογικά σε χάλκινο καλώδιο και να γίνουν ψηφιακά στον παραλήπτη.

Οι παράλληλοι δίαυλοι SCSI λειτουργούν στο επίπεδο αυτό. Επίσης τα επίπεδα 1 και 2 αφορούν οι προδιαγραφές των πρωτοκόλλων Ethernet, Token Ring, FDDI (αγγλ. Fiber Distributed Data Interface, Διασύνδεση Κατανεμημένων Δεδομένων με Οπτικές Ίνες) και IEEE 802.11.

## Διασυνδέσεις
Τα διάφορα λειτουργικά συστήματα υποστηρίζουν, πέρα από τα ίδια τα πρωτόκολλα, τυποποιημένα πρότυπα για τη διασύνδεση (interface) ενός επιπέδου με το αμέσως ανώτερο ή κατώτερό του στη στοίβα. Π.χ.
* Στα Microsoft Windows η βιβλιοθήκη συστήματος Winsock, στο Unix τα Berkeley Sockets και στο System-V το TLI (αγγλ. Transport Layer Interface, Διασύνδεση Επιπέδου Μεταφοράς) είναι προτυποποιημένες διασυνδέσεις μεταξύ εφαρμογών (επίπεδα 5 και άνω) και επιπέδου μεταφοράς (επίπεδο 4).
* το NDIS (αγγλ. Network Driver Interface Specification, Προδιαγραφή Διασύνδεσης Οδηγού Δικτύου), και το ODI (αγγλ. Open Data-Link Interface, Ανοικτή Διεπαφή Διασύνδεσης Δεδομένων) είναι διασυνδέσεις μεταξύ συσκευών (επίπεδο 2) και δικτυακού πρωτοκόλλου (επίπεδο 3).

## Παραδείγματα πρωτοκόλλων

## Σημειώσεις και παραπομπές


## Πηγές
* *Δίκτυα υπολογιστών*, Tanenbaum Andrew S., Εκδ. Κλειδάριθμος

## Εξωτερικοί σύνδεσμοι
* [ISO standard 7498-1:1994](http://standards.iso.org/ittf/PubliclyAvailableStandards/s020269_ISO_IEC_7498-1_1994(E).zip) (σε μορφή ZIP)
* Cybertelecom — Layered Model of Regulation  μοντέλο κανονισμών σε επίπεδα
* Μάθημα για το μοντέλο OSI
* OSI Model Tutorial in Flash σύντομα μαθήματα για το μοντέλο OSI
* Computer Networks and Protocol — The OSI Reference Model Δίκτυα υπολογιστών και πρωτόκολλο – Το μοντέλο αναφοράς OSI
* OSI Reference Model — The ISO Model of Architecture for Open Systems Interconnection το μοντέλο αναφοράς OSI – το μοντέλο αρχιτεκτονικής του ISO για ανοικτή διασύνδεση συστημάτων, Hubert Zimmermann, IEEE Transactions on Communications, vol. 28, no. 4, April 1980, pp. 425 - 432. (σε μορφή pdf)

Κατηγορία:Δίκτυα υπολογιστών