Lezione 1 – Introduzione al livello di rete Sistemi di elaborazione dell’informazione Modulo 2 - Protocolli di rete TCP/IP Unità didattica 1 - Protocolli di rete Ernesto Damiani Livello di rete I protocolli di rete locale, come Ethernet, offrono un servizio di recapito di frame tra le schede collegate alla stessa rete locale. Per utilizzare questo servizio, il sistema operativo degli host collegati alla rete locale deve comprendere un software in grado di: – ricevere dati dalle applicazioni locali; – trasmetterli ad altri attraverso la scheda. Questo software è oggi parte integrante di tutti i principali sistemi operativi (Windows, Linux, Unix, ecc.). Software di rete e ISO/OSI Il software di rete: • dal punto di vista del sistemista, è un servizio permanente (in gergo Unix, un daemon) del sistema operativo; • dal punto di vista del programmatore, è una libreria di funzioni per l’invio e la ricezione dati. Si incarica di tutte le funzioni dei livelli 3-6 dello stack ISO/OSI. Application Networking software Network interface Application Presentation Session Transport Network Data link Physical media OSI Pacchetti e frame Quando un'applicazione deve trasmettere un dato lo passa al software di rete che: • aggiunge un’intestazione (header) contenente delle informazioni di servizio, ottenendo un pacchetto; • inoltra il pacchetto alla scheda di rete. Dato pacchetto Dato Header pacchetto La scheda inserisce ogni pacchetto Ethernet Dato Header in un frame Ethernet diretto al trailer frame destinatario e lo spedisce sulla rete. NOTA BENE: l’applicazione si limita a generare il flusso di pacchetti, e non si occupa delle modalità del recapito dei frame. Ethernet header Modalità di connessione Reliable flow • Il mittente controlla prima se il destinatario è in linea mandandogli uno o più pacchetti speciali composti da solo header, senza dati. • Il destinatario conferma al mittente la ricezione di ogni pacchetto (compresi quelli che contengono dati) inviando un acknowledgement. Best effort • Si mandano i pacchetti di dati senza controlli o conferme. Header e protocolli Ci sono vari formati standard per gli header, definiti da protocolli a cui corrispondono altrettanti tipi di software di rete. Un protocollo definisce: 1. la struttura dello header (ovvero quali sono le informazioni di servizio da aggiungere ai messaggi); 2. le modalità di comunicazione. Il software di rete costituisce l'implementazione di un protocollo in un certo ambiente operativo (ad es. Linux o Windows). Architettura del software di rete La velocità delle due fasi di generazione dei pacchetti e di trasmissione dei frame è potenzialmente molto diversa, ad esempio: 1. in una chat la velocità di generazione dei pacchetti dipende dall’utente e può essere molto più bassa della velocità della scheda; 2. un server Web, al contrario, può generare più pacchetti al secondo di quanti la scheda riesce a smaltire. (1) Architettura del software di rete Il software di rete non è realizzato con il meccanismo della chiamata di funzione, ma con quello della comunicazione bufferizzata tra processi consumatori e produttori. Applicazione Software di rete • Buffer pieno: sospendi produttore. • Buffer vuoto: sospendi consumatore. Driver scheda di rete (2) Header fisso e header chain Protocolli a header fisso: tutti gli header hanno la stessa struttura. • Il software di rete deve solo decidere i valori da inserire nello header per ciascun pacchetto. • Approccio semplice ma rigido: per cambiare la struttura dello header devo sostituire il software. Protocolli header chain: definiscono un repertorio di header ammessi, che si possono concatenare. • Il software di rete sceglie (tra quelli ammessi) gli header giusti per ciascun pacchetto. • Approccio complesso ma estendibile: aggiungere al protocollo nuovi header per funzioni speciali (es. crittografia, compressione) non compromette il vecchio FINE software, che resta utilizzabile.