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) Nascita e collegamento, su base paritaria, di nuove reti (internetworking) 1961 1972 1980 -Teorizzazione del packet switching -IMPs: i primi 4 nodi -ARPAnet (USA) -NCP[RFC 001] -ALOHAnet (Hawaii, packet radio) -Ethernet - TCP/IP Proliferazione delle reti, primi aspetti commerciali (inter-domain routing) Commercializzazione della rete e Web (facilità d uso) 1980 1990 Oggi -BSD UNIX -Flag day: NCP TCP / IP - Internet Worm -W W W -NSFNET -Decommissionamento di NFSNET 2
La prima rete 3
Punti di forza Standard aperti RFC Dibattito pubblico Disponibilità di codice pubblico Integrato nello stack BSD Semplicità dell architettura Robustezza (nonostante non fosse uno degli obiettivi primari) 4
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 La più grossa Internet potrebbe anche non usare TCP/IP in futuro 5
Crescita di Internet Numero di reti BGP http://www.telstra.net/ops/, http://bgp.potaroo.net/ 6
Standard: OSI vs TCP/IP Application Presentation Session NFS XDR RPC Telnet, FTP SMTP, HTTP SNMP, DNS RTP,... Protocolli per la comunicazione tra applicativi: le raisons d etre della rete Transport TCP e UDP Flussi (stream) di dati Network ICMP Arp e Rarp IGMP IP Protocolli di routing Comunicazioni tra host qualsiasi Data Link Physical OSI,X.25, LAN, FDDI,,UTP, FIBRA OTTICA, RADIO, Internet Protocol Suite Comunicazioni nella stessa rete Supporto mezzo trasmissivo fisico Funzioni 7
Terminologia Host Una qualunque entità che dispone dello stack protocollare TCP/IP 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à di routing; normalmente presente solo ai bordi della rete ES e IS Terminologia di derivazione OSI 8
Principali scelte architetturali (1) Flusso dati: commutazione di pacchetto I dati sono spezzettati in entità autonome (pacchetti) 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 Connectionless + AC: particolarmente adatto al traffico burst 9
Principali scelte architetturali (2) Trasporto connectionless implica recapito: Best Effort La rete farà del suo meglio per portare i dati a destinazione Se un dato viene scartato, non è per capriccio ma ci deve essere un motivo sensato Unreliable Non affidabile; non viene garantito il recapito corretto dai pacchetti I dati possono essere persi, duplicati, consegnati fuori sequenza Caratteristiche del applicativo: servizio dal punto di vista Servizio di trasporto affidabile: realizzato in TCP/IP dal livello 4 Servizio di trasporto inaffidabile: nativo nel livello 3 10
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 Monitoring della comunicazione (ICMP) Interfaccia verso reti broadcast (ARP, RARP) Gestione del traffico multicast (IGMP) 11
Header 0 4 8 16 19 31 Vers. HLEN Traffic Class Identification Total Length D M 0 Fragment Offset F F TTL Protocol Header Checksum Source IP Address Flags Destination IP Address Options PAD 12
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. 255. 8. 1 13
Options 0 1 n m Code Length Value 0 1 3 7 (bit) Copy Option Class Option Number 14
Type of Service Interpretazione originale 0 3 4 5 6 Precedence D T R Unused Interpretazione DiffServ 0 6 Codepoint Unused 15
Campi modificabili in transito TTL Header Checksum Flags (nel caso di frammentazione) Fragment Offset (nel caso di frammentazione) Options Ad esempio nel caso di opzione "record route HLEN - Total Length Pad Se la lunghezza del pacchetto, causa Options, è cambiata 16
Frammentazione Tecnologie di rete di livello 1-2 Definiscono normalmente un pacchetto massimo trasportabile (Maximum Trasport Unit) Ethernet v.2.0: 1500 bytes Solitamente non supportano la frammentazione 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 Max Data 600 IP Header MTU = 1500 MTU = 620 17
Frammentazione: esempio Data - 1480 ottetti Datagram Header 600 ottetti 600 ottetti 280 ottetti Identification = 777 Offset = 0 Flag = 0 MTU=620 Header 600 ottetti Header 600 ottetti Header 280 ottetti Identification = 777 Offset = 0 MF Flag = 1 Identification = 777 Offset = 75 [600/8] MF Flag = 1 Identification = 777 Offset = 150 [1200/8] MF Flag = 0 18
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 Soluzioni Invio di molti frammenti singoli : il TCP/IP alloca risorse aspettando l arrivo deli frammenti rimanenti Esistono metodi per determinare la MTU più piccola esistente sul percorso Ormai quasi tutti supportano MTU pari a 1500 bytes Funzionalità tolta in IPv6 19
Chi si occupa del riassemblaggio? Next hop router o host destinazione Il pacchetto può percorrere delle reti che supportano MTU più grandi La frammentazione non sarebbe più necessaria Minore overhead: Banda (headers) CPU (numero di pacchetti inoltrati) Complessità ai bordi Non è necessario complicare i router per fargli gestire il riassemblaggio È semplice gestire il fatto per cui pacchetti diversi fanno percorsi diversi Si evita la perdita di singoli frammenti 20 Singoli frammenti persi invalidano comunque tutto il pacchetto
Riassemblaggio TCP/IP: deframmentazione riservata al nodo destinatario del pacchetto (end node) alla ricezione del primo frammento l end node fa partire un reassembly timer 21 t memorizza tutti i frammenti in un buffer se allo scadere del timer il pacchetto non è completo segnala un errore
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