Il protocollo IP (Internet Protocol)



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

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

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

IP Internet Protocol

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

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

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

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

Protocollo ICMP, comandi ping e traceroute

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

IL LIVELLO RETE IN INTERNET Protocollo IP

Protocolli di Comunicazione

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

Il firewall Packet filtering statico in architetture avanzate


ESERCIZIO NUMERO 1 ESERCIZIO NUM. 2

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi

Gestione degli indirizzi

Transmission Control Protocol

Internetworking TCP/IP: esercizi

Gestione degli indirizzi

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

TCP/IP. Principali caratteristiche

3 - Internet Protocol

IP (Internet Protocol) sta al livello 2 della scala Tcp/Ip o al livello 3 della scala ISO/OSI. Un indirizzo IP identifica in modo logico (non fisico

Reti di Calcolatori. Il software

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

Parte II: Reti di calcolatori Lezione 16

9. IP: Messaggi di errore e di controllo (ICMP)

Reti di Telecomunicazione Lezione 8

4 - Il livello di trasporto

Internet Protocol Versione 4: aspetti generali

Politecnico di Bari. Facoltà di Ingegneria Elettronica. Corso di Reti di Telecomunicazioni

TCP/IP un introduzione

PROF. Filippo CAPUANI TCP/IP

Il modello TCP/IP. Sommario

Internet e protocollo TCP/IP

L architettura di TCP/IP

ARP e instradamento IP

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)

Routing (instradamento) in Internet. Internet globalmente consiste di Sistemi Autonomi (AS) interconnessi:

DA SA Type Data (IP, ARP, etc.) Padding FCS

Inizializzazione degli Host. BOOTP e DHCP

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

Tappe evolutive della rete Internet

Instradamento IP A.A. 2005/2006. Walter Cerroni. IP: instradamento dei datagrammi. Routing : scelta del percorso su cui inviare i dati

Approfondimento di Marco Mulas

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 4

Configurazione delle interfacce di rete

Multicast e IGMP. Pietro Nicoletti

Livello di Rete. Gaia Maselli

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

Indirizzo IP. Come si distinguono? Indirizzo IP : Network address : Host address: : 134

Problemi legati alla sicurezza e soluzioni

StarShell. IPSec. StarShell

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Introduzione al TCP/IP Indirizzi IP Subnet Mask Frame IP Meccanismi di comunicazione tra reti diverse Classi di indirizzi IP Indirizzi IP privati e

Livello Trasporto Protocolli TCP e UDP

Dal protocollo IP ai livelli superiori

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

L architettura di rete TCP/IP. 1

Livello Trasporto. Liv. Applic. Liv. Transport. Transport Entity. Liv. Network. Trasporto

Il Mondo delle Intranet

Identità sulla rete protocolli di trasmissione (TCP-IP) L architettura del sistema. Dal livello A al livello B

MODELLI ISO/OSI e TCP/IP

Uso di sniffer ed intercettazione del traffico IP

ARP e RARP. Silvano GAI. sgai[at]cisco.com. Mario BALDI. mario.baldi[at]polito.it Fulvio RISSO

Architettura TCP/IP: indirizzamento e routing

Il livello Network del TCP/IP.

Sommario. Configurazione della rete con DHCP. Funzionamento Configurazione lato server Configurazione lato client

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

Protocollo IP. Pacchetto e comandi

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Esempio quesiti d esame per il laboratorio del corso. Reti di Comunicazione ed Internet Mod 2, Prof. G. A. Maier

Cenni di programmazione distribuita in C++ Mauro Piccolo

Elementi di Informatica e Programmazione

TCP/IP : Livello 3 di rete ARP (Address Resolution Protocol)

Introduzione alle applicazioni di rete

RETI TELEMATICHE Lucidi delle Lezioni Capitolo II

Il protocollo TCP. Obiettivo. Procedura

IPv4 Internet Protocol Versione 4

TEST DI RETI DI CALCOLATORI I (9400N) anno 1999/2000

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

Транскрипт:

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

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

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

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

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

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 6

I campi dell header IP Ver (4 bit): 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. HLEN (4 bit) header length: indica la lunghezza dell header del pacchetto espressa in parole da 32 bit (max 64 byte) Total length (16 bit): 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. 7

I campi dell header IP TOS type of service (8 bit) Recentemente cambiato in Differentiated Services usato per la gestione delle priorità nelle code dei router, e per garantire QoS D T R C Precedence TOS bits 8

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

Il campo Time To Live (TTL) Il campo TTL viene settato ad un valore elevato da chi genera il pacchetto e viene decrementato da ogni router attraversato 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 Time-out sulla validità di un pacchetto TTL=250 TTL=2 TTL=1 messaggio d errore: time exceeded TTL=0 10

Header La Frammentazione (1) 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 Pacchetto IP Trailer Protocollo Token Ring 16Mb/s FDDI Ethernet MTU (byte) 17914 4352 1500 11

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

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

I campi usati per la frammentazione (1) Identification (16 bit) è un campo che identifica tutti i frammenti di uno stesso pacchetto in modo univoco. E scelto dall IP che effettua la frammentazione Frag. Offset (13 bit) 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. 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 14

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

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

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

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

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

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

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

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

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 Serve per registrare il percorso del pacchetto Il campo pointer punto al primo byte libero nella lista degli address 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 23

Record Route (2) 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 24

Strict Source Route 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 25

Loose Source Route come la precedente, ma è possibile visitare anche altri router (il pacchetto non viene scartato) (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 26

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-Flow 4 bit Flag 4 bit misura il tempo assoluto di uscita del pacchetto da un router il campo Over-Flow indica i router sul percorso che non hanno potuto aggiungere il timestamp il campo Flag indica la modalità operativa stabilita dal mittente 27

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

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

Internet Control Message Protocol (ICMP) E un protocollo per messaggi di servizio fra host e router per informazioni su errori e fasi di attraversamento della rete da questo punto di vista può essere considerato come parte di IP 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 30

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

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 32

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

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

Destination Unreachable type (3) code (0-12) checksum non usato (0) header + primi 64 bit del pacchetto IP che ha causato il problema 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) 35

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... 36

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

Parameter problem type (12) pointer code (0-1) checksum non usato (0) header + primi 64 bit del pacchetto IP che ha causato il problema Code 0 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 Code 1 viene usato quando un opzione non è implementata o qualche parte del campo opzioni manca 38

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

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

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

Messaggi Echo type (8 request, 0 reply) identifier code (0) checksum sequence number optional data 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 42

Uso Messaggi di Echo: PING 43

Uso dei messaggi ICMP: applicativo di traceroute 44

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

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

Traceroute: come funziona? 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 47

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

Address mask request e reply type (17 request, 18 reply) identifier code (0) checksum sequence number address mask Questo messaggio viene usato per conoscere la netmask di un host/router Il campo address mask viene riempito dal destinatario 49