Lezione 2 – Protocolli del livello di rete Sistemi di elaborazione dell’informazione Modulo 2 - Protocolli di rete TCP/IP Unità didattica 1 - Protocolli di rete Ernesto Damiani Frammentazione Problema Cosa succede se un pacchetto è piu grande della dimensione massima di un frame? Soluzione Il software di rete frammenta il pacchetto e aggiunge nello header un numero di frammento che permetterà di ricomporre il pacchetto originale alla destinazione. Le applicazioni mittente e destinataria non si accorgono di nulla (a parte il rallentamento dovuto alle operazioni di frammentazione). Dato Ethernet Frammento 2 trailer Header Ethernet header Header Ethernet Frammento 1 trailer Header Ethernet header Collo di bottiglia interno (1) All’interno dello host mittente sono necessarie delle operazioni di copia per portare il dato da trasmettere: 1. dallo spazio di memoria dell’applicazione a quello del kernel del sistema operativo (dove opera il software di rete); 2. e poi dallo spazio d’indirizzamento del kernel alla scheda di rete. Le operazioni di copia: • sono trasferimenti di dati tra zone di memoria RAM eseguiti dalla CPU; • avvengono alla velocità b del bus interno dell’host, che può essere inferiore alla velocità di trasmissione B del frame Ethernet in rete. Collo di bottiglia interno Il bit rate del collo di bottiglia interno è: • b è il bit rate del bus di sistema; • k (solitamente 2) è il numero delle operazioni di copia richieste per inviare un dato. Problema Se B> non stiamo sfruttando appieno la rete. Un host con un bus interno PCI con bit rate di picco a 1056 Mbyte/s e k=2 ha un collo di bottiglia a 4.24 Gbit/sec, troppo basso per una connessione Ethernet a 5 Gbit/sec. (2) Tecniche Gather-write 1. Il software di rete riceve dall’applicazione dei puntatori, cioè gli indirizzi del dato e dello header, e li copia nella scheda. FF00 FF00 Dato applicazione AD00 Header software di rete Ethernet 2. La scheda ricompone il trailer FF00 AD00 frame subito prima di Ethernet scheda mandarlo (gather-write), header usando gli indirizzi per un accesso DMA o inviando Ethernet Ethernet Dato Header trailer header un’interrupt. frame ricomposto • Si risparmia la prima copia e la seconda avviene sempre al peak rate del bus interno dell’host (PCI = 1056 Mbit/sec). • Si può fare anche in lettura (scatter-read). Indirizzi software (1) L’intestazione che il software di rete aggiuge ai dati da trasmettere dipende dal protocollo. CARATTERISTICHE: • contiene sempre un indirizzo software (tipicamente, una sequenza di 32 bit) che identifica il destinatario; • l’indirizzo è specificato dall’applicazione mittente, che di solito lo chiede all’utente. ATTENZIONE: NON è l’indirizzo Ethernet a 48 bit. Indirizzi software (2) • L’indirizzo Ethernet identifica una specifica scheda hardware. • L’indirizzo software identifica un’interfaccia software che viene usata dai programmi di un host per comunicare con altre applicazioni su altri host. – Più interfacce software possono coesistere sulla stessa scheda di rete. – L’indirizzo software viene deciso in fase di configurazione di un host e può essere cambiato; – L’indirizzo Ethernet - almeno in teoria - si stabilisce in fase di produzione della scheda. Recapito (1) Problema • L’applicazione mittente specifica l’indirizzo software del destinatario nello header del pacchetto. • La scheda di rete ha bisogno dell’indirizzo Ethernet della scheda del destinatario per inviare il frame che contiene il pacchetto. Come fa il software di rete a determinare l’indirizzo Ethernet corretto? Recapito (2) Possibili soluzioni • Usare come indirizzo software a 32 bit una sottosequenza di quello Ethernet, che sappiamo essere a 48 bit. Soluzione non usata nella pratica: perché? • Creare su tutti gli host della rete locale delle tabelle di traduzione tra indirizzi software e indirizzi Ethernet. È possibile usare il broadcast Ethernet per la costruzione e l’aggiornamento delle tabelle di traduzione? Instradabilità Protocolli non instradabili Permettono di comunicare solo alle applicazioni in esecuzione sui computer di una stessa rete locale. Protocolli instradabili Permettono di raggiungere interlocutori posti su altre reti locali, purché connesse a quella dove si trova il mittente tramite dispositivi di interconnessione detti instradatori o router. Permettono di creare delle inter-reti, infrastrutture di comunicazione composte da più reti locali collegate da router. Il più noto esempio d'inter-rete è Internet, l'inter-rete pubblica estesa a tutto il mondo. Condizioni di instradabilità (1) Gli indirizzi degli host posti sulla stessa rete locale devono avere uno stesso prefisso. Proprietà prefisso • Rende possibile il test del prefisso Se gli indirizzi del mittente e destinatario hanno lo stesso prefisso, il mittente traduce l’indirizzo del destinatario in indirizzo Ethernet e poi usa il recapito Ethernet per inviare il frame a destinazione; altrimenti manda il frame a un router. • Consente l’instradamento I router devono conoscere solo il percorso verso la rete a cui l’host di destinazione appartiene e non verso ogni specifico host destinatario. Condizioni di instradabilità • Gli indirizzi Ethernet non sono instradabili, come quelli del protocollo originale delle reti Microsoft (NetBEUI). • Infatti, guardando una coppia di indirizzi Ethernet non c’è modo di sapere se i corrispondenti host sono sulla stessa rete locale o meno. ATTENZIONE! I protocolli IP/SPX (Novell) e TCP/IP (standard di Internet) hanno indirizzi instradabili. FINE (2)