330 likes | 664 Vues
Lo Standard OSI. Il modello Client/Server. OSI (open system interconnection) è soprattutto uno standard di interconnessione. Vuole fornire una struttura adatta alla comunicazione tra nodi, reti, sottoreti e tutti i possibili elementi di un sistema interconnesso. OSI come un sistema a livelli.
E N D
Lo Standard OSI Il modello Client/Server • OSI (open system interconnection) è soprattutto uno standard di interconnessione. • Vuole fornire una struttura adatta alla comunicazione tra nodi, reti, sottoreti e tutti i possibili elementi di un sistema interconnesso. Reti di Calcolatori
OSI come un sistema a livelli Il modello Client/Server • Ogni livello ha un suo protocollo per comunicare con il pari livello nell’altro nodo • I livelli hanno una interfaccia standard per il livello inferiore ed una per il superiore Reti di Calcolatori
OSIUn po’ di nomenclatura Il modello Client/Server • Host: un qualsiasi nodo di rete anche intermedio, non solo Computer • (N)-Layer: livello N del modello • (N)-Protocol: protocollo del livello N-esimo • (N)-Entity: entità attiva (processo cliente o servitore) relativa ad uno specifico layer • Definizione del servizio (descrizione verticale): insieme delle caratteristiche (interfaccia) che un layer offre al livello superiore • Specifica del Protocollo (descrizione orizzontale): specifica dettagliata di come il livello fornisce il servizio tramite scambio di dati ed informazioni tra le due realizzazioni dei sistemi comunicanti • Implementazione: realizzazione del protocollo per lo specifico livello. I protocolli non sono sempre visibili, spesso non sono gestibili dai livelli superiore • SAP – Service Access Point: Interfaccia logica tra una (N-1)-entity ed una (N)-entity insieme delle API: insieme delle funzioni disponibili • (N)-SAP: Service Access Point di livello N-esimo • (N)-address: identifica un insieme di SAP al confine tra il livello (N) ed il livello (N+1) Reti di Calcolatori
OSI(N)-SAP Service Access Point Il modello Client/Server • La organizzazione è molto astratta e potrebbe essere applicata alla modellizzazione anche di molti sistemi • OSI definisce le sole specifiche di comunicazione, nessuna specifica a livello locale (procedure/processi/ etc.) • per ogni livello, sono possibili e riconosciute implementazioni a procedure • implementazioni a processi ancora più parallele Reti di Calcolatori
OSI: incapsulamento dei protocolli Il modello Client/Server • Si ragiona dall’alto verso il basso: • Ogni protocollo di livello inferiore prende il pacchetto del livello superiore e lo considera come un pacchetto dati • La ricezione segue il percorso inverso dal basso verso l’alto Reti di Calcolatori
OSIInterazioni basate su Connessione Il modello Client/Server • Ci sono due modalità di interazione tra un client ed un server: • Connection Oriented: Si stabilisce una connessione tra entità pari che devono comunicare. • Le caratteristiche della connessione sono negoziate durante la fase iniziale • In modalità connection oriented la comunicazione tra due utenti di pari livello avviene in tre fasi: • apertura della connessione • trasferimento di dati sulla connessione • terminazione della connessione • Il servizio connection-oriented di un livello deve fornire le opportune funzionalità per le tre fasi • Viene creato un cammino tra il mittente ed il destinatario una strada identificata da uno stato sulla rete. • La qualità del servizio può essere gestita attraverso la connessione • In linea di principio, la connessione non significa impegno di risorse su eventuali nodi intermedi necessariamente • CONNESSIONE OSI tipicamente impegna risorse sul cammino dal Mittente al Destinatario Reti di Calcolatori
OSIInterazioni senza stato Il modello Client/Server • Connectionless: Nessuna negoziazione e valutazione della interazione • Vengono inviati i pacchetti dal mittente al destinatario senza preparare una struttura di connessione • Ogni unità di dati è trasferita in modo indipendente dalle altre unità ed è autocontenuta per arrivare all'utente desiderato (senza ordinamento) • Lo scambio di informazioni tra i due pari avviene senza storia e senza nessun concetto di negoziazione • La Qualità del Servizio non è gestibile, si può solo implementare politiche di reliability rispedendo i pacchetti persi, ma non ci sono strumenti per la gestione del traffico • Le interazioni connectionless non impegnano risorse sulla rete, sono quindi necessarie in condizioni particolarmente onerose, come ad esempio nella comunicazione uno a molti. Reti di Calcolatori
OSII Protocolli: struttura generale Il modello Client/Server • Le primitive di un protocollo: • Request:il service user richiede un servizio (una azione) • Indication: il service provider indica al service user che è stato richiesto un servizio (segnalazione di evento) • Response: il service user specifica la risposta alla richiesta di servizio (una azione) • Confirm: il service provider segnala la risposta alla richiesta di servizio (segnalazione di evento) Reti di Calcolatori
OSII Protocolli Il modello Client/Server • Le Primitive possono avere diverse caratteristiche: • Primitive Asincrone: non si aspettano nessuna risposta, non si coordinano con le pari dall’altra parte • Primitive Asincrone Bloccanti: attendono un Acknowledge per cedere nuovamente il controllo. • Primitive Sincrone: si coordinano con una conferma al pari dell’avvenuto scambio di informazioni. La primitiva è quindi bloccante perché non cede il controllo finché non è terminata l’interazione • I protocolli possono invece avere le seguenti caratteristiche: • Protocolli Affidabili: garantiscono la consegna di messaggi e quindi la correttezza della informazione • Protocolli Non Affidabili: non sono in grado di garantire la consegna e quindi demandano al livello applicativo la gestione della evvenuta consegna • Una interazione connectionless non affidabile è quindi la più semplice; questo tipo di interazione è detta perdatagrammi • Una interazione connection oriented affidabileè invece la più completa: è uno stream Reti di Calcolatori
OSIServizi e caratteristiche della interazione Il modello Client/Server Qualche esempio di quali sono i requisiti di alcuni specifici servizi relativamente alle caratteristiche di interazione: Reti di Calcolatori
Host A Host B Host A Host B Application Application Presentation Presentation Session Session Transport Transport Node Node Network Network Link Link Physical Physical OSI: Raggruppamento logico dei livelli Il modello Client/Server Livelli utente o di applicazione Livello si separazione Livelli di supporto Reti di Calcolatori
OSILivello di Network(3) Il modello Client/Server • Network: si occupa della gestione del sistema rete, della possibilità cioè di gestire comunicazione attraverso molti nodi e non solamente punto a punto • Deve garantire il passaggio delle informazioni senza interferire sulle stesse (overhead, corruzione dei dati…) • Identificazione dei nodi (naming) • Determinazione dei percorsi di comunicazione (routing) • Controllo del flusso • I nodi intermedi devono garantire il trasferimento • Gestione del traffico, politiche per gestire la congestione ed evitare i deadlock • Definizione di ruoli specifici nella gestione dell’istradamento (router, gateway…) • Controllo degli errori (corruzione dei pacchetti) • Vale il principio della separazione: i nodi intermedi non devono essere coinvolti ai livelli superiori rispetto a quello di network Reti di Calcolatori
OSILivello di Network(3) Il modello Client/Server • Gestione del traffico in congestione in modo efficiente ed equo, ci sono diverse politiche: • Scarto di datagrammi: se un nodo è congestionato può iniziare a scaricare (non rispedire) alcuni pacchetti per ridurre il flusso. Lo scarto deve essere ragionato, scarta solo datagrammi e preserva i pacchetti di ack • Pacchetti di choke: il nodo congestionato avvisa gli altri nodi con pacchetti specifici invece di rispedire solo i pacchetti che riceve • Algoritmi leaky bucket: si definisce un buffer (il secchio) l’uscita di questo buffer è sempre costante (nel tempo) quando il buffer è pieno scarto i datagrammi Reti di Calcolatori
OSILivello di Trasporto (4) Il modello Client/Server • Il Trasporto separa i livelli relativi alla comunicazione da quelli più vicini alla applicazione • Il suo ruolo è di spedire dati sul canale di connessione con correttezza, con certi tempi di risposta e con una specifica qualità del servizi, indipendentemente da come questo è stato ottenuto • Le richieste a questo livello possono arrivare da uno qualsiasi dei livelli superiori, il livello di trasporto offre la astrazione della comunicazione ende-to-end Reti di Calcolatori
OSILivello di Trasporto (4) Il modello Client/Server • Il tipo di interqazione viene gestito da questo livello: • Modalità Connection Oriented: • apertura e terminazione di una connessione • trasferimento di dati normali e privilegiati (expedited) • I dati expedited sono soggetti ad un controllo di flusso separato che permette l'invio di messaggi di controllo anche se il servizio per i dati normali è bloccato • Impegno di risorse intermedie per la gestione del canale virtuale • Uso di pacchetti di tipo datagram e di tipo ack forniti dal livello 3 • Modalità connectionless: • Nessuno stato di connessione • Mappatura dei pacchetti applicativi sui datagram del livello 3 • Gestione della affidabilità (se richiesta) attraverso ack e rispedizione dei datagram • Qualità di Servizio: molti indicatori per garantire diversi livelli di qualità del servizio: • Ritardo nel set-up di connessione e probabilità di errore: ritardo tra il tempo di richiesta e il tempo di completamento (e tempo massimo accettato) • Throughput: numero di byte trasferiti per secondo • Tempo di ritardo: ritardo tra l'istante di invio e la possibile disponibilità per il pari (massimo ritardo ammissibile detto jitter) • (Probabilità o Rapporto di) Errore residuo: rapporto tra il numero di messaggi non corretti e quelli buoni • Priorità: importanza relativa di alcuni messaggi • Errore del Trasporto (resilience): probabilità della terminazione della connessione Reti di Calcolatori
OSILivello di Trasporto (4) Il modello Client/Server • La fase in cui si stabilisce una connessione implica la negoziazione tra i pari per la qualità richiesta della connessione. • È possibile che il pari (o uno dei due) non possa fornire quanto richiesto, e allora • o si adegua la QoS richiesta • o non si fa la connessione • A questo livello non viene gestita una eventuale negoziazione del QoS problema applicativo • Il trasporto può spezzare il dato e ricomporlo dopo averlo trasportato fino al pari suddiviso Reti di Calcolatori
OSILivello di Trasporto (4) Il modello Client/Server • Il trasporto può lavorare unendo o decomponendo flussi di trasporto rispetto a quelli di rete (Multiplexing). Reti di Calcolatori
OSILivello di Sessione (5) Il modello Client/Server • Il livello di Sessione coordina il dialogo tra gli utenti basandosi sul servizio offerto dal livello di Trasporto • Il livello di Sessione offre servizi analoghi a quelli del livello di Trasporto, quindi: • apertura della connessione e sua terminazione • trasferimento dati (si possono avere fino a quattro tipi di dato) • Servizi aggiunti e specializzati per: • gestione dell'interazione modalità di dialogo half-duplex, full-duplex o simplex • Sincronizzazione: • inserimento dei punti di sincronizzazione (checkpoint) • La successione dei punti di sincronizzazione individua una successione di stati della comunicazione • Un esempio di un servizio offerto dalla sessione è un trasferimento file con resume: Trasmissione di un file da due ore bloccata riprende dal risultato del trasferimento precedente • Controllo del Dialogo: • Possibilità di intervenire sul dialogo tra pari • Se si verificano errori nella comunicazione => roll-back • attività: è possibile iniziare, terminare, interrompere, riprendere e cancellare parti di lavoro dette attività • eccezioni: è possibile notificare eccezioni al servizio corrispondente Reti di Calcolatori
OSILivello di Sessione (5) Il modello Client/Server • Gestione del Recovery: • abbandono: reset della comunicazione corrente l'utente può decidere di provare a ripeterla • ripristino: la comunicazione è riportata nello stato precedente l'ultimo punto di sincronizzazione maggiore confermato, si possono ritrasmettere i dati successivi • diretto: la comunicazione è riportata in uno stato arbitrario senza controllo delle conferme "mancanti" di punti di sincronizzazione • Connessione con QoS negoziata: le connessioni a questo livello hanno una semantica sempre più complessa • Si attuano negoziazioni attraverso la presenza di package di servizi detti Unità funzionali • Quelle basi sempre presenti le altre negoziate • Esistono dei package standard, questi package offrono diversi servizi di sessione e si può decidere nella fase di negoziazione cosa attivare e cosa no: • Esempio: in un servizio di trasferimento dati posso avere una base con le seguenti funzionalità: • Apertura connessione, Trasferimento affidabile, Chiusura connessione • Ci possono essere poi altre funzionalità negoziabili in funzione delle capacità dei due pari: stop temporaneo del trasferimento, resume, inizio da una specifica posizione del file … etc. Reti di Calcolatori
OSILivello di Presentazione (6) Il modello Client/Server • Questo livello si occupa della gestione delle informazioni: La codifica delle informazioni non infatti in generale univoca, ogni pari può usare codifiche diverse • Quali sono le necessità relative alla codifica: • differenze naturali tra i sistemi che comunicano • migliorare la comunicazione (efficienza e sicurezza) • uso di compressione dei dati (efficienza) • crittografia dei dati (sicurezza) • I dati devono essere scambiati dopo un accordo tra i pari che superi gli eventuali problemi di eterogeneità: • linguaggi di programmazione diversi C e ADA • sistemi operativi diversi UNIX e VMS • architetture diverse ALPHA e RISC • Necessità di accordarsi. Bisogna definire un contesto di comunicazione: • il soggetto della comunicazione • la semantica delle informazioni • le informazioni vere e proprie • Il livello di presentazione stabilisce come negoziare e definire una base comune Reti di Calcolatori
OSILivello di Presentazione (6) Il modello Client/Server • Il livello di presentazione ha responsabilità di: • distinguere informazioni in forma astratta e concreta • specificare i dati e le informazioni di controllo in modo indipendente dalla forma concreta • definire una forma comune per le informazioni astratte (anche diversa per connessioni diverse) • definire una forma comune di rappresentazione concreta dei dati (non coincidente con une delle due coinvolte e richiedendo trasformazioni) • Si definisce un linguaggio astratto di specifica (ASN.1 Abstract Syntax Notation) e una codifica concreta di descrizione dei dati(BER Basic Encoding Rules) • Se la negoziazione iniziale di contesto (ASN.1) può fornire un accordo completo • I dati vengono trasformati in accordo a questo • Si usa un formato standard BER anche efficiente • Se la negoziazione non lo consente • I dati viaggiano insieme alla descrizione standard • OVERHEAD ELEVATO • ESTREMA FLESSIBILITÀ • Infatti ASN.1 consente non solo di passare dati non previsti inizialmente, ma anche codice e di creare accordo durante la comunicazione stessa • Possibilità di passare anche codice, quindi programmi applicativi per la gestione di specifici problemi Reti di Calcolatori
OSILivello di Applicazione (7) Il modello Client/Server • Il livello di Applicazione è il livello che si interfaccia con l'utente finale della comunicazione in base al modello OSI • Il ruolo di questo livello è di nascondere la complessità dei livelli sottostanti coordinando il dialogo tra le applicazioni distribuite. • Il livello applicativo OSI standard definisce un insieme di servizi indipendenti dal sistema e li fornisce a programmi di utente o ad utenti • Diversi standard (ISO 9545): • Message Handling System MHS • Directory service X.500 • System Management X.700 • Common Management Information • Service CMISE • Protocol CMIP • File Transfer, Access and Management FTAM • Virtual Terminal Standard VT • Distributed Transaction Processing DTP • OSI adotta un approccio particolare basato sul modello ad Oggetti per la specifica delle applicazioni Reti di Calcolatori
OSILivello di Applicazione (7) Il modello Client/Server • Alcuni esempi di servizi standard a livello applicativo: • Servizi X.500: Il servizio di direttorio consente di collocare e classificare ogni dispositivo noto in un sistemadi nomi gerarchico • Directory per tutti gli apparati tipicamente usati • Nomi unici • Spesso si riferisce una entità attraverso il suo identificatore specificato come sequenza di scelte • Quando non si riesce ad utilizzare X.500 si deve attraverso ASN.1 completare la richiesta • Il livello di applicazione è caratterizzato come un insieme di strumenti; questi strumenti, possono essere logicamente divisi in sotto-livelli in funzione delle loro caratteristiche. Gli strumenti di base sono: • ACSE (Association Control Service Element): di base per ogni servizio • RTSE (Reliable Transfer Service Element): per ottenere servizi affidabili • ROSE (Remote Operation Service Element): per ottenere operazioni remote • CCR (Commitment Concurrency and Recovery): protocollo per garantire azioni coordinate Reti di Calcolatori
OSILivello di Applicazione (7) Il modello Client/Server Reti di Calcolatori
OSILe implementazioni Il modello Client/Server • OSI è un modello concettuale, le implementazioni seguono il modello ma fanno delle semplificiazioni: • È sufficiente ragionare con un set di livelli semplificato • I livelli per esempio implementati dalla suite TCP/IP Reti di Calcolatori