Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

27
Reti di Calcolat ori Andrea Frosini 1 Reti di Calcolatori a.a. 2005/06 Lezione 2

Transcript of Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

Page 1: 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

Page 2: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.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

Page 3: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 4: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 5: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 6: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 7: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 8: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 9: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 10: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 11: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 12: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 13: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 14: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 15: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 16: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 17: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 18: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 19: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 20: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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 …

Page 21: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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.

Page 22: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

Reti di Calcolatori Andrea Frosini 22

Esempio di connessione connection oriented

1. connect.request();

servizio

primitiva

Page 23: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 24: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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.

Page 25: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 26: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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

Page 27: Reti di CalcolatoriAndrea Frosini1 Reti di Calcolatori a.a. 2005/06 Lezione 2.

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