5 IP-05-p2
Transcript
5 IP-05-p2
Protocollo IP ! Definisce un meccanismo non connesso non affidabile " Parte Seconda " " unità unità di trasferimento (datagram) funzioni di routing regole tipiche di un servizio non affidabile ! messaggi di errore, condizioni per scartare pacchetti, ... Protocollo IP FDL 2006 2 FDL 2006 formato Imbustamento 1. 2. Frame Header Frame Dati 3. CRC 4. 5. Datagram Header FDL 2006 Datagram Dati 3 FDL 2006 6. 7. 8. 9. 10. Version (4 bit) versione di IP (ora 4) Length (4 bit), lunghezza intestazione come numero di parole di 32 bit: senza opzioni, intestazione formata da 5 parole (20 byte). ServiceType (8 bit) i pacchetti possono essere trattati in modo diverso per esigenze applicazione: ex. un pacchetto deve essere sistemato in una coda speciale che abbia basso ritardo. Di solito “0”. TotalLength (16), numero di byte contenuti, inclusa l’intestazione: dimensione massima 65535 byte La rete fisica potrebbe non essere in grado di supportare pacchetti così lunghi: per questa ragione, IP esegue un processo di frammentazione e riassemblaggio (seconda parola dell’intestazione) Time to Live (TTL) Protocol Checksum IP Souce & Destination Address Options (if any …) 4 esempio frammentazione ! ! Come scegliere la dimensione di un datagram? Ogni rete fisica ha un suo frame size massimo " " ! ! A MTU = Maximum Transfer Unit (dimensione massimo datagram) Ethernet: 1500 B (payload del frame) Net-3 MTU =1500 Quando un datagram deve attraversare una rete con MTU inferiore alla dimensione del datagram: frammentazione ad opera del router. Frammentazione non trasparente " " " Net-1 MTU =1500 R1 5 " ! " " " ! " (3 bit) MTU (inutilizzato) DF: don’ don’t fragment MF: more fragment (“ (“1” frammenti iniziali; “0” frammento finale) FDDI R3 P2P H8 ETH (b) ETH: 1500 FDDI: 4500 P2P:532 Pkt: 1400 ; datagram: IP+1400 ETH+IP+1400 FDDI+IP+1400 P2P+IP+512 P2P+IP+512 P2P+IP+376 ETH+IP+512 ETH+IP+512 ETH+IP+376 (a) ID=x;MF=0;Offset=0;DATI=1400B puntatore all’ all’inizio del frammento nel datagram completo in unità unità di 8 byte (b) ID=x;MF=1;Offset=0;DATI=512B ID=x;MF=1;Offset=512;DATI=512B (*) Offset= 64 ID=x;MF=0;Offset=1024;DATI=376B (*) Offset= 128 ID=xxx ; MF=0 ; Offset=0 FDL 2006 R2 (a) datagram non frammentato " R1 ETH (16 bit) Fragment Offset (13 bit) " ! H1 tutti i frammenti di uno stesso datagram hanno lo stesso ID Flags 6 FDL 2006 esempio gestione frammentazione e riassemblaggio IDentification R2 Net-2 MTU = 620 i frammenti viaggiano come datagram separati riassemblati solo a cura dell’ dell’host di destinazione vantaggi? FDL 2006 ! B (*) dettaglio di implementazione: il campo Offset conta ottetti di byte e non byte individuali; un datagramma deve essere frammentato in corrispondenza di multipli di 8 7 FDL 2006 8 Frammentazioni ! (a) Frammentazione di un datagram " " ! riassemblaggio: problemi? ! MF = 1 per tutti i frammenti risultanti eccetto l’l’ultimo Tutti i frammenti (eccettuato l’l’ultimo) devono avere lunghezza multipla di 8 byte " (b) Frammentazione di un frammento " OFFSET sempre riferito all’ all’inizio del datagram completo " Frammento non finale " Frammento finale ! ! fino a quando IP aspetta l’l’arrivo di tutti i frammenti di un datagram? ! uso di un timer di riassembly che fa IP allo scadere del timeout? tutti i sotto-frammenti hanno MF = 1 MF = 0 9 FDL 2006 10 FDL 2006 Checksum Time to Live ! ! " limitare il tempo-di-vita dei datagram nella rete " terminare i loop di routing " ! " Metrica: numero di hop Ogni router lo decrementa ! TTL = 0 " Assicura l’l’integrità integrità delll’ delll’intestazione (header) 1. somma (in complemento a 1) dei campi dell’ dell’ header, considerati come sequenza di interi a 16 bit 2. Checksum = complemento a 1 di questa somma Per quanto tempo il datagram può può rimanere nella rete? " ! ! Il campo TTL ha due funzioni: ! router scarta il datagram " 11 poco potente: perché perché? Non controlla la parte DATI Deve essere ricalcolato da ogni router, in quanto cambia sempre (almeno) il campo TTL " FDL 2006 -x è rappresentato come complemento di x, in cui ogni bit è invertito. invertito. Quando si sommano numeri in questa aritmetica, il riporto generato dai bit più più significativi deve essere addizionato al risultato. ! esempio: (-5) + (-3) = 1010 + 1100 = 0110 + ® = 0111 = (-8) algoritmo semplificato per il ricalcolo RFC 1624: Computation of the Internet Checksum via Incremental Update FDL 2006 12 ICMP ! ! ping & traceroute Protocollo di controllo e di segnalazione, usato dai router incapsulato dentro IP " " " " " " " ! Ping: Ping: Used to test " " destination unreachable time exceeded ( TTL = 0 ) ( vedi traceroute ) parameter problem redirect echo request e reply ( vedi ping e traceroute ) timestamp request e reply source quench (congestione) " " ! Reply from 164.107.144.3: 48 bytes in 47 msec. TTL: 253 Traceroute: Traceroute: Exploit TTL and ICMP " " " " 13 FDL 2006 destination reachability, compute round trip time count the # of hops to destination may provide record route option. Sample output: Send the packet with time-to-live = 1 (hop) The first router discards the packet and sends an ICMP “time-tolive exceeded message” message” Send the packet with time-to-live = 2 (hops) etc… etc… When stops? traceroute homework ! comandi da sperimentare (Unix o Windows) " " " " traceroute flowchart ! ! " http://netgroup-serv.polito.it/windump/ http://www.tcpdump.org/ ! ntop ! pathchar " " 15 arp netstat ping traceroute (tracert) installare e sperimentare almeno uno dei seguenti tool di rete windump per Windows (o tcpdump per Unix) " FDL 2006 14 FDL 2006 http://www.ntop.org/ntop.html http://www.caida.org/tools/utilities/others/pathchar/ FDL 2006 16