Architettura di TCP/IP a.a. 2002/03 L’architettura di Internet è organizzata intorno IP a tre servizi organizzati gerarchicamente Prof. Vincenzo Auletta Servizi Applicativi [email protected] http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica Servizio di trasporto affidabile TCP Servizio inaffidabile di consegna di pacchetti IP 2 IP: Internet Protocol IP:Internet Protocol È il livello di Network di TCP/IP Il livello Network si occupa di: consente a due entità di protocollo di trasporto, residenti su macchine differenti, di scambiare messaggi in modo trasparente Un protocollo datato ... ... ma non obsoleto 3 FTP, telnet, ... 4 servizi di rete indirizzamento istradamento qualità del servizio dimensione massima dei pacchetti controllo degli errori controllo del flusso Delegati al livello di trasporto TCP IP: Internet Protocol IP: Internet Protocol IP fornisce un servizio non connesso Il protocollo IP provvede a: Ogni datagram (pacchetto IP) è trattato separatamente Pacchetti relativi alla stessa sessione potrebbero seguire percorsi differenti nell’internet inaffidabile La consegna del datagram al destinatario non è garantita al meglio delle possibilità (best try) definire il formato delle unità elementari di dati (datagram) trasferiti su una rete TCP/IP fornire un metodo di indirizzamento universale per l’internet scegliere il percorso che un datagram segue nell’internet per giungere a destinazione definire le regole che servono a implementare il concetto di consegna inaffidabile di datagram Il protocollo non decide mai deliberatamente di eliminare un datagram 5 6 Esempio di Architettura di Rete FTP client Interazioni di IP con altri Protocolli User Proc. FTP server TCP TCP IP IP 7 User Proc. TCP router 802.3 driver User Proc. 802.3 driver UDP User Proc. Application Transport IP 802.5 driver ICMP IP IGMP Network ARP HW Intrfc RARP Link 802.5 driver 8 Indirizzi IP Formato degli Indirizzi IP Un indirizzo IP identifica univocamente un utente Sono ampi 32 bit (4 byte) Si scrivono come 4 numeri decimali separati dal dei servizi di rete L’indirizzo è assegnato all’interfaccia di rete un host può avere più indirizzi IP (multihomed), uno per ogni interfaccia di rete il formato dell’indirizzo è indipendente dal tipo di rete fisica a cui l’host è collegato carattere “.” Ogni numero rappresenta il contenuto di un byte ed è quindi compreso tra 0 e 255 Esempi Gli indirizzi sono assegnati da una autorità unica che ne garantisce l’univocità 9 Fino al 98 una persona si occupava di tutto Attualmente la Internet Corporation for Assigned Names and Numbers (ICANN) si occupa di assegnare gli indirizzi ed i nomi 10 Indirizzi IP Schema di Indirizzamento con le Classi Ogni indirizzo è formato da due parti Meccanismo di indirizzamento originario identificativo di rete identificativo di host Gli indirizzi a due livelli facilitano la politica di Pensato per l’internet degli anni 80 Non ha retto alla enorme diffusione di Internet Prevede 5 classi di indirizzi gestione degli indirizzi e l’istradamento dei datagram sull’internet 11 131.190.0.2 1.1.2.17 200.70.27.33 I gateway utilizzano l’identificativo di rete per far arrivare il datagram alla rete fisica del destinatario Il gateway della rete del destinatario utilizza l’identificativo di host per trasferire il datagram al destinatario 12 Le classi differiscono per la lunghezza degli identificativi di rete e di host La lunghezza complessiva è sempre 32 bit La classe di un indirizzo è identificata dai primi 4 bit Formato degli Indirizzi di classe A, BeC 0 1 0 7 8 Formato degli Indirizzi di classe D ed E 0 1 2 3 31 Rete 1 1 1 0 Host 0 1 2 15 16 31 Rete 0 1 2 3 Host 1 1 11 Classe B 0 1 2 3 Rete Reserved for Future Use Host Classe C 14 Classe A Classe B Identificativo di rete Identificativo di rete 7 bit max 128 reti valori compresi tra 0.0.0.0 e 127.255.255.255 24 bit max 16M host 0 1 0 7 8 Rete 14 bit max 16K reti valori compresi tra 128.0.0.0 e 191.255.255.255 Identificativo di host Identificativo di host 15 31 Classe E 31 23 24 1 1 0 13 Multicast Address Classe D Classe A 1 0 31 16 bit max 64K host 0 1 2 31 Host 16 1 0 15 16 Rete 31 Host Classe C Classe D Identificativo di rete destinato per un insieme di host che appartengono 21 bit max 2M reti valori compresi tra 192.0.0.0 e 223.255.255.255 ad un gruppo multicast ...lo vedremo in dettaglio in seguito Identificativo di host valori compresi tra 224.0.0.0 e 239.255.255.255 8 bit max 256 host 0 1 2 3 1 1 0 Rete 0 1 2 3 31 23 24 1 110 Host 17 31 multicast group ID 18 Classe E Assegnazione degli Indirizzi destinato per usi futuri L’autorità centrale assegna gli identificativi di rete valori compresi tra 240.0.0.0 e 255.255.255.255 l’utente fa richiesta per una classe di indirizzi L’amministratore di rete assegna gli identificativi di host 0 1 2 3 1 111 31 la responsabilità sull’univocità degli indirizzi di host è delegata ad un’autorità locale E’ possibile assegnare arbitrariamente indirizzi a riservato per usi futuri host senza richiederli all’ICANN 19 20 ...questi indirizzi non possono essere utilizzati sull’Internet Indirizzi di Rete e Indirizzi di Host Ordine di Trasmissione Un indirizzo IP si può riferire sia ad un singolo host network byte order: che ad un’intera rete l’indirizzo di host 0 è riservato e identifica la rete nel suo complesso utilizzato nelle tabelle di routing Esempio 0-7 8-15 16-23 24-31 Byte ordering per interi binari: 192.41.218.10 identifica l’host 10 della rete di classe C 192.41.218 192.41.218.0 identifica la rete di classe C 192.41.218 21 bit bit bit bit Macchine con Big Endian: o.k. Macchine con Little endian...devono fare la conversione a network byte order 22 IP Routing: Cenni IP Routing: Tavola di Routing Se la destinazione è connessa direttamente all’host Lo strato di IP di un sistema può essere configurato come un host oppure come host+router Lo strato di IP ha una tavola di routing (che usa ogni volta che riceve un datagram) contenente: o su una rete condivisa (e.g. ethernet/token ring): il datagram è mandato direttamente a destinazione Altrimenti l’host manda il datagram ad un router di default che lo spedirà a destinazione è tutto semplice?... Indirizzo IP di destinazione: di rete o completo Indirizzo di next-hop router o di net-id direttamente connessa Flag: specificano il tipo dei due indirizzi precedenti specifiche di quale interfaccia di rete su cui immettere il datagram per la trasmissione /sbin/route (...Unix) – route PRINT (NT) 23 24 Indirizzi Riservati Utilizzo della Tavola di Routing matching con l’indirizzo di host completo tutti 0 manda il pacchetto al next-hop router o all’interf. connessa direttamente (indicati) point-to-point tutti 0 matching con l’indirizzo di rete manda il pacchetto al next-hop router o all’interf. connessa direttamente (indicati) ethernet host rete manda il pacchetto al next-hop router indicato broadcast limitato tutti 1 altrimenti... packet undeliverable 25 host unreachable network unreachable 26 any (in genere 0.0.1) tutti gli host di rete broadcast diretto loopback Indirizzi di Broadcast Indirizzo di Loopback Un indirizzo con tutti i bit dell’ identificativo di host L’indirizzo 127.0.0.1 è riservato per il loopback uguali ad 1 identifica tutti gli host di una rete: net-id broadcast un datagram spedito ad un indirizzo broadcast verrà consegnato a tutti gli host della rete su alcune reti può essere molto costoso Esempio 27 127 host su questa rete tutti gli host della rete tutti 1 default route questo host l’indirizzo identifica lo stesso host che ha spedito il datagram utile per test e debugging consente di gestire la comunicazione tra processi sulla macchina locale allo stesso modo che tra processi remoti lo standard IP vieta di definire indirizzi con 192.41.218.255 identifica tutti gli host della rete 192.41.218.0 identificativi di rete 127 L’indirizzo 255.255.255.255 identifica tutti gli host della rete a cui è collegato il mittente: 28 Reti Logiche e Fisiche: Esempio di classe C Indirizzi Locali Alcuni identificativi di rete sono stati riservati per uso privato 192.41.218.0 Ogni organizzazione è libera di assegnare questi indirizzi ai suoi host I router non istraderanno mai datagram da e verso host con questi indirizzi .254 Router 193.205.162.0 193.205.162.0 .1 .2 30 Esaurimento degli Indirizzi di classe B Debolezze dello Schema di Indirizzamento una rete di 256 host richiede un indirizzo di classe L’indirizzo IP si riferisce alla connessione alla rete B se un host cambia rete deve cambiare indirizzo Problematico gestire utenti mobili Se un host ha più indirizzi il comportamento del protocollo IP dipende dall’indirizzo utilizzato se una rete di classe C supera i 255 host tutti gli indirizzi devono essere riconvertiti a classe B 31 .4 Bridge 10.0.0.0 172.16.0.0 192.168.0.0 29 .254 .3 Indirizzi disponibili .2 .1 Cambia l’identificativo di rete Tutti i router dovrebbero aggiornare le tabelle di routing Nessuno richiede indirizzi di classe C 32 oltre 65000 indirizzi inutilizzati gli indirizzi di classe B sono quasi esauriti Come migliorare l’utilizzo dello spazio degli indirizzi di IP, mantenendo la compatibilità con il vecchio sistema? Assegnare lo stesso identificativo di rete a più reti fisiche...subnetting Subnetting Uso del Subnetting L’indirizzo IP è diviso in una parte pubblica (ex rete) La dimensione dell’identificativo di rete della parte locale non è fissata ed una parte locale (ex host) parte pubblica parte locale parte pubblica rete host 254 sottoreti da 254 host (8 bit net-id + 8 bit host)...-2 6 sottoreti da 8190 host (3 bit net-id + 13 bit host)...-2 il routing nell’internet è fatto sulla parte pubblica 8190 sottoreti da 6 host (13 bit net-id + 3 host)...-2 Compatibile con il vecchio schema Per interpretare correttamente gli indirizzi c'è dimensione ridotta delle tavole sull’Internet 33 • la parte locale è divisa in un identificativo di rete fisica ed un identificativo di host 34 bisogno di distinguere tra identificativo di rete e host Netmask Esempio di Netmask Un amministratore che vuole partizionare una rete Partizionare la rete di classe B 140.252.0.0 in in sottoreti deve definire una netmask 14 subnet da 4094 host maschera di 32 bit bit a 1 in corrispondenza dei campi network e subnetwork bit a 0 in corrispondenza del campo host • Netmask 255.255.240.0 o 140.252.0.0/20 • 11111111 11111111 11110000 00000000 Lo standard ammette tutte le sequenze di 32 bit come maschere nella realtà vengono utilizzate solo maschere costituite da una sequenza di 1 seguita da una sequenza di 0 35 consente la massima flessibilità per la gestione dello spazio degli indirizzi una rete di classe B può essere divisa per esempio in Es. 11111111 (255.255.248.0) 11111111 11111000 00000000 36 • Notazione alternativa • {network, subnet, host} • La sottorete 2 ha indirizzo (140.252, 2, 0) • L’indirizzo di broadcast della sottorete 2 è (140.252, 2, -1) Subnet Classe C: 192.41.218.0/28 NET ID PRIMO HOST ULTIMO NET ID PRIMO HOST ULTIMO .0 .1 .14 .128 .129 .142 Indirizzi di Broadcast per Sottoreti Lo standard stabilisce che con k bit si possono specificare 2k indirizzi di sottoreti .16 .17 .30 .144 .145 .158 .32 .33 .46 .160 .161 .174 .48 .49 .62 .176 .171 .190 .64 .65 .78 .192 .193 .206 .80 .81 .94 .208 .209 .224 .96 .97 .110 .224 .225 .238 .112 .113 .126 .240 .241 .254 37 Ogni sottorete ha un proprio indirizzo di rete ed un indirizzo di broadcast indirizzo di host formato da tutti 0 o tutti 1 E’ possibile associare anche un indirizzo di rete ed un indirizzo di broadcast all’insieme delle sottoreti 38 però non si possono usare gli indirizzi di sottorete 0 e 2k-1 la soluzione dipende dal router i router CISCO vietano l’uso di 0 e 2k-1 come indirizzi di sottorete Indirizzi di Subnet di Lunghezza Variabile Schema di Indirizzamento senza Classi (CIDR) E’ possibile costruire sottoreti con netmask di Agli inizi degli anni 90 ci si è resi conto che gli lunghezza differente indirizzi disponibili si stavano esaurendo Es. divide una rete di classe C in una sottorete con 126 host e due sottoreti con 62 host più difficile la gestione dell’instradamento ed è sconsigliata la soluzione del subnetting aveva solo rinviato il problema Soluzioni L’utilizzo di netmask di lunghezza differente rende 39 anche la sottorete 0 e la sottorete 2k-1 si possono creare indirizzi ambigui (soprattutto per broadcast) 40 Allargare lo spazio di indirizzamento a 128 bit (IP6) – a larga scadenza Rendere più flessibile l’utilizzo degli indirizzi a 32 bit (indirizzi senza classi CIDR) – a breve scadenza Supernetting Indirizzi CIDR e Bitmask Lo schema CIDR consente di assegnare alla stessa Lo schema CIDR consente di assegnare blocchi di indirizzi di dimensione 2k, per ogni k rete fisica un blocco di indirizzi di rete consecutivi (net, count) count indirizzi di rete a partire da net 41 identifica le reti di classe C 192.41.218.0 e 192.41.219.0 permette di assegnare ad una rete di 256 host due indirizzi di classe C consecutivi invece che un indirizzo di classe B 42 bit 4 8 Hlen 16 Time To Live ogni sottoblocco sarà identificato da un prefisso comune ed una bitmask 19 Serv. Ty. Identification Fl.s Protocol Fragment Offset Header Checksum Destination IP Address Options 44 31 Total Length Source IP Address L’istradamento è più facile 43 0 Vers sottoblocchi contigui da assegnare ai suoi clienti il prefisso è utilizzato nelle tabelle di routing come indirizzo di rete Formato del Datagram IP ad ogni ISP è assegnato un blocco di indirizzi contigui distinto un router conosce le rotte solo agli host del suo blocco tutto il traffico rimanente è inviato al router del superblocco che lo contiene Servono 11 bit per identificare ogni host Indirizzo CIDR Æ 128.211.168.0/21 comune identificato dalla bitmask Ogni ISP subnetta il suo blocco di indirizzi in per Tutti gli indirizzi di un blocco hanno un prefisso L’accesso all’internet è gestita dagli ISP netmask) partire da 128.211.168.0 Filosofia di CIDR a Esempio: assegnare un blocco di 2048 indirizzi a Consente anche di ridurre le dimensioni delle tavole di routing Esempio: (192.41.218.0, 2) Utilizza una bitmask (equivalente identificare la dimensione dei blocchi 20 byte Formato del Datagram IP Utilizzo del Type of Service (I word) Version bit numero di versione del protocollo: 4 (IPv4) tipo di servizio richiesto (molti router non lo supportano) ...dettagli Æ slide successive non usa R high per informazioni di servizio, low per traffico normale D = minima distanza T = massimo throughput R = massima affidabilità consentire la gestione da parte dei router di gruppi di servizi differenziati (DiffServ) 45 46 Valori di Type of Service (TOS) 47 T 7 Recentemente l’utilizzo del TOS è stato ridefinito per lunghezza del datagram in byte Application D 5 6 Uno solo di D, T e R è settato Total Lenght 4 Ogni router dovrebbe supportare almeno due classi di priorità lunghezza dell’header in parole a 32 bit normalmente 5, quando non ci sono opzioni Type of Service (TOS) 2 3 prio HLEN 0 1 0 0 0 FTP Control 1 0 0 0 FTP Data 0 1 0 0 SNMP 0 0 1 0 DNS (UDP) 1 0 0 0 DNS (TCP) 0 1 0 0 NNTP 0 0 0 1 Compatibile con il vecchio formato Incapsulamento dei Datagram Il datagram deve essere incapsulato nei frame Min. Delay Max Thr. Max Rel. Min. Cost Telnet della rete fisica Datagram header Frame header Datagram Data Frame data • Per questioni di efficienza vorremmo datagram che entrano in un frame, ma ... 48 •la dimensione dei frame (MTU) cambia da rete a rete • la sorgente non conosce l’MTU delle reti fisiche che il datagram deve attraversare Frammentazione dei Datagram Frammentazione dei Datagram Per trasmettere un datagram sulla rete fisica IP si preoccupa di frammentare il datagram e di bisogna inserirlo nei frame ricomporlo Ogni rete fisica definisce un proprio limite superiore alla lunghezza dei frame (MTU) Se il datagram ha dimensione maggiore del frame deve essere frammentato 49 Il destinatario deve essere in grado di ricostruire il datagram originario La seconda parola (word) dell’header di ogni frammento contiene le informazioni relative alla frammentazione 50 Formato del Datagram IP (II word): Esempio Frammentazione Identification intero che identifica univocamente il datagram originario, mandato dal sender host Fragment offset posizione del frammento nel datagram originario, calcolata in ottetti (byte) a partire dall’inizio del campo dati Flags informazioni di controllo della frammentazione DO NOT FRAGMENT 51 ogni frammento ha lo stesso formato di un datagram MORE FRAGMENTS 52 Datagram header I blocco II blocco Frammento 1 header I blocco Offset 0 Frammento 2 header II blocco Offset 600 Frammento 3 header III blocco Offset 1200 III blocco Formato del datagram IP (III word): Formato del Datagram IP Time to Live (TTL) (IV-V word) Source IP destination max numero di router che datagram può attraversare nella rete iniz. a 32 o 64, ogni router decrementa il valore di 1 previene loop tra router (quando arriva a zero il datagram è soppresso) indirizzo IP dell’host che ha spedito il datagram Destination IP destination indirizzo IP dell’host a cui il datagram è diretto Protocol nome del protocollo che ha richiesto il servizio Header checksum 53 controllo degli errori calcolato solo sull’header, se ci sono errori è scartato. (il TTL modificato dai router Æ si deve incrementare CS) protocolli strati sup. hanno la loro CS per coprire i loro header e dati. 54 Campi Opzionale dell’Header Formato Opzione Record Route Il campo Options contiene informazioni facoltative bit utili per test e debug la dimensione di OPTIONS è variabile Timestamp Ogni router inserisce il proprio indirizzo in coda alla lista Source Route il mittente specifica i router che deve/può attraversare Pointer ... registra sia l’IP del router che il tempo 55 Length 31 Second IP Address Record Route registra l’IP number di ogni router attraversato 24 16 First IP Address Principali opzioni 8 CODE Ricavabile dal campo LENGTH dell’header del datagram 0 56 se c’è spazio Length indica la lunghezza della lista Pointer la posizione dove inserire Configurazione Interfaccia di Rete Formato Opzione Source Route bit 0 8 CODE 24 16 Length Il comando (UNIX/LINUX) utilizzato per configurare l’interfaccia di rete e controllarne lo stato è /sbin/ifconfig 31 Pointer argomenti IP Address of first hop IP Address of second hop 57 58 Esempio di Uso ifconfig eth0 lo 59 nome dell’interfaccia da controllare o configurare famiglia di indirizzi principali parametri ... Due tipi di source routing Strict (specifica tutti gli hop) Loose (specifica solo alcuni hop) ipconfig per sistemi Windows up/down (attivazione e disattivazione dell’interfaccia) arp (abilita o disabilita uso di ARP) allmulti (abilita o disabilita modalità promiscous) mtu N (fissa a N la massima dimensione di un frame) netmask addr (setta netmask) multicast (abilita il multicasting) hw (setta indirizzo fisico) dstaddr addr (setta indirizzo dest. per linea poit-to-point) Statistiche sullo Stato della Rete E’ possibile ottenere informazioni sullo stato del sottosistema di comunicazione con il comando netstat Link encap:Ethernet HWaddr 00:A0:CC:53:D6:EF inet addr:192.41.218.37 Bcast:192.41.218.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:320193 errors:1 dropped:0 overruns:0 frame:0 TX packets:36528 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:51057286 (48.6 Mb) TX bytes:4326559 (4.1 Mb) Interrupt:5 Base address:0xd000 stato delle connessioni aperte tabelle di istradamento stato delle interfacce attive statistiche relative ad un certo protocollo Per conoscere lo stato delle interfacce usare netstat –in Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 …. mostra indirizzi numerici indica numero di pacchetti trasmessi e ricevuti correttamente, con errori o rimossi Kernel Interface table 60 Iface MTU Net RX-OK RX-ERR TX-OK TX-ERR Flg eth0 1500 0 323616 1 36993 0 BMRU lo 0 289 0 LRU 16436 0 289