Il protocollo IP (Internet Protocol)

Похожие документы
Il protocollo IP (Internet Protocol)

ICMP. (Internet Control Message Protocol) Cosa è l ICMP? Messaggi di ICMP. Applicazioni di ICMP: ULP, Ping, Traceroute, Path MTU discovery

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi

Configurazione delle interfacce di rete

Livello rete. Piano di controllo. Introduzione: Piano dei dati e piano di controllo Architettura di un router IP: Internet Protocol

3 - Internet Protocol

La rete Internet. La Rete Logica. Vincenzo Eramo R 2 R 3 R 4 R 1 R 5. I terminali della rete sono denominati Host

Il protocollo IP A.A. 2005/2006. Walter Cerroni

Fondamenti di Internet e Reti. Antonio Capone, Matteo Cesana, Ilario Filippini, Guido Maier

ICMP OSI. Internet Protocol Suite. Telnet FTP SMTP SNMP TCP e UDP NFS. Application XDR. Presentation. Session RPC. Transport.

Protocollo IP. Pacchetto e comandi

4b. Esercizi sul livello di Rete Inoltro in IP

IL PROTOCOLLO ICMP. La famiglia dei protocolli TCP/IP. Applicazioni ,ftp,telnet,www. IEEE 802-Ethernet-X25-Aloha ecc. Collegamento fisico

ICMP. Internet Control Message Protocol. Silvano GAI. sgai[at]cisco.com. Mario BALDI. mario.baldi[at]polito.it

Il protocollo IP A.A. 2005/2006. Walter Cerroni. Internet Protocol (IP) - RFC 791

INTERNET PROTOCOL RFC 791

ICMP ARP RARP DHCP -NAT

Protocolli ARP e RARP

III - 2. Il Livello Rete. Corso di RETI DI CALCOLATORI (9 CFU) a.a II anno / II semestre. Il Livello Rete.

Parte II: Reti di calcolatori Lezione 14

IP Internet Protocol

Reti di Telecomunicazioni R. Bolla, L. Caviglione, F. Davoli. Internet Protocol (IP) L indirizzamento IP ICMP. ARP e RARP DHCP NAT 32.

Indirizzamento IP. Politecnico di Milano Facoltà di Ingegneria dell Informazione

Corso di Reti di Telecomunicazioni

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Internet Control Message Protocol ICMP. Struttura di un Messaggio ICMP. Segnalazione degli Errori

IL LIVELLO RETE IN INTERNET Protocollo IP

Corso di Reti di Telecomunicazioni. Giovanni Schembra. Trasmissione trame su canale broadcast

Reti di Calcolatori - Laboratorio. Lezione 8. Gennaro Oliva

Il livello Network del TCP/IP. Il protocollo IP (versione 4)

Le Reti Informatiche

TCP/IP un introduzione

Internet Protocol Versione 4: aspetti generali

Protocollo ICMP, comandi ping e traceroute


Reti di calcolatori TCP/IP. Slide a cura di Simon Pietro Romano

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10

Транскрипт:

Politecnico di Milano Advanced Network Technologies Laboratory Il protocollo IP (Internet Protocol) - Servizi offerti da IP - Formato del pacchetto IP

Il servizio di comunicazione offerto da IP o Connectionless n progettato secondo un paradigma packetoriented (o datagram) n Due pacchetti (o datagrammi) destinati alla stesso host possono essere trattati in maniera diversa o Non affidabile n Consegna best-effort dei datagrammi senza garanzia di successo n Analogia con il servizio postale ordinario

Pacchetto vs Circuito Virtuale Source: Computer Networking, J. Kurose Approccio a circuito virtuale: ATM, X25, Frame Relay Approccio a pacchetto: IP

Altri Servizi Offerti da IP o Indirizzamento: assegna un indirizzo universalmente riconosciuto o Frammentazione/Deframmentazione: frammenta/deframmenta i pacchetti se il livello locale (livello 2) lo richiede (IP è pensato per funzionare su molteplici tecnologie di livello inferiore)

Lo stack IP base 4 TCP UDP 3 routing ICMP ARP IP Livelli inferiori

Il pacchetto (datagramma) IP Header 1 16 32 bit Ver HLEN TOS (DS) Total length Fragment Identification Flags Frag. Offset TTL Protocol Header Checksum Source address Destination address Options: source routing, record route, timestamp 20 BYTE fino a 40 BYTE Dati

I campi dell header IP o Ver (4 bit): n Version: indica la versione del protocollo; IPv4, IPv6. Se il campo VER non corrisponde alla versione del protocollo implementata sul router ricevente, il pacchetto viene scartato. o HLEN (4 bit) n Header length: indica la lunghezza dell header del pacchetto espressa in parole da 32 bit (max 64 byte) o Total length (16 bit): n Indica la lunghezza totale del pacchetto in byte: valore massimo 2 16 =65536; una volta sottratta la dimensione dell header dà la lunghezza del payload. Serve solo se il livello sottostante effettua padding riempitivo.

I campi dell header IP o TOS type of service (8 bit) n Ha subito diversi cambi di significato nel tempo, sempre legati alla gestione del pacchetto nelle code dei router n Il più recente è: 0 5 6 8 DSCP ECN o Differentiated Services Code Point o Explicit Congestion n Default (0) Notification n n n Expedited Forwarding /Voice Admit(46/44) Assured Forwarding (Differenti mix di classe di priorità e precedenza di dropping) Class selector (8 differenti classi di probabilità) n Usato nei router per segnalare un imminente congestione (e drop dei pacchetti) alle destinazioni

Il campo Protocol o E un codice che indica il protocollo di livello superiore o Più protocolli di livello superiore possono usare IP (multiplazione) o Il codice identifica il SAP (Service Access Point) tra IP e il protocollo di livello superiore TCP UDP IP Livelli inferiori Valore Protocollo 1 ICMP 2 IGMP 6 TCP 17 UDP 89 OSPF

Il campo Time To Live (TTL) o Il campo TTL viene settato ad un valore elevato da chi genera il pacchetto e viene decrementato da ogni router attraversato o Se un router decrementa il valore e questo va a zero, il pacchetto viene scartato e viene generato un messaggio di errore verso la sorgente o Time-out sulla validità di un pacchetto TTL=250 TTL=2 TTL=1 messaggio d errore: time exceeded TTL=0

La Frammentazione (1) o Alcuni protocolli di livello inferiore a cui IP si appoggia richiedono una dimensione massima del pacchetto IP (Maximum Transfer Unit, MTU) inferiore a 65536 bytes Pacchetto IP = Header + Payload MTU Protocollo MTU (byte) Token Ring 16Mb/s 17914 Header Pacchetto IP Trailer FDDI 4352 Ethernet 1500

La Frammentazione (2) G IP IP frag. IP LL (A) LL (A) LL (B) LL (B) Rete A Rete B

La Frammentazione (3) o Prima di passare il pacchetto al livello inferiore IP divide il pacchetto in frammenti ciascuno con il proprio header o Un frammento di un pacchetto può essere frammentato ulteriormente lungo il cammino o I frammenti verranno ricomposti dall entità IP del destinatario indicato nell header IP (frammenti di uno stesso pacchetto possono seguire diversi percorsi) o I campi Identification, Flags e Frag. Offset sono usati per questo scopo

I campi usati per la frammentazione (1) o Identification (16 bit) n E un campo che identifica tutti i frammenti di uno stesso pacchetto in modo univoco. E scelto dall IP che effettua la frammentazione o Frag. Offset (13 bit) n n I byte del pacchetto originale sono numerati da 0 al valore della lunghezza totale. Il campo Frag. Offset di ogni frammento riporta il numero di sequenza del primo byte del frammento (in parole da 8 byte). esempio: se un pacchetto di 2000 byte viene diviso in due da 1000 il primo frammento avrà un Frag Offset pari a 0 e il secondo pari a 1000/8

I campi usati per la frammentazione (2) o Flags - D M n Il bit M (More) è pari a 0 solo nell ultimo frammento n Il bit D (Do not fragment) viene posto a 1 quando non si vuole che lungo il percorso venga applicata la frammentazione o In questo caso, se la frammentazione fosse necessaria, il pacchetto sarebbe scartato e verrebbe generato un messaggio di errore

La Frammentazione in pratica o L overhead computazionale legato alla frammentazione può essere rilevante o Si tende, quindi, a non frammentare, limitando la dimensione dei segmenti che arrivano all IP dal livello di trasporto. o IP supporta tecnologie sottostanti in grado di gestire trame di almeno 576 byte o Si pone la dimensione dei segmenti del livello di trasporto pari a 536 byte (+20byte TCP + 20byte IP) o La maggior parte delle applicazioni per trasferimento di dati (HTTP) funzionano con dimensione di segmenti tra 512-536 byte.

Il campo Header Checksum: controllo di integrità o Informazione ridondante inserita nell header del pacchetto IP per controllo d errore sull header o Il campo di checksum (16 bit) è calcolato dal trasmettitore ed inserito nell header o Il ricevitore ripete lo stesso calcolo sul pacchetto ricevuto (comprensivo di checksum) o Se il risultato è soddisfacente accetta il pacchetto altrimenti lo scarta

Caacolo del Checksum lato trasmettitore o L header è diviso in blocchi da 16 bit o Il Checksum è inizializzato a 0 o Tutti i blocchi vengono sommati modulo 2 o Il risultato è complementato ed inserito nel campo di checksum + + + = checksum tutti 0 somma complemento a 1

Clacolo del Checksum lato ricevitore o L header è diviso in blocchi da 16 bit o Tutti i blocchi vengono sommati modulo 2 o Il risultato è complementato n n Se sono tutti 0 il pacchetto è accettato Altrimenti è scartato + + + checksum = somma complemento a 1

Le Opzioni o La parte iniziale dell header IP è di 20 byte ed è sempre presente o Campi opzionali possono allungare l header fino ad un massimo di 60 byte o Opzioni usate per Testing e Debugging 1 32 bit Ver HLEN TOS Total length Fragment Identification Flags Frag. Offset TTL Protocol Header Checksum Source address Destination address Options: security, source routing, record route, timestamp 20 BYTE Dati

Le Opzioni code 8 bit length 8 bit data dimensione variabile copy 1 bit class 2 bit option number 5 bit Copy: 0 opzione copiata solo nel primo frammento 1 opzione copiata in tutti i frammenti Class: 00 controllo 10 gestione e debugging Option number: 00000 end of option (1 byte) 00001 no operation (1 byte) 00011 loose source route 00100 time stamp 00111 record route 01001 strict source route Richiedono il campo dati

End Of Option e No operation o Sono campi opzione di 1 byte utilizzati per fare padding o Non hanno la parte di dati Source: TCP/IP Protocol Suite, B. Forouzan.

Record Route (1) code 8 bit length 8 bit 1 st address 32 bit 2 nd address 32 bit 9 th address 32 bit pointer 8 bit 40 byte o Serve per registrare il percorso del pacchetto o Il campo pointer punta al primo byte libero nella lista degli address o Ogni volta che viene attraversato un router il suo indirizzo IP d uscita viene registrato nel campo puntato e il pointer viene aumentato di 4

Record Route (2) o Esempio: 10.10.9.1 10.10.9.0 10.10.9.2 10.10.10.1 10.10.10.2 10.10.10.0 10.10.8.1 10.10.8.0 4 8 10.10.10.1 10.10.10.1 10.10.8.1 12

Strict Source Route o o o o o Implementa un meccanismo di source routing Tutti i campi address sono inizialmente pieni e indicano i router che si vuole vengano attraversati Il puntatore viene incrementato di 4 ad ogni hop Se viene raggiunto un router non previsto il pacchetto viene scartato e viene generato un messaggio di errore (usata molto raramente!!!) code 8 bit length 8 bit 1 st address 32 bit 2 nd address 32 bit 9 th address 32 bit pointer 8 bit 40 byte

Loose Source Route o Come la precedente, ma è possibile visitare anche altri router (il pacchetto non viene scartato) o (usata molto raramente!!!) code 8 bit length 8 bit 1 st address 32 bit 2 nd address 32 bit 9 th address 32 bit pointer 8 bit 40 byte

Time Stamp code 8 bit length 8 bit pointer 8 bit 1 st address 32 bit 1 st time stamp 32 bit 2 nd address 32 bit 2 nd time stamp 32 bit o Misura il tempo assoluto di uscita del pacchetto da un router o Il campo Over-Flow indica i router sul percorso che non hanno potuto aggiungere il timestamp o Il campo Flag indica la modalità operativa stabilita dal mittente O-Flow 4 bit Flag 4 bit

Struttura Implementativa protocollo IP Source: TCP/IP Protocol Suite, B. Forouzan.

Politecnico di Milano Advanced Network Technologies Laboratory Internet Control Message Protocol (ICMP) RFC 792

Internet Control Message Protocol (ICMP) o E un protocollo per messaggi di servizio fra host e router per informazioni su errori e fasi di attraversamento della rete o Da questo punto di vista può essere considerato come parte di IP o I messaggi ICMP sono incapsulati e trasportati da IP, e quindi da questo punto di vista può essere considerato un utente di IP ICMP ICMP IP IP Livelli inferiori

Internet Control Message Protocol (ICMP) messaggio ICMP header ICMP sezione dati del messaggio ICMP header IP payload pacchetto IP header della trama MAC payload della trama MAC o Nel pacchetto IP il campo protocol indica il codice dell ICMP o Il messaggio ICMP viaggia all interno del pacchetto IP

Formato messaggi ICMP type 8 bit code 8 bit resto dell header 32 bit checksum 16 bit sezione dati lunghezza variabile Type 0 Echo reply 3 Destination unreachable 4 Source Quench 5 Redirect (change a route) 8 Echo request 11 Time exceeded Type 11 Parameter problem 13 Timestamp request 14 Timestamp reply 17 Address mask request 18 Address mask reply

Tipi di messaggi o Error Reporting n Destination Unreachable (type 3) n Source Quench (type 4) n Time Exceeded (type 11) n Parameter Problem (type 12) n Redirection (type 5) o Query n Echo Request/Reply (type 8,0) n Timestamp Request/Reply (type 13/14) n Address Mask Request/Reply (type 17/18) n Router Solicitation/Advertisment (type 10/9)

Funzionalità di Error Reporting o ICMP non corregge errori, ma si limita a segnalarli. o L evento errore è notificato alla sorgente del pacchetto IP che lo ha causato o Eventi gestiti n Destination Unreachable (type 3) n Source Quench (type 4) [deprecato, tipo di congestion control] n Time Exceeded (type 11) n Parameter Problem (type 12) n Redirection (type 5) o I messaggi di errore contengono l header del pacchetto IP che li ha generati e i suoi primi 8 byte di dati.

Destination Unreachable type (3) code (0-12) checksum non usato (0) header + primi 64 bit del pacchetto IP che ha causato il problema o o o o Quando un router scarta un pacchetto per qualche motivo normalmente genera un messaggio di errore che invia alla sorgente del pacchetto Nel campo code è codificato il motivo che ha causato l errore Ovviamente la generazione del messaggio avviene solo nei casi in cui il router può accorgersi del problema Il motivo più comune è il fatto che la destinazione non è presente nella tabella di routing (code = 7)

Destination unreachable type (3) code (0-12) checksum non usato (0) header + primi 64 bit del pacchetto IP che ha causato il problema Alcuni Code: 0 network unreachable 1 host unreachable 2 protocol unreachable 3 port unreachable 4 fragmentation needed and DF set 5 source route failed...

Time exceeded type (11) code (0-1) checksum non usato (0) header + primi 64 bit del pacchetto IP che ha causato il problema o Code 0 (inviato dai router) n Il messaggio di time exceeded viene usato quando il router decrementando il TTL lo pone a 0 n Il messaggio di time exceeded viene inviato alla sorgente del pacchetto o Code 1 (inviato dalla destinazione) n Viene usato dalla destinazione quando non tutti i frammenti di un pacchetto arrivano entro un tempo massimo

Parameter problem type (12) pointer code (0-1) checksum non usato (0) header + primi 64 bit del pacchetto IP che ha causato il problema o Code 0 n Se l header di un pacchetto IP ha una incongruenza in qualcuno dei suoi campi viene inviato il messaggio di parameter problem; il campo pointer punta al byte del pacchetto che ha causato il problema o Code 1 n Viene usato quando un opzione non è implementata o qualche parte del campo opzioni manca

Redirect type (5) code (0-3) indirizzo IP del router checksum header + primi 64 bit del pacchetto IP o Questo messaggio viene usato quando si vuole che la sorgente usi per quella destinazione un diverso router A dest. A dest. A redirect

Funzionalità di diagnostica o Coppie di messaggi secondo il paradigma domanda/risposta o Tipi di messaggi: n Echo Request/Reply (type 8,0) n Timestamp Request/Reply (type 13/14) n Address Mask Request/Reply (type 17/18) n Router Solicitation/Advertisment (type 10/9)

Funzionalità di Echo o I messaggi di Echo-request e Echo-reply sono usati per verificare la raggiungibilità e lo stato di un host o un router o Quando un nodo IP riceve un messaggio di Echo-request risponde immediatamente con un messaggio di Echo reply echo-request echo-reply

Messaggi Echo type (8 request, 0 reply) identifier code (0) checksum sequence number optional data o o o o Il campo identifier viene scelto dal mittente della richiesta Nella risposta viene ripetuto lo stesso identifier della richiesta Più richieste consecutive possono avere lo stesso identifier e differire per il sequence number Una sequenza arbitraria può essere aggiunta dal mittente nel campo optional data e deve essere riportata uguale nella risposta

Uso Messaggi di Echo: PING

Uso dei messaggi ICMP: applicativo di traceroute

Traceroute: come funziona? o Il traceroute usa (normalmente) messaggi di Echo-request verso la destinazione o I primo messaggio ha il TTL=1 TTL=1 echo-request TTL:=TTL-1=0 Time-exceeded

Traceroute: come funziona? o I secondo messaggio ha il TTL=2 TTL=2 echo-request TTL:=TTL-1=1 TTL:=TTL-1=0 Time-exceeded

Traceroute: come funziona? o I terzo messaggio ha il TTL=3, e così via TTL=3 echo-request TTL:=TTL-1=2 TTL:=TTL-1=1 TTL:=TTL-1=0 Time-exceeded

Timestamp request e reply type (13 request, 14 reply) identifier code (0) checksum sequence number originate timestamp receive timestamp transmit timestamp o Questo messaggio viene usato per lo scambio di informazioni sul clock di sorgente e destinazione o Originate timestamp: viene riempito dalla sorgente o Receive timestamp: viene riempito dalla destinazione appena ricevuto il pacchetto o Transmit timestamp: viene riempito dalla destinazione immediatamente prima di inviare il pacchetto di risposta

Address mask request e reply type (17 request, 18 reply) identifier code (0) checksum sequence number address mask o Questo messaggio viene usato per conoscere la netmask o Address mask request viene inviato ad un router (o in broadcast) che risponde con un Address mask reply o Il campo address mask viene riempito dal destinatario o Funzionalità di configurazione, oggi viene usato DHCP o Funzionalità simile ad Router advertisement e Router solicitation per annunciare la presenza di un router o richiedere l invio di un annuncio