Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.
-
Upload
livio-gianni -
Category
Documents
-
view
212 -
download
0
Transcript of Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.
Reti di Calcolatori Andrea Frosini 1
Reti di Calcolatoria.a. 2005/06
Lezione 2
Reti di Calcolatori Andrea Frosini 2
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)
Aspetti software delle reti di calcolatori
Reti di Calcolatori Andrea Frosini 3
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 4
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.
Gerarchie di protocolli II
Reti di Calcolatori Andrea Frosini 5
Gerarchie di protocolli III
Livello 5 Livello 5
Livello 4 Livello 4
Livello 3 Livello 3
Livello 2 Livello 2
Livello 1 Livello 1
Protocollo di livello 5
Protocollo di livello 4
Protocollo di livello 3
Protocollo di livello 2
Protocollo di livello 1
0101000010101001111110101000010100101010
interfacce interfacce
mezzo fisico
Reti di Calcolatori Andrea Frosini 6
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.
Gerarchie di protocolli IV
Reti di Calcolatori Andrea Frosini 7
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 8
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 9
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
Architettura di rete III
Reti di Calcolatori Andrea Frosini 10
Una architettura standard de facto
• è basata su specifiche di pubblico dominio
• è largamente adottate a livello mondiale
Esempio: Internet Protocol Suite (TCP/IP)
Architettura di rete IV
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 11
Tipica analogia tra il funzionamento di una rete e l’esperienza umana:
Funzionamento del SW di rete (analogia)
Filosofo indù Filosofo africano
Traduttore inglese Traduttore inglese
Segretaria Segretaria
industano
inglese
swahili
inglese
faxese faxesecanale fisico
inglese-inglese
fax-fax
industano-swahili
Reti di Calcolatori Andrea Frosini 12
Tipica analogia tra il funzionamento di una rete e l’esperienza umana:
Funzionamento del SW di rete (analogia)
Filosofo indù Filosofo africano
Traduttore inglese Traduttore francese
Segretaria Segretaria
industano
inglese
swahili
francese
faxese faxesecanale fisico
inglese-francese
fax-fax
industano-swahili
Reti di Calcolatori Andrea Frosini 13
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
Commenti
Reti di Calcolatori Andrea Frosini 14
Funzionamento del SW di rete: esempio
Host 1 Host 2
H3 H3
H3H2 T2 H2 T2 H3H2 T2 H2 T2
H3H2 T2 H2 T2
prot. liv. 4
prot. liv. 3
prot. liv. 2
canale fisico
Reti di Calcolatori Andrea Frosini 15
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.
Funzionamento del SW di rete: concetti
Reti di Calcolatori Andrea Frosini 16
Servizi connection-oriented:
- modellati sul servizio telefonico
- hanno bisogno di
- stabilire una connessione
- scambiare informazioni per mezzo della connessione
- rilasciare la connessione
Tipologie di servizi I
host1 host2
1
10
0
0 0 0 1 0 1 1 11110
00
1 110
Reti di Calcolatori Andrea Frosini 17
Servizi connectionless:
- modellati sul servizio postale
- non hanno bisogno di una fase di allocazione delle risorse
- ogni pacchetto viaggia indipendentemente dagli altri
Tipologie di servizi II
host1 host2
1 00
000
0 1
111
10
00
1 110
0
Reti di Calcolatori Andrea Frosini 18
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 19
Osserviamo: se un livello non offre affidabilità del servizio, qualora questa sia richiesta, dovrà essere fornita dai livelli superiori.
Esempi
Servizio affidabile non affidabile
connection-oriented trasmissione di un file voce digitalizzata
connectionless richiesta ad un DB server posta spazzatura
Reti di Calcolatori Andrea Frosini 20
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 21
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 22
Esempio di connessione connection oriented
1. connect.request();
servizio
primitiva
Reti di Calcolatori Andrea Frosini 23
Esempio di connessione connection oriented
1. connect.request();
2. connect.indication();
3. connect.response();
4. connect.confirm();
5. data.request(); si cerca di inviare i
dati
6. data.indication(); sono arrivati dei dati
7. disconnect.request(); si vuole terminare
la connessione
8. disconnect.indication();l’altra entity vuole terminare
host1
host2
Lv. n
Lv. n-1
Lv. n
Lv. n-1
1
2
3
4
5
5
7
6
6
8
tempo
si stabilisce la connessione (confermato)
si scambianodati
(non conf.)
si termina laconnessione
(non conf.)
Reti di Calcolatori Andrea Frosini 24
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 25
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
Servizi e interfacce
Reti di Calcolatori Andrea Frosini 26
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
Problematiche comuni ai vari livelli I
Reti di Calcolatori Andrea Frosini 27
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
Problematiche comuni ai vari livelli II