sistemi e tecnologie della comunicazione lezione 2: architettura delle reti e modello osi
TRANSCRIPT
Sistemi e Tecnologie della Comunicazione
Lezione 2: architettura delle reti e modello OSI
2
Architettura di rete
• Una rete e’ costituita da componenti hardware (cavi, interfacce, circuiti integrati, processori, RAM,…) e componenti software (per la implementazione di algoritmi finalizzati al trasferimento dei dati non realizzabili in hardware).
• L’architettura di una rete definisce le specifiche con cui si vuole realizzarla
3
Architettura strutturata
Per ridurre la complessita’ del problema lo si spezza in parti
Si definisce l’insieme di compiti che ogni parte deve eseguire
Si definiscono i meccanismi con cui le diverse parti interagiscono tra loro
Si maschera la implementazione di ciascuna parte alle altre parti
4
Architettura stratificata La strutturazione piu’ idonea per una architettura di rete e’
la stratificazione La rete viene strutturata in livelli (strati, o layer), visti come
una pila di oggetti Ciascuno strato ha come compito quello di fornire un
servizio allo strato superiore. La definizione delle regole di accesso ai servizi offerti da uno
strato costituisce la interfaccia tra quello strato e lo strato superiore, ed e’ l’unica cosa che lo strato superiore deve conoscere
Ciascuno strato realizza i servizi per lo strato superiore comunicando logicamente con lo strato paritario del nodo remoto, attraverso un insieme di regole dette protocollo. Lo scambio di dati con lo strato paritario viene realizzato utilizzando i servizi dello strato sottostante.
I dettagli implementativi di come i servizi che lo strato N fornisce allo strato N+1 vengano realizzati (il protocollo di strato N) sono sconosciuti agli altri strati
5
Struttura a strati
6
Lo strato
Uno strato e’ definito quando sono definite le sue funzioni
Uno strato puo’ occuparsi dello scambio dei dati tra due applicazioni, senza occuparsi di questioni relative al modo in cui i dati debbano viaggiare sulla rete, o alla codifica dei dati
Un altro strato puo’ occuparsi di come recapitare i dati attraverso i vari nodi della sottorete, senza occuparsi ne’ del significato dei dati, ne’ del modo in cui vanno codificati i bit sul mezzo trasmissivo
Una questione comune a tutti gli strati riguarda l’indirizzamento
uno strato fornisce servizio a diverse entita’ dello strato superiore, e deve poter indirizzare i dati verso la destinazione corretta
7
Il protocollo
Un protocollo e’ un insieme di regole che definiscono la comunicazione tra due strati di pari livello
Esempio: protocollo per trasferimento di file il client comunica al server “voglio trasferire un file” ed attende
la risposta dal server il server risponde “tu chi sei?” ed attende la comunicazione dal
client il client invia lo username il server risponde
non sei autorizzato dammi la password
nel primo caso il client chiude, nel secondo invia la password il client comunica il nome del file che vuole trasferire il server fornisce il file il client legge il file e lo copia localmente il server chiude la comunicazione
8
Protocol Data Unit
Il protocollo definisce quindi le modalita’ con cui due entita’ comunicano
Generalmente un protocollo prevede lo scambio di dati e di informazioni di controllo per gestire la comunicazione; ad esempio:
informazioni di controllo per negoziare le caratteristiche della comunicazione (la dimensione dei pacchetti, la velocita’, …)
informazioni di riscontro (acknowledge) sulla ricezione dei dati
Il pacchetto unitario (dati o informazioni di controllo) che si scambiano due strati paritari e’ detto PDU
Normalmente ci si riferisce alla PDU dello strato X con la sigla X-PDU, o XPDU
9
Il servizio
Il servizio offerto da uno strato allo strato superiore definisce cosa lo strato superiore puo’ ottenere dallo strato inferiore; ad esempio: servizio di recapito dei dati affidabile o non affidabile servizio orientato alla connessione o connection less servizi di comunicazione multicast o broadcast
Il servizio e’ sostanzialmente la definizione di un rapporto client-server, dove il client e’ lo strato superiore ed il server e’ lo strato inferiore
10
Servizi orientati alla connessione
La comunicazione si sviluppa in tre fasi: attivazione della connessione: in questa fase non ci
si scambiano “dati”, ma si eseguono le operazioni necessarie al successivo scambio di dati (si allocano le risorse, ci si accorda sulle modalita’ di comunicazione, eventualmente si rifiuta la connessione, …)
trasferimento dati: non e’ necessario che i dati siano indirizzati, in quanto la loro destinazione e’ determinata dall’appartenenza ad una connessione.
rilascio della connessione: il rilascio lo si fa in modo che entrambi i lati della connessione siano consapevoli di cio’, e rilascino le risorse
L’esempio classico di servizio connection oriented e’ la comunicazione telefonica
11
Servizi non orientati alla connessione
La comunicazione non prevede una fase iniziale, ne’ una fase finale: i dati vengono inviati alla controparte senza sapere se e’ pronta a riceverli.
Ogni blocco di dati deve riportare l’indirizzo del destinatario (e del mittente)
Il servizio non orientato alla connessione funziona come il servizio postale
12
Qualita’ del servizio
Servizio affidabile garantisce che i dati arrivino correttamente a
destinazione, nell’ordine giusto il servizio realizza l’affidabilita’ utilizzando un
protocollo che preveda riscontri sulla ricezione dei dati.
Servizio inaffidabile non si occupa di garantire la riuscita del
trasferimento dei dati, o dell’ordinamento degli stessi: qualora fosse necessario, si occuperanno della cosa gli strati superiori.
13
Qualita’ del servizio (2)
I servizi orientati alla connessione si possono classificare:
flusso affidabile di messaggi (servizio affidabile orientato al messaggio: una sequenza di pagine di un libro, fax)
flusso affidabile di byte (servizio affidabile orientato al byte: trasferimento file)
connessione inaffidabile (servizio non affidabile: telefonia)
I servizi non orientati alla connessione si possono classificare:
servizio di datagramma inaffidabile (servizio inaffidabile: accesso ad un database)
servizio di datagramma affidabile (protocolli di data link layer)
14
L’interfaccia
L’interfaccia tra due strati adiacenti definisce le modalita’ con cui lo strato superiore puo’ usufruire dei servizi offerti allo strato inferiore
L’interfaccia e’ specificata dalla definizione di primitive di servizio, che istruiscono lo strato inferiore ad eseguire determinate azioni
L’interfaccia definisce anche i parametri che gli strati si scambiano (ad esempio un puntatore alla PDU che lo strato superiore deve inviare o che lo strato inferiore deve recapitare)
nel caso di implementazioni software, le primitive di servizio sono di fatto chiamate a funzione, ed i parametri sono gli argomenti delle funzioni
15
Primitive di servizio
Le primitive di servizio costituiscono le operazioni che lo strato superiore ha a disposizione per accedere al servizio
Queste dipendono dalla natura del servizio reso disponibile
un servizio connection oriented mettera’ a disposizione primitive del tipo
Listen (attesa di una connessione entrante) Connect (richiede una connessione) Receive (attesa di dati) Send (invio di dati) Disconnect (richiesta di disconnessione)
un servizio connection less potrebbe avere le sole Send e Receive
16
Definizione della architettura
L’architettura (stratificata) della rete si realizza con la definizione di strati: partizionamento delle funzionalita’ protocolli: come comunicano i processi
paritari servizi: quali servizi lo strato e’ in grado
di offrire allo strato superiore interfacce tra gli strati: come lo strato
superiore accede ai servizi offerti dallo strato inferiore
17
Flusso dei dati
18
Flusso dei dati (2)
Ogni livello organizza la sua comunicazione come se avvenisse direttamente con il processo paritario, secondo il protocollo (flusso virtuale).
I dati in realta’ scorrono dal livello superiore al livello inferiore nel nodo che trasmette, ed in senso inverso nel nodo che riceve
In generale un livello N preleva la PDU del livello N+1, e costruisce la propria PDU:
se necessario spezza la PDU dello strato superiore in pezzi aggiunge in testa a ciascun pezzo un header con informazioni di
controllo se deve, aggiunge in coda a ciascun pezzo un trailer con
informazioni di controllo ciscun pezzo cosi’ formato costituisce una PDU del livello N
Il livello N accede quindi ai servizi dello strato N-1 per inviare i dati al processo paritario N sul nodo remoto
19
Modello OSI
Nel 1977 l’ISO ha costituito un gruppo che producesse uno standard universale per le architetture di rete
Il modello e’ stato pubblicato nel 1983 col nome OSI (Open System Interconnection)
Lo scopo era quello di definire una architettura (strati, protocolli, interfacce) in modo sufficientemente preciso da consentire implementazioni indipendenti ma interoperanti in realta’ il modello non definisce esattamente i
protocolli ed i servizi, ma piu’ in generale quello che ogni strato deve fare; le specifiche di protocolli e servizi sono state definite e pubblicate a parte.
20
Livelli del modello OSI
21
Livelli OSI: fisico
Lo strato fisico si occupa della trasmissione dei bit sul mezzo trasmissivo
La sua funzione e’ di fare in modo che un bit 0 sia ricevuto dal livello fisico del nodo remoto come bit 0, e non come 1
Problemi tipici di questo livello sono: la codifica (i valori delle tensioni, la durata dei
bit) proprieta’ meccaniche dei connettori specifiche elettriche dei circuiti dell’interfaccia caratteristiche del mezzo trasmissivo direzionalita’ della trasmissione
22
Livelli OSI: data link
Lo strato di data link si occupa di trasformare una trasmissione di bit grezzi tra nodi adiacenti in una linea di trasmissione priva di errori (!)
Esegue funzioni quali divisione dei dati in frame controllo degli errori conferma della ricezione (acknowledge) controllo del flusso controllo di accesso al mezzo trasmissivo in
caso di canali condivisi (substrato MAC: Medium Access Control)
23
Livelli OSI: network
Lo strato di network si occupa del recapito dei dati tra nodi non necessariamente adiacenti (quindi del funzionamento della sottorete di comunicazione)
Funzioni caratteristiche sono: suddivisione dei dati in pacchetti indirizzamento dei nodi della rete recapito a destinazione (su quale canale uscente
inoltrare i dati provenienti da un canale), solitamente basandosi su tabelle
modalita’ di definizione ed aggiornamento delle tabelle
controllo della congestione, dei ritardi, dei tempi di transito
24
Livelli OSI: transport
Lo strato di trasporto deve prelevare dati dallo strato superiore, eventualmente suddividerli in unita’ piu’ piccole, ed inviarli (tramite lo strato di rete) la nodo remoto occupandosi di controllare che le unita’ arrivino al processo pari del nodo remoto nell’ordine di trasmissione
E’ il primo protocollo end-to-end Deve occuparsi del tipo di servizio offerto allo
strato superiore (affidabile, non affidabile) OSI specifica solo un servizio connection oriented
Affronta diverse problematiche simili a quelle del livello di data link
25
Livelli OSI: session
Lo strato di sessione si occupa del controllo del dialogo controllo su quale delle due parti abbia
diritto di trasmettere supervisione di una connessione lunga
con eventuale ripristino della connessione in caso di fallimento del livello sottostante
26
Livelli OSI: presentation
Il livello di presentazione si occupa essenzialmente di rendere trasparente eventuali rappresentazioni differenti dei dati codifiche differenti dei dati (ASCII/EBCDIC, …)
ASCII: American National Standard Code for Information Interchange
EBCDIC: Extended Binary Coded Decimal Interchange Code
compressione crittografia
27
Livelli OSI: application
Il livello di applicazione si occupa di definire le specifiche che le applicazioni utente possono utilizzare per accedere alla rete
L’ISO ha fornito specifiche su sole tre applicazioni: FTAM (file transfer) X.400 (posta elettronica) X.500 (servizio di directory)
28
Schema del modello OSI
29
Service Access Point
Uno strato puo’ fornire servizio a piu’ entita’ dello strato superiore
Per essere identificabili queste entita’ devono avere un indirizzo
L’indirizzo generico di accesso ad uno strato si chiama Service Access Point (SAP)
L’indirizzo di accesso allo strato di Network e’ detto NSAP, allo strato di trasporto TSAP
Lo strato N del computer ricevente deve sapere a quale entita’ dello strato N+1 deve recapitare le informazioni, quindi ricevere dal pari l’informazione dell’ NSAP utilizzato dallo strato N+1 destinatario
30
Primitive di servizio
Nel modello OSI ci sono 4 categorie di primitive: request: una entita’ chiede al servizio di
fare qualcosa indication: una entita’ deve essere
informata su un qualche evento response: una entita’ vuole rispondere
ad un evento confirm: una entita’ deve essere
informata sulla sua richiesta
31
Esempio
In una comunicazione orientata alla connessione tra due computer si avra’ la seguente sequenza:
connect.request: lo strato N chiede che venga stabilita una connessione
connect.confirm: lo strato N-1 informa sulla realizzazione della connessione
data.request: lo strato N chiede di inviare dati
disconnect.request: lo strato N chiede di chiudere la connessione
connect.indication: lo strato N viene informato sulla richiesta di connessione
connect.response: lo strato N accetta (o rifiuta) la connessione
data.indication: lo strato N viene avvisato che sono arrivati dati
disconnect.indication: allo strato N viene notificata la richiesta di disconnessione
1 2
34
5 6
78