Reti di Calcolatori
a.a. 2005/06
Lezione 2
Reti di Calcolatori
Andrea Frosini
1
Aspetti software delle reti di calcolatori
Per il funzionamento delle moderne reti di calcolatori, il software ha una enorme
importanza:
• il software di rete è estremamente complesso e articolato
• per facilitarne la progettazione, la verifica, l’implementazione ed il testing, il
software di rete è altamente strutturato ed organizzato in strati o livelli (layers)
• di conseguenza, l’architettura di una rete è organizzata come una gerarchia di
protocolli (protocol hierarchy)
Reti di Calcolatori
Andrea Frosini
2
Gerarchie di protocolli I
Nei diversi tipi di rete possono variare :
• il numero di livelli
• i nomi dei livelli
• il contenuto dei livelli
• le funzioni dei livelli
Principio generale:
scopo di un livello è offrire servizi ai livelli più alti,
nascondendo i dettagli di implementazione
Reti di Calcolatori
Andrea Frosini
3
Gerarchie di protocolli II
Il livello n su un host1 porta avanti una conversazione con il livello n di host2.
Le due entità coinvolte hanno pari dignità e si dicono peer entity.
Le regole che governano tale conversazione sono collettivamente indicate col termine
PROTOCOLLO
La comunicazione tra i due livelli n avviene utilizzando i servizi offerti dal livello n-1
In realtà non c’è trasferimento diretto di dati tra i due livelli n dialoganti:
- ogni livello di host1 passa i dati assieme a delle informazioni di controllo al livello
sottostante
- al di sotto del livello 1 si trova il mezzo fisico che provvede al trasferimento dei bit da
host1 a host2
- arrivati ad host2 i dati vengono passati da ciascun livello inferiore a quello superiore
finché non si raggiunge il livello n desiderato.
Reti di Calcolatori
Andrea Frosini
4
Gerarchie di protocolli III
Livello 5
Livello 4
interfacce
Livello 3
Livello 2
mezzo
fisico
Livello 1
Protocollo di livello 5
Protocollo di livello 4
Protocollo di livello 3
Protocollo di livello 2
Protocollo di livello 1
Livello 5
Livello 4
Livello 3
interfacce
Livello 2
Livello 1
0101000010101001111110101000010100101010
Reti di Calcolatori
Andrea Frosini
5
Gerarchie di protocolli IV
Tra ogni coppia di livelli adiacenti è definita una Interfaccia che caratterizza:
• le operazioni primitive che possono essere richieste al livello sottostante
• i servizi che possono essere offerti dal livello sottostante (es. connessione sicura …)
La progettazione delle interfacce è la chiave di volta per la costruzione di una buona rete
di comunicazione. Gli obiettivi primari devono essere:
• minimizzazione delle informazioni da trasferire
• scalabilità, cioè possibilità di modificare l'implementazione del livello con una più
attuale (e che offra quantomeno gli stessi servizi) senza dover progettare
nuovamente l’intera rete.
Reti di Calcolatori
Andrea Frosini
6
Architettura di rete I
L’insieme dei livelli e dei relativi protocolli è chiamato architettura di rete
La specifica dell’architettura deve essere sufficientemente dettagliata da
renderne possibile l’implementazione
I dettagli implementativi di ciascun livello, così come la definizione di
ciascuna interfaccia tra livelli, NON fanno parte dell’architettura di rete
Reti di Calcolatori
Andrea Frosini
7
Architettura di rete II
E’ quindi possibile che sui vari host di una rete ci siano implementazioni della stessa
architettura di rete che differiscono tra loro anche in termini di interfacce fra livelli,
purché gli host implementino correttamente i protocolli previsti (in tal modo
computer diversi per struttura e sistema operativo possono dialogare)
Dunque all’interno della stessa architettura di rete si ha che:
- tutti gli host devono contenere implementazioni uguali in termini di livelli e
sottolivelli.
- gli host possono contenere implementazioni che differiscono in termini di dettagli
implementativi e interfacce tra livelli
L’insieme dei protocolli di una determinata architettura usati da un determinato
calcolatore viene detto pila di protocolli (protocol stack).
Reti di Calcolatori
Andrea Frosini
8
Architettura di rete III
Una architettura di rete può essere: proprietaria, standard de facto o standard de
iure.
Una architettura proprietaria
• si basa su scelte indipendenti ed arbitrarie di un costruttore
• è generalmente incompatibile con architetture differenti
• rende raramente pubbliche le proprie specifiche
Esempi: IBM SNA (Systems Network Architecture), Digital Decnet Phase IV,
Novell IPX, Appletalk
Reti di Calcolatori
Andrea Frosini
9
Architettura di rete IV
Una architettura standard de facto
• è basata su specifiche di pubblico dominio
• è largamente adottate a livello mondiale
Esempio: Internet Protocol Suite (TCP/IP)
Una architettura standard de iure:
• è basata su specifiche pubbliche
• è approvata da enti internazionali di standardizzazione
Esempi: standard IEEE 802 (LAN), architettura OSI (Open Systems Interconnection), Decnet Phase V
Reti di Calcolatori
Andrea Frosini
10
Funzionamento del SW di rete (analogia)
Tipica analogia tra il funzionamento di una rete e l’esperienza umana:
Filosofo indù
industano-swahili
industano
Traduttore inglese
inglese
Segretaria
faxese
Reti di Calcolatori
inglese-inglese
fax-fax
canale
fisico
Andrea Frosini
Filosofo africano
swahili
Traduttore inglese
inglese
Segretaria
faxese
11
Funzionamento del SW di rete (analogia)
Tipica analogia tra il funzionamento di una rete e l’esperienza umana:
Filosofo indù
industano-swahili
industano
Traduttore inglese
inglese
Segretaria
faxese
Reti di Calcolatori
inglese-francese
fax-fax
canale
fisico
Andrea Frosini
Filosofo africano
swahili
Traduttore francese
francese
Segretaria
faxese
12
Commenti
Si noti che:
1.
Ogni protocollo è completamente indipendente, come mostra la sostituzione
traduttore inglese – traduttore francese
2.
Ogni peer entity immagina di parlare con la peer entity del livello corrispondente
3.
Ogni livello si disinteressa di come il messaggio giungerà a destinazione
4.
Il passaggio vero e proprio di dati avviene solamente tramite il fax, attraverso il
canale di comunicazione designato
Reti di Calcolatori
Andrea Frosini
13
Funzionamento del SW di rete: esempio
Host 2
Host 1
prot. liv. 4
prot. liv. 3
H3
H2 H3
T2
H2
T2 prot. liv. 2
H2 H3
T2 H2
H3
H2 H3
T2
H2
T2
T2
canale fisico
Reti di Calcolatori
Andrea Frosini
14
Funzionamento del SW di rete: concetti
In rete “tradurre” significa inserire/eliminare prefissi o suffissi al messaggio in arrivo
dal livello superiore o inferiore (comunicazione multi-livello).
Le peer entities pensano concettualmente ad una comunicazione solo tra di loro,
basata sul proprio protocollo di livello. In realtà comunicano ciascuna con il proprio
livello sottostante attraverso l’interfaccia che questo gli mette a disposizione.
Spesso i livelli bassi sono implementati in HW. Nonostante questo gli algoritmi SW
di gestione rimangono molto complessi.
Reti di Calcolatori
Andrea Frosini
15
Tipologie di servizi I
Servizi connection-oriented:
- modellati sul servizio telefonico
- hanno bisogno di
- stabilire una connessione
- scambiare informazioni per mezzo della connessione
- rilasciare la connessione
01
0 0 01
0 1 1
0 1
host1
Reti di Calcolatori
11 1
1
0
0
0
Andrea Frosini
0
1 1
1
host2
16
Tipologie di servizi II
Servizi connectionless:
- modellati sul servizio postale
- non hanno bisogno di una fase di allocazione delle risorse
- ogni pacchetto viaggia indipendentemente dagli altri
0 00
0
11
10
0
0
0
1
0
1 1
host1
Reti di Calcolatori
0
1
1
0
Andrea Frosini
1
host2
17
Servizi affidabili e non affidabili
Un servizio affidabile permette di non perdere i dati senza che il mittente ne sia
informato:
• tutti i dati spediti arrivano al destinatario, oppure viene segnalato un errore
• il ricevente invia un acknowledgment (conferma) al mittente per ogni pacchetto
ricevuto
• in caso di errori transienti di trasmissione, il mittente può rispedire automaticamente
i dati non giunti a destinazione
Un servizio non affidabile (spesso chiamato datagram service) non offre alcuna
certezza al mittente che i dati inviati siano stati effettivamente ricevuti dal destinatario
Reti di Calcolatori
Andrea Frosini
18
Esempi
Servizio
affidabile
non affidabile
connection-oriented
trasmissione di un file
voce digitalizzata
connectionless
richiesta ad un DB server
posta spazzatura
Osserviamo: se un livello non offre affidabilità del servizio, qualora questa sia
richiesta, dovrà essere fornita dai livelli superiori.
Reti di Calcolatori
Andrea Frosini
19
Primitive di definizione dei servizi
Specifica formale di un servizio di livello n-1 :
insieme di primitive (operazioni) che un'entità di livello n può utilizzare per
accedere al servizio stesso
Possono indicare
• l'azione da compiere (l'informazione va da livello n al livello n-1)
• cosa riportare in merito ad una azione effettuata dalla peer entity di livello n
(l'informazione va dal livello n-1 al livello n)
Esempi di servizi: stabilire una connessione, gestire i dati da inviare e ricevere,
disconnettersi …
Reti di Calcolatori
Andrea Frosini
20
Esempi di primitive
primitiva
servizio
request()
si chiede al servizio di fare qualcosa
indication()
si viene avvertiti, dal servizio, di qualche evento
response()
si vuole rispondere ad un evento
confirm()
la risposta che si attendeva è arrivata
Osserviamo: un servizio non confermato utilizzerà solo le primitive request() e
indication(), mentre un servizio con acknowledgment necessiterà di tutte e
quattro le primitive indicate.
Reti di Calcolatori
Andrea Frosini
21
Esempio di connessione connection oriented
1. connect.request();
primitiva
servizio
Reti di Calcolatori
Andrea Frosini
22
Esempio di connessione connection oriented
1. connect.request();
2. connect.indication();
Lv. n
3. connect.response();
1
5
Lv. n-1
4. connect.confirm();
7
4
host1
6
5. data.request();
si cerca di inviare i dati
tempo
6. data.indication();
Lv. n
sono arrivati dei dati
Lv. n-1
7. disconnect.request();
3
2
5
6
8
host2
si vuole terminare la connessione
8. disconnect.indication();
si stabilisce la si scambiano
connessione
dati
(confermato)
(non conf.)
l’altra entity vuole terminare
Reti di Calcolatori
Andrea Frosini
si termina la
connessione
(non conf.)
23
Servizi vs. protocolli
servizio: insieme di operazioni primitive che un livello offre al livello superiore. Come
tali operazioni siano implementate non riguarda il livello superiore.
protocollo: insieme di regole che governano il formato ed il significato delle
informazioni (messaggi, pacchetti) che le peer entity si scambiano fra loro. Le entità
usano i protocolli per implementare i propri servizi.
Reti di Calcolatori
Andrea Frosini
24
Servizi e interfacce
Dati due livelli n-1 ed n :
• il livello n-1 fornisce servizi al livello n (è il service provider)
• il livello n usa i servizi del livello n-1 ( è il service user)
• i servizi offerti dal livello n sono accessibili dal livello n+1 tramite i Service Access
Points (SAP) di livello n
• ogni SAP ha un identificatore (SAP address) che lo individua univocamente
• l’informazione inviata dal livello n al livello n-1 tramite il corrispondente (n-1)-SAP
è chiamata Protocol Data Unit di livello n o n-PDU
• la PDU di livello n entrando nel livello n-1 diventa una Service Data Unit di livello
n-1 o (n-1)-SDU
• il livello n-1 processa la (n-1)-SDU aggiungendo una Protocol Control Information
di livello n-1 detta (n-1)-PCI
• il tutto diventa la (n-1)-PDU che viene quindi passata al livello n-2
Reti di Calcolatori
Andrea Frosini
25
Problematiche comuni ai vari livelli I
Indirizzamento:
meccanismi di identificazione di mittente e destinatario in ogni livello
Regole per il trasferimento dati (livelli bassi):
• in una sola direzione (simplex connection)
• in due direzioni ma non contemporaneamente (half-duplex connection)
• in due direzioni contemporaneamente (full-duplex connection)
Meccanismi per il controllo degli errori di trasmissione:
rilevazione - correzione – segnalazione eventuali
Reti di Calcolatori
Andrea Frosini
26
Problematiche comuni ai vari livelli II
Meccanismi per il mantenimento dell’ordine originario dei dati e per la loro
ricostruzione
Meccanismi per regolare le velocità di sorgente e destinazione.
Decisioni sulla dimensione (minima o massima) dei messaggi da inviare, ed
eventuale frammentazione
Meccanismi di multiplexing di varie "conversazioni" su di un'unica connessione
Meccanismi di routing dei messaggi se esistono alternative, ed eventuale
suddivisione di una "conversazione" su più connessioni contemporaneamente
Reti di Calcolatori
Andrea Frosini
27
Scarica

servizi