1 / 25

Il modello Client/Server

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.

bell-wright
Download Presentation

Il modello Client/Server

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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

  20. 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

  21. 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

  22. 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

  23. 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

  24. OSILivello di Applicazione (7) Il modello Client/Server Reti di Calcolatori

  25. 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

More Related