Modello OSI: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 151.41.73.237, riportata alla revisione precedente di Wizard |
-ridondanze, +img esempio, lista di definizioni al posto di lista puntata, wikificazioni varie |
||
Riga 5:
L'organizzazione sentì la necessità di produrre una serie di standard per le reti di calcolatori ed avviò il progetto OSI ('''O'''pen '''S'''ystems '''I'''nterconnection), un modello standard di riferimento per l'interconnessione di sistemi aperti. Il documento che illustra tale attività è il Basic Reference Model di OSI, noto come standard [[ISO 7498]].
Il modello ISO/OSI è costituito da una pila (o stack) di protocolli attraverso i quali viene ridotta la complessità implementativa di un sistema di comunicazione per il networking. In particolare ISO/OSI è costituito da strati (o livelli), i cosidetti ''layer'', che racchiudono uno o più aspetti fra loro correlati della comunicazione fra due nodi di una rete.
I layers sono in totale 7 e vanno dal livello fisico (quello del mezzo fisico, ossia del cavo o delle onde radio) fino al livello delle applicazioni, attraverso cui si realizza la comunicazione di ''alto livello''.
[[Immagine:Rm-osi_parallel.png|thumb|300px|Parallelo fra [[impresa|imprese]] (livelli superiori) e [[Posta|sistema postale]] (livelli inferiori) e il modello ISO/OSI.]]
Ogni layer individua un protocollo di comunicazione del livello medesimo. ISO/OSI realizza una comunicazione per livelli, ovvero dati due nodi A e B, il livello n del nodo A può scambiare informazioni col livello n del nodo B ma non con gli altri: ciò conferisce modularità al sistema e semplicità di implementazione e reimplementazione. Inoltre ogni livello realizza la comunicazione col livello corrispondente su altri nodi usando il [[PoS]] (point of service) del livello immediatamente sottostante. Sicché ISO/OSI incapsula i messagggi di livello n in messaggi del livello n-1. Così se A deve inviare, ad esempio, una [[e-mail]] a B, l'applicazione (liv. 7) di A propagherà il messaggio usando il layer sottostante (liv. 6) che a sua volta userà il [[PoS]] del layer inferiore, fino ad arrivare alla comunicazione sul mezzo fisico.▼
In tal modo si realizza una comunicazione multilivello che consente, ad esempio, di implementare [[algoritmo|algoritmi]] diversi per l'instradamento in rete pur disponendo di protocolli di trasporto connessi.▼
▲== Livelli o layers (in ordine crescente) ==
ISO/OSI è stato progettato per permettere la comunicazione in reti a 'commutazione di pacchetto', del tutto simili al paradigma TCP-UDP/IP usato in [[Unix]] e nella rete [[ARPAnet]], poi divenuta [[Internet]]. La differenza sostanziale fra [[TCP/IP]] e ISO/OSI consiste nel fatto che nel [[TCP/IP]] il layer applicativo è esterno alla pila di protocolli (ovvero è una applicazione ''stand-alone'' che 'usa' [[TCP/IP]] per comunicare con altre applicazioni) , i layer sono dunque solo 5 ([[livello applicazioni|applicazione]], [[trasporto]], [[rete]], [[data-link]], [[fisico]]) e i livelli sessione, presentazione sono assenti perché implementati (eventualmente) altrove, cioè nell'applicazione stand-alone esterna.▼
ISO/OSI è uno stack di protocolli incapsulati, che sicuramente è più flessibile rispetto al paradigma di [[TCP/IP]], ma soltanto perché risulta più astratto rispetto a questo. In pratica non esistono implementazioni 'complete' di ISO/OSI , a parte quelle proprietarie (ad esempio DECNET della Digital) e di interesse accademico.▼
*'''[[livello fisico|Livello 1: fisico]]'''▼
''Obiettivo: trasmettere un flusso di dati non strutturati attraverso un collegamento fisico, occupandosi della forma e del voltaggio del segnale. Ha a che fare con le procedure meccaniche e elettroniche necessarie a stabilire, mantenere e disattivare un collegamento fisico.''▼
=== Elenco e funzioni dei livelli ===
*'''[[livello datalink|Livello 2: datalink]]'''▼
''Obiettivo: permettere il trasferimento affidabile di dati attraverso il livello fisico. Invia trame di dati con la necessaria sincronizzazione ed effettua un controllo degli errori e delle perdite di segnale.''▼
Questo livello si occupa di formare i dati da inviare attraverso il livello fisico, incapsulando i dati in un pacchetto provvisto di ''header'' (intestazione) e ''tail'' (coda), usati anche per sequenze di controllo.▼
▲:''Obiettivo: trasmettere un flusso di dati non strutturati attraverso un collegamento fisico, occupandosi della forma e del voltaggio del segnale. Ha a che fare con le procedure meccaniche e elettroniche necessarie a stabilire, mantenere e disattivare un collegamento fisico.''
Per ogni pacchetto ricevuto, il destinatario invia al mittente un pacchetto '''ACK''' (''acknowledgement'', conferma) contenente lo stato della trasmissione: il mittente deve ripetere l'invio dei pacchetti mal trasmessi e di quelli che non hanno ricevuto risposta. Per ottimizzare l'invio degli [[ACK]], si usa una tecnica detta '''Piggybacking''', che consiste nell'accodare ai messaggi in uscita gli [[ACK]] relativi ad una connessione in entrata, per ottimizzare l'uso del livello fisico. I pacchetti [[ACK]] possono anche essere raggruppati e mandati in blocchi.▼
▲:''Obiettivo: permettere il trasferimento affidabile di dati attraverso il livello fisico. Invia trame di dati con la necessaria sincronizzazione ed effettua un controllo degli errori e delle perdite di segnale.''
▲:Questo livello si occupa di formare i dati da inviare attraverso il livello fisico, incapsulando i dati in un pacchetto provvisto di ''header'' (intestazione) e ''tail'' (coda), usati anche per sequenze di controllo.
Questo livello si occupa anche di controllare il flusso di dati: in caso di sbilanciamento di velocità di trasmissione, si occupa di rallentare l'opera della macchina più veloce, accordandola all'altra e minimizzando le perdite dovute a sovraccarico.▼
▲:Per ogni pacchetto ricevuto, il destinatario invia al mittente un pacchetto '''ACK''' (''acknowledgement'', conferma) contenente lo stato della trasmissione: il mittente deve ripetere l'invio dei pacchetti mal trasmessi e di quelli che non hanno ricevuto risposta. Per ottimizzare l'invio degli [[ACK]], si usa una tecnica detta '''Piggybacking''', che consiste nell'accodare ai messaggi in uscita gli [[ACK]] relativi ad una connessione in entrata, per ottimizzare l'uso del livello fisico. I pacchetti [[ACK]] possono anche essere raggruppati e mandati in blocchi.
La sua unità dati fondamentale è la ''trama''.▼
▲:Questo livello si occupa anche di controllare il flusso di dati: in caso di sbilanciamento di velocità di trasmissione, si occupa di rallentare l'opera della macchina più veloce, accordandola all'altra e minimizzando le perdite dovute a sovraccarico.
*'''[[livello di rete|Livello 3: rete]]'''▼
''Obiettivo: rende i livelli superiori indipendenti dai meccanismi e dalle tecnologie di trasmissione usate per la connessione. Si occupa di stabilire, mantenere e terminare una connessione.''▼
▲:La sua unità dati fondamentale è la ''trama''.
È responsabile del '''routing''' (instradamento) dei pacchetti.▼
La sua unità dati fondamentale è il ''pacchetto''.▼
▲:''Obiettivo: rende i livelli superiori indipendenti dai meccanismi e dalle tecnologie di trasmissione usate per la connessione. Si occupa di stabilire, mantenere e terminare una connessione.''
*'''[[livello di trasporto|Livello 4: trasporto]]'''▼
''Obiettivo: permettere un trasferimento di dati trasparente e affidabile (implementando anche un controllo degli errori e delle perdite) tra due host.''▼
▲:La sua unità dati fondamentale è il ''pacchetto''.
A differenza dei livelli precedenti, che si occupano di connessioni tra nodi contigui di una rete, il Trasporto (a livello logico) si occupa solo del punto di partenza e di quello di arrivo.▼
Si occupa anche di effettuare la frammentazione, di ottimizzare l'uso delle risorse di rete e di prevenire la congestione.▼
▲:''Obiettivo: permettere un trasferimento di dati trasparente e affidabile (implementando anche un controllo degli errori e delle perdite) tra due host.''
▲:A differenza dei livelli precedenti, che si occupano di connessioni tra nodi contigui di una rete, il Trasporto (a livello logico) si occupa solo del punto di partenza e di quello di arrivo.
La sua unità dati fondamentale è il ''messaggio''.▼
▲:Si occupa anche di effettuare la frammentazione, di ottimizzare l'uso delle risorse di rete e di prevenire la congestione.
*'''[[livello di sessione|Livello 5: sessione]]'''▼
''Obiettivo: controllare la comunicazione tra applicazioni. Stabilire, mantenere e terminare connessioni (sessioni) tra applicazioni cooperanti.''▼
▲:La sua unità dati fondamentale è il ''messaggio''.
Si occupa anche di inserire dei punti di controllo nel flusso dati: in caso di errori nell'invio dei pacchetti, la comunicazione riprende dall'ultimo punto di controllo andato a buon fine.▼
▲:''Obiettivo: controllare la comunicazione tra applicazioni. Stabilire, mantenere e terminare connessioni (sessioni) tra applicazioni cooperanti.''
:Esso consente di aggiungere, ai servizi forniti dal livello di trasporto, servizi più avanzati, quali la gestione del dialogo (mono o bidirezionale), la gestione del token (per effettuare mutua esclusione) o la sincronizzazione (inserendo dei checkpoint in modo da ridurre la quantità di dati da ritrasmettere in caso di gravi malfunzionamenti).
*'''[[livello di presentazione|Livello 6: presentazione]]'''▼
''Obiettivo: trasformare i dati forniti dalle applicazioni in un formato standardizzato e offrire servizi di comunicazione comuni, come la crittografia, la compressione del testo e la riformattazione''.▼
▲:Si occupa anche di inserire dei punti di controllo nel flusso dati: in caso di errori nell'invio dei pacchetti, la comunicazione riprende dall'ultimo punto di controllo andato a buon fine.
Esso consente di gestire la sintassi dell'informazione da trasferire. E sono previste tre diverse sintassi:▼
astratta (definizione formale dei dati che gli applicativi si scambiano),▼
▲:''Obiettivo: trasformare i dati forniti dalle applicazioni in un formato standardizzato e offrire servizi di comunicazione comuni, come la crittografia, la compressione del testo e la riformattazione''.
▲:Esso consente di gestire la sintassi dell'informazione da trasferire. E sono previste tre diverse sintassi:
concreta locale (come i dati sono rappresentati localmente) ▼
▲:*astratta (definizione formale dei dati che gli applicativi si scambiano),
▲:*concreta locale (come i dati sono rappresentati localmente)
▲e di trasferimento (come i dati sono codificati durante il trasferimento).
:''Obiettivo: interfacciare utente e macchina.''▼
▲*'''[[livello applicazioni|Livello 7: applicazione]]'''
▲''Obiettivo: interfacciare utente e macchina.''
▲Ogni layer individua un protocollo di comunicazione del livello medesimo. ISO/OSI realizza una comunicazione per livelli, ovvero dati due nodi A e B, il livello n del nodo A può scambiare informazioni col livello n del nodo B ma non con gli altri: ciò conferisce modularità al sistema e semplicità di implementazione e reimplementazione. Inoltre ogni livello realizza la comunicazione col livello corrispondente su altri nodi usando il [[PoS]] (point of service) del livello immediatamente sottostante. Sicché ISO/OSI incapsula i messagggi di livello n in messaggi del livello n-1. Così se A deve inviare, ad esempio, una [[e-mail]] a B, l'applicazione (liv. 7) di A propagherà il messaggio usando il layer sottostante (liv. 6) che a sua volta userà il [[PoS]] del layer inferiore, fino ad arrivare alla comunicazione sul mezzo fisico.
▲In tal modo si realizza una comunicazione multilivello che consente, ad esempio, di implementare [[algoritmo|algoritmi]] diversi per l'instradamento in rete pur disponendo di protocolli di trasporto connessi.
▲ISO/OSI è stato progettato per permettere la comunicazione in reti a 'commutazione di pacchetto', del tutto simili al paradigma TCP-UDP/IP usato in [[Unix]] e nella rete [[ARPAnet]], poi divenuta [[Internet]]. La differenza sostanziale fra [[TCP/IP]] e ISO/OSI consiste nel fatto che nel [[TCP/IP]] il layer applicativo è esterno alla pila di protocolli (ovvero è una applicazione ''stand-alone'' che 'usa' [[TCP/IP]] per comunicare con altre applicazioni) , i layer sono dunque solo 5 ([[livello applicazioni|applicazione]], [[trasporto]], [[rete]], [[data-link]], [[fisico]]) e i livelli sessione, presentazione sono assenti perché implementati (eventualmente) altrove, cioè nell'applicazione stand-alone esterna.
▲ISO/OSI è uno stack di protocolli incapsulati, che sicuramente è più flessibile rispetto al paradigma di [[TCP/IP]], ma soltanto perché risulta più astratto rispetto a questo. In pratica non esistono implementazioni 'complete' di ISO/OSI , a parte quelle proprietarie (ad esempio DECNET della Digital) e di interesse accademico.
==Voci correlate==
|