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
Scarica

Reti II parte