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