I semestre 03/04 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 2 Lo scambio di informazioni tra entità in esecuzione su sistemi distinti è detto computer communication L insieme dei computer interconnessi tramite una rete di comunicazione è detto computer network Lo scambio di dati tra due entità è un operazione molto complessa che richiede di esaminare numerosi aspetti difficile progettare un software che possa gestire tutti gli aspetti della comunicazione Modello di un Sottosistema di Comunicazione Astrazione di Sottosistema di Comunicazione 3 L astrazione di un sottosistema di comunicazione è organizzato a strati (livelli) sovrapposti uno strato definisce un'astrazione di una parte del sottosistema di comunicazioni ogni strato è costruito sugli strati inferiori Vantaggi la progettazione di uno strato deve esaminare solo un aspetto del problema ogni strato non dipende dall'implementazione degli altri stati uno strato fornisce servizi comuni a tutte le funzioni dello strato superiore 4 comunicazione tra applicazioni implementa la logica dell applicazione comunicazione tra calcolatori implementa il servizio di trasmissione affidabile comunicazione tra dispositivi fisici consente la trasmissione di dati attraverso una rete di comunicazione
Esempio: Trasferimento di File Servizi e Protocolli 5 il modulo di servizi di comunicazione fornisce servizi comuni a tutte le applicazioni sia per il trasferimento file che per la posta elettronica, ecc. l implementazione del modulo di accesso alla rete dipende dalla rete fisica tutti i dettagli legati alla rete sono confinati in questo modulo il modulo di servizi di comunicazione può essere implementato in modo indipendente dalla rete 6 Uno strato fornisce servizi allo strato superiore nascondendogli i dettagli relativi all'implementazione Lo strato utilizza i servizi dello strato inferiore la collaborazione dell entità dello strato equivalente (peer) del sistema destinatario Protocollo insieme di regole utilizzate dalle due entità per scambiarsi informazioni specifica cosa deve essere comunicato, in che modo e quando Architettura di Rete Architettura di Rete a Strati L insieme degli strati in cui è diviso il sottosistema di comunicazione, con le specifiche dei servizi offerti e dei protocolli utilizzati costituisce l architettura di rete (o architettura protocollare) comprende solo specifiche funzionali e non implementazioni L insieme dei protocolli utilizzati dai vari strati di un architettura è detta suite (gerarchia) 7 8
Modello di Progettazione Esempio di Architettura di Rete 9 10 Modello Semplificato a Tre Livelli Livello di accesso alla rete Livello di trasporto Livello delle applicazioni Livello di Accesso alla Rete Si occupa di scambio di dati tra computer e rete identificazione di sorgente e destinazione specifica del tipo di servizio richiesto dipende dal tipo di rete fisica utilizzata esiste un implementazione diversa per ogni tipo di rete i livelli superiori sono isolati da tali differenze 11 12
Livello di Trasporto Si occupa di garantire uno scambio affidabile dei dati controllo degli errori controllo della sequenza dei pacchetti richiesta di ritrasmissione controllo del flusso Livello delle Applicazioni Si occupa di fornire i servizi associati ad ogni applicazione es. e-mail, ftp, http supporta diverse applicazioni ogni applicazione ha i propri servizi Indipendente dalla rete e dall'applicazione 13 14 Interfacce e Servizi La comunicazione tra strati adiacenti avviene tramite un'interfaccia definisce quali servizi offre lo strato inferiore e quali sono le operazioni corrispondenti lo strato superiore richiede il servizio invocando l'operazione ogni servizio è implementato da primitive per questioni di efficienza la richiesta del servizio non è necessariamente una chiamata a funzione Punti di Accesso I servizi di uno strato sono disponibili presso un SAP (service access point) sportello dove è disponibile il servizio in genere implementato come coda di messaggi Ogni SAP ha un indirizzo univoco L utente deve specificare l indirizzo del SAP per il servizio richiesto esistono diversi livelli di indirizzamento, uno per ogni livello 15 16
Esempio Implementazione del Servizio 17 Applicazione Trasporto Accesso alla Rete Applicazione Trasporto Accesso alla Rete Punto di accesso al servizio Indirizzo di rete Rete di Telecomunicazione Applicazione Trasporto Accesso alla Rete 18 L utente invia una IDU(interface date unit) al SAP contiene informazioni di controllo e dati Il fornitore preleva una IDU dal SAP ed esegue la corrispondente primitiva di servizio crea uno o più PDU (Protocol Date Unit) e li trasmette al suo pari per trasmettere un PDU richiede un servizio al suo fornitore Tipi di Servizi Orientati alla connessione i dati viaggiano in ordine sullo stesso percorso affidabile (dati persi vengono ritrasmessi) Senza connessione ogni pezzo di dato viaggia per suo conto con o senza riscontro di ricezione Protocol Data Unit Ogni protocollo prevede lo scambio di pacchetti (Protocol Data Unit) Una PDU contiene intestazione o header (dati di controllo aggiunti dal protocollo) corpo o body (dati utente) coda o tail (dati di controllo aggiunti dal protocollo) Header e tail sono usate dal protocollo per controllare la comunicazione 19 20
Informazioni di Controllo Esempio di Comunicazione L header di una PDU contiene informazioni utilizzate dall entità del protocollo Esempi indirizzo del sistema e del SAP di destinazione numero di sequenza (per poter riordinare le PDU) codice per la individuazione di errori di trasmissione codice identificativo di servizi particolari (es. priorità) 21 22 23 Progettazione di un Protocollo Ogni protocollo deve definire regole per regolare i seguenti aspetti indirizzamento segmentazione e riassemblaggio incapsulamento controllo della connessione controllo degli errori controllo del flusso multiplexing servizi di trasmissione un protocollo non deve necessariamente gestire tutti gli aspetti 24 Incapsulamento Definisce quali informazioni di controllo vengono aggiunte ai dati e come vengono organizzate all interno di una PDU indirizzi, controllo degli errori, controllo del protocollo
Frammentazione e Riassemblaggio Divide un messaggio in blocchi di dimensione fissata ogni blocco inserito in una PDU Vantaggi controllo errori su ogni blocco utilizzo equo del mezzo trasmissivo in caso di errori ritrasmissione solo di un blocco minori ritardi buffer di dimensione ridotte Svantaggi maggiore elaborazione Controllo della Connessione Per servizi orientati alla connessione il protocollo deve provvedere a creare la connessione trasferire i dati chiudere la connessione 25 minor throughput 26 Fasi di una Connessione Controllo degli Errori e del Flusso 27 Nella fase di creazione della connessione le entità si accordano su come scambiarsi i dati in casi semplici il ricevente accetta o rifiuta altrimenti viene eseguita una negoziazione All'interno della connessione controlli per corretta sequenza dei blocchi di dati controllo degli errori controllo del flusso Nella fase di terminazione le due entità concordano di chiudere la comunicazione 28 Il controllo degli errori serve ad individuare eventuali alterazioni dei dati o delle informazioni di controllo implementato in due fasi: individuazione degli errori e ritrasmissione dei dati a volte si usano codici che riescono ad individuare e correggere gli errori Il controllo del flusso è utilizzato dal ricevente per limitare la velocità con cui la sorgente gli invia i dati la sorgente non deve inviare più dati di quanti il ricevente possa ricevere
Indirizzamento Livelli di Indirizzamento (TCP/IP) Identificazione univoca di un'entità nella rete esistono diversi livelli di indirizzamento ogni livello ha una propria visibilità Indirizzo fisico (locale ad una rete) indirizzo MAC Indirizzo di rete (globale sull interrete) indirizzo IP (TCP/IP) o Network Service Access Point (OSI) Indirizzo del processo (locale al sistema) numero di porta (TCP/IP) o Service Access Point (OSI) livelli di indirizzamento visibilità modalità di indirizzamento 29 30 Tipi di Indirizzamento Indirizzi assegnati a host o processi Unicast multicast broadcast Multiplexing Corrispondenza di più connessioni ad un livello con una sola connessione al livello inferiore consente di aggregare i dati e ottimizzare l'efficienza della trasmissione Identificatori assegnati alla connessione (circuiti virtuali) riduce overhead istradamento fissato per la connessione é necessario un meccanismo di disaggregazione (demultiplexing) 31 32
Servizi di Trasmissione Priorità precedenza ai messaggi di controllo Quality of service minimo ritardo accettabile minimo throughput accettabile Sicurezza restrizioni di accesso 33