Internet Protocol Versione 4: aspetti generali L’architettura di base del protocollo IP versione 4 e una panoramica sulle regole fondamentali del mondo TCP/IP 1 Cenni storici Introduzione della tecnologia delle reti a commutazione di pacchetto (packet switching) 1961 -Teorizzazione del packet switching -IMPs: i primi 4 nodi -ARPAnet (USA) 1980 -BSD UNIX Proliferazione delle reti, primi aspetti commerciali (inter-domain routing) -Flag day: NCP TCP / IP - Internet Worm 1972 -NCP[RFC 001] Nascita e collegamento, su base paritaria, di nuove reti (internetworking) -ALOHAnet (Hawaii, packet radio) -Ethernet - TCP/IP 1990 -NSFNET Commercializzazione della rete e Web (facilità d’uso) -Decommissionamento di NFSNET 1980 Oggi 2 -W W W La prima rete 3 Punti di forza Standard aperti RFC Dibattito pubblico Disponibilità di codice pubblico Semplicità dell’architettura 4 Integrato nello stack BSD Robustezza (nonostante non fosse uno degli obiettivi primari) TCP/IP ed Internet Internet La più grande rete di calcolatori al mondo che usa i protocolli TCP/IP TCP/IP Una architettura di rete che permette lo scambio di informazioni a livello geografico Definisce anche una serie di livelli applicativi Sono due concetti diversi Internet è una delle tante reti TCP/IP 5 La più grossa Internet potrebbe anche non usare TCP/IP in futuro Crescita di Internet Numero di reti BGP 6 http://www.telstra.net/ops/, http://bgp.potaroo.net/ Standard: OSI vs TCP/IP Application NFS Presentation XDR Session RPC Transport Telnet, FTP SMTP, HTTP SNMP, DNS RTP, ... TCP e UDP ICMP IGMP Network IP Protocolli per la comunicazione tra applicativi: le raisons d’etre della rete Flussi (stream) di dati Protocolli di routing Arp e Rarp Comunicazioni tra host qualsiasi Data Link ",X.25, LAN, FDDI," Comunicazioni nella stessa rete Physical ",UTP, FIBRA OTTICA, RADIO, " Supporto mezzo trasmissivo fisico OSI 7 Internet Protocol Suite Funzioni Terminologia Host Router o Intermediate System (IS) Host specializzato nell’interconnessione di reti IP Dispone normalmente della capacità di interagire con i suoi simili tramite i protocolli di routing End-System (ES) Host “terminale”, senza capacità presente solo ai bordi della rete ES e IS 8 Una qualunque entità che dispone dello stack protocollare TCP/IP Terminologia di derivazione OSI di routing; normalmente Principali scelte architetturali (1) Flusso dati: commutazione di pacchetto Inoltro: Forwarding by network address Ogni nodo agisce in “isolamento” Forwarding isolato, routing “cooperativo” Trasporto: Connectionless L’inoltro di un pacchetto è indipendente da quelli che lo hanno preceduto e non influenzerà quelli che lo seguiranno No connection setup, no controllo di errori / flusso Necessario l’inserimento del Destination Address in ogni pacchetto Admission Control: Assente 9 I dati sono “spezzettati” in entità autonome (pacchetti) Connectionless + AC: particolarmente adatto al traffico burst Principali scelte architetturali (2) Trasporto connectionless implica recapito: Best Effort 10 Se un dato viene scartato, non è per capriccio ma ci deve essere un motivo sensato Unreliable La rete farà del suo meglio per portare i dati a destinazione Non affidabile; non viene garantito il recapito corretto dai pacchetti I dati possono essere persi, duplicati, consegnati fuori sequenza Caratteristiche applicativo: del servizio dal punto di vista Servizio di trasporto affidabile: realizzato in TCP/IP dal livello 4 Servizio di trasporto inaffidabile: nativo nel livello 3 Funzionalità principali Gestione indirizzi a 32 bit a livello di rete e di host Algoritmo di Forwarding Routing: implementato in protocolli ad hoc Configurazione di classi di servizio Frammentazione e riassemblaggio dei pacchetti Funzionalità accessorie 11 Monitoring della comunicazione (ICMP) Interfaccia verso reti broadcast (ARP, RARP) Gestione del traffico multicast (IGMP) Header 0 4 8 16 Vers. HLEN Traffic Class Identification TTL 19 31 Total Length 0 Protocol DM Fragment Offset F F Header Checksum Source IP Address Destination IP Address Flags Options 12 PAD Formato degli indirizzi IP Ampi 32 bit Scrittura di indirizzi IP: notazione decimale puntata Ogni cifra decimale assume un valore compreso tra 0 e 255 Esempi 10.255.8.1: indirizzo valido 10.355.8.1: indirizzo non valido 10.255.8.1 = 00001010 11111111 00001000 00000001 10 13 . 255 . 8 . 1 Options 0 1 Code 0 n Length 1 Copy Option Class 14 m Value 3 7 (bit) Option Number Type of Service Interpretazione originale 0 3 Precedence D 4 5 T 6 R Unused Interpretazione DiffServ 0 6 Codepoint 15 Unused Campi modificabili in transito TTL Header Checksum Flags (nel caso di frammentazione) Fragment Offset (nel caso di frammentazione) Options HLEN - Total Length – Pad 16 Ad esempio nel caso di opzione "record route“ Se la lunghezza del pacchetto, causa Options, è cambiata Frammentazione Tecnologie di rete di livello 1-2 Definiscono normalmente un pacchetto massimo trasportabile (Maximum Trasport Unit) Solitamente non supportano la frammentazione Ethernet v.2.0: 1500 bytes Ethernet non prevede campi per questo scopo Frammentazione Può essere necessaria quando un pacchetto deve venire inoltrato su una rete con MTU inferiore Length 1500 IP Header MTU = 1500 17 Max Data IP 600 Header MTU = 620 Frammentazione: esempio Data - 1480 ottetti Datagram Header 600 ottetti 600 ottetti 280 ottetti Identification = 777 Offset = 0 Flag = 0 MTU=620 Header 600 ottetti Identification = 777 Offset = 0 MF Flag = 1 18 Header 600 ottetti Identification = 777 Offset = 75 [600/8] MF Flag = 1 Header 280 ottetti Identification = 777 Offset = 150 [1200/8] MF Flag = 0 Frammentazione: problematiche In generale sconsigliata Maggiore overhead di trasmissione La perdita di un frammento invalida tutto il pacchetto Maggior numero di bytes per gli headers Impegna risorse (timer, buffer) nell’host ricevente Possibili attacchi di tipo denial of service 19 Invio di molti frammenti “singoli”: il TCP/IP alloca risorse aspettando l’arrivo deli frammenti rimanenti Soluzioni Esistono metodi per determinare la MTU più piccola esistente sul percorso Ormai quasi tutti supportano MTU pari a 1500 bytes Funzionalità tolta in IPv6 Chi si occupa del riassemblaggio? Next hop router ? Il pacchetto può percorrere delle reti che supportano MTU più grandi 20 Banda (headers) CPU (numero di pacchetti inoltrati) Si evita la perdita di singoli frammenti Singoli frammenti persi invalidano comunque tutto il pacchetto Complessità ai bordi La frammentazione non sarebbe più necessaria Minore overhead: ? o host destinazione Non è necessario complicare i router per fargli gestire il riassemblaggio È semplice gestire il fatto per cui pacchetti diversi fanno percorsi diversi Riassemblaggio TCP/IP: deframmentazione riservata destinatario del pacchetto (end node) alla ricezione del primo frammento l’end node fa partire un reassembly timer memorizza tutti i frammenti in un buffer t se allo scadere del timer il pacchetto non è completo segnala un errore 21 al nodo IP: Internet Protocol È il livello Network di TCP/IP Offre un servizio non connesso Semplice protocollo di tipo Datagram Un protocollo datato ... ... ma non obsoleto Oggi: IPv4 Domani: IPv6 22