modello Client/Server Lo IlStandard OSI • 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. Host A Host B Application Application Presentation End to end peer protocols Presentation Session Session Communications Subnet Boundary Transport Network Transport Network Network Network Link Link Link Link Physical Physical Physical Physical Sub-net access protocols 2003-2004 Node Node Sub-net Reti di Calcolatori 1 Il modello Client/Server OSI come un sistema a livelli • 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 Host A Layer 7 P - Interface 6 Layer 6 S - Interface 5 Layer 5 T- Interface 4 Layer 4 N - Interface 3 Layer 3 D - Interface 2 Layer 2 Host B A - Protocol 7 P - Protocol 6 S - Protocol 5 T - Protocol 4 N - Protocol 3 D - Protocol 2 Layer 7 Layer 6 Layer 5 Layer 4 Layer 3 Layer 2 Interface 1 Layer 1 Ph - Protocol 1 Layer 1 Mezzo Trasmissivo 2003-2004 Reti di Calcolatori 2 Il modello OSI Client/Server Un po’ di nomenclatura • 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) 2003-2004 Reti di Calcolatori 3 Il modello OSI Client/Server (N)-SAP Service Access Point (N)-Service User (N)-Service User (N)-Service Definition (N)-Service Definition •La organizzazione è molto astratta e potrebbe essere applicata alla modellizzazione anche di molti sistemi (N)-Service Access Points (N)-Service entity (N)-Service Protocol specification (N-1)-Service Access Points (N-1)-Service Provider (N)-Service Provider 2003-2004 (N)-Service entity •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 4 Il modello Client/Server OSI: incapsulamento dei protocolli • 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 2003-2004 Reti di Calcolatori 5 Il modello OSI Client/Server Interazioni basate su Connessione 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: • • • • • 1. 2. 3. 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 2003-2004 Reti di Calcolatori 6 Il modello OSI Client/Server Interazioni senza stato • 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. 2003-2004 Reti di Calcolatori 7 Il modello OSI Client/Server I Protocolli: struttura generale Le primitive di un protocollo: (N)-Service User (N)-Service Provider (N)-Service User Servizio non confermato PRIMITIVA.REQUEST • Request: il service user richiede un servizio (una azione) PRIMITIVA.INDICATION PRIMITIVA.REQUEST • Indication: il service provider indica al service user che è stato richiesto un servizio (segnalazione di evento) • Response: il service user Servizio confermato t e m p o PRIMITIVA.INDICATION PRIMITIVA.CONFIRM PRIMITIVA.RESPONSE specifica la risposta alla richiesta di servizio (una azione) • Confirm: il service provider PRIMITIVA.REQUEST segnala la risposta alla richiesta di servizio (segnalazione di evento) Servizio parzialmente confermato PRIMITIVA.INDICATION PRIMITIVA.CONFIRM 2003-2004 Reti di Calcolatori 8 Il modello OSI Client/Server I Protocolli 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 per datagrammi • Una interazione connection oriented affidabile è invece la più completa: è uno stream 2003-2004 Reti di Calcolatori 9 Il modello OSI Client/Server Servizi e caratteristiche della interazione Qualche esempio di quali sono i requisiti di alcuni specifici servizi relativamente alle caratteristiche di interazione: Servizio Modalità di Interazione Tipo di Interazione Electronic junk mail Connectionless Datagram Mail importante Connectionless Datagram con conferma (affidabile) Query a Database Connectionless Protocollo request- reponse Voce su canale digitale Connection oriented Connessione non affidabile Remote login Connection oriented Stream di byte Video on demand Connection oriented Stream di byte con controllo qualità del servizio 2003-2004 Reti di Calcolatori 10 Il modello Client/Server OSI: Raggruppamento logico dei livelli Host A Host B Application Presentation Application Livelli utente o di applicazione Session Session Transport Livello Node si separazione Node Livelli di supporto Link Physical Physical 2003-2004 Transport Network Network Link Presentation Reti di Calcolatori 11 Il modello OSI Client/Server Livello di Network(3) 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) b a s s o ca rico N odo c o d a o u tp u t a l to c a r i c o • Vale il principio della separazione: i nodi intermedi non devono essere coinvolti ai livelli superiori rispetto a quello di network 2003-2004 Reti di Calcolatori 12 Il modello OSI Client/Server Livello di Network(3) 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 S E C C H IO c h e P E R D E a rriv o m e s s a g g i m es s aggi => s i accodano c a p a c i tà C s e c'è s p a z io to k e n n e l s e c c h i o fl u s s o u s c i ta R a l tr i m e n ti s c a r to coda output coda input 2003-2004 Reti di Calcolatori 13 Il modello OSI Client/Server Livello di Trasporto (4) Livelli utente Livelli utente Transport Service Interface Transport Layer (Layer 4) Transport Protocol (an end-to-end peer protocol) Livelli di comunicazione Transport Layer (Layer 4) Livelli di comunicazione OSI Sub-net Remote End system Local End system 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 2003-2004 Reti di Calcolatori 14 Il modello OSI Client/Server Livello di Trasporto (4) 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: • Qualità di Servizio: molti indicatori per garantire diversi livelli di qualità del servizio: • • • • • • • • • Nessuno stato di connessione Mappatura dei pacchetti applicativi sui datagram del livello 3 Gestione della affidabilità (se richiesta) attraverso ack e rispedizione dei datagram 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 2003-2004 Reti di Calcolatori 15 Il modello OSI Client/Server Livello di Trasporto (4) • 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 Data Unit Transport Layer 2003-2004 Suddivisione delle DU (split) Reti di Calcolatori Transport Layer 16 Il modello OSI Client/Server Livello di Trasporto (4) • Il trasporto può lavorare unendo o decomponendo flussi di trasporto rispetto a quelli di rete (Multiplexing). end system T - Layer end system Applicazione Applicazione Presentazione Presentazione Sessione Sessione Trasporto Trasporto Rete Rete Rete Linea Linea Linea Fisico Fisico Fisico sottorete 1 Upward Multiplexing Downward Multiplexing sottorete 2 N - Layer T - Layer N - Layer Intermediate System 2003-2004 Reti di Calcolatori 17 Il modello OSI Client/Server Livello di Sessione (5) 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 2003-2004 Reti di Calcolatori 18 Il modello OSI Client/Server Livello di Sessione (5) • 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. 2003-2004 Reti di Calcolatori 19 Il modello OSI Client/Server Livello di Presentazione (6) 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 • 2003-2004 Reti di Calcolatori 20 Il modello OSI Client/Server Livello di Presentazione (6) • 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 2003-2004 Reti di Calcolatori 21 Il modello OSI Client/Server Livello di Applicazione (7) 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 • Directory service • System Management • Common Management Information • Service • Protocol • File Transfer, Access and Management • Virtual Terminal Standard • Distributed Transaction Processing • MHS X.500 X.700 CMISE CMIP FTAM VT DTP OSI adotta un approccio particolare basato sul modello ad Oggetti per la specifica delle applicazioni 2003-2004 Reti di Calcolatori 22 Il modello OSI Client/Server Livello di Applicazione (7) 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 2003-2004 Reti di Calcolatori 23 Il modello OSI Client/Server Livello di Applicazione (7) Applicazione Job T ransfer Manipulation MHS Distr. T ransaction P rocessing Directory Remote Database Access System Managament FT AM Virt. T erm ROSE CCR Service ACSE RT SE ASN.1, BER, X.216, X,226 Presentazione 2003-2004 Reti di Calcolatori 24 Il modello OSI Client/Server Le implementazioni 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 STRATI CONCETTUALI APPLICATIVO 4 3 2 1 Processo Trasporto Rete Data Link 4 Livello applicativo 3 Livello di trasporto 2 Livello internet 1 Interfaccia di rete ORGANIZZAZIONE DEL SOFTWARE APP. 1 APP. 3 APP. 2 APP: Applicativi (es. ftp, finger,etc.) TRASPORTO PT 1 PT 2 PT: Protocollo di trasporto (es. tcp, udp) INTERNET PI 1 PI 2 PI: Protocollo internet (es. IP) RETE 2003-2004 PR 1 PR 2 PR: Protocollo di rete (es. Ethernet, HDLC) Reti di Calcolatori 25