cerca
Header IPv4
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Return to Header IPv4  (Edit)

Uni.HeaderIPv4 History

Hide minor edits - Show changes to output

Deleted lines 3-6:

(:include Servizi.DaModificare:)

->[[!'''DaModificare''']]: ''Aggiungere quante più info possibili sulle varie parti dell'header.''
Changed line 108 from:
[[Torna alla pagina di Sistemi Anticoncezionali delle Reti e dei Damiani->Sistemi]]
to:
[[Torna alla pagina di Sistemi per l'elaborazione delle informazioni->Sistemi]]
Changed line 2 from:
[[Torna alla pagina di Sistemi Anticoncezionali delle Reti e dei Damiani->Sistemi]]
to:
[[Torna alla pagina di Sistemi per l'elaborazione delle informazioni->Sistemi]]
Changed line 1 from:
(:title Header IP:)
to:
(:title Header IPv4:)
Changed lines 9-10 from:
%titolo%''':: Header IP ::'''
to:
%titolo%''':: Header IPv4 ::'''
Added lines 1-108:
(:title Header IP:)
[[Torna alla pagina di Sistemi Anticoncezionali delle Reti e dei Damiani->Sistemi]]
----

(:include Servizi.DaModificare:)

->[[!'''DaModificare''']]: ''Aggiungere quante più info possibili sulle varie parti dell'header.''

%titolo%''':: Header IP ::'''

Quando un'applicazione deve inviare dei dati ad un'altra il software TCP/IP interviene '''suddividendo l'informazione da inviare in una sequenza di pacchetti IP'''. Ciascuno di questi pacchetti è etichettato con uno header fisso, che include l'indirizzo IP dell’interfaccia mittente e di quella di destinazione. Lo header specifica anche la lunghezza totale del pacchetto con un campo di 16 bit; '''la dimensione massima di un pacchetto IP è quindi di 64 Kbyte'''. L'indirizzo IP è indirizzo software a 32 bit e deve essere specificato dal mittente.

Tra parentesi quadre la dimensione in bit dei vari campi.

(:table border=1 cellpadding=5 cellspacing=0 width=90% align=center:)
(:cellnr bgcolor=#f5f9fc align=center:) [[#Versione|Versione]] [4]
(:cell bgcolor=#f5f9fc align=center:) [[#IHL|IHL]] [4]
(:cell bgcolor=#f5f9fc align=center:) [[#TServizio|Tipo di servizio]] [8]
(:cell bgcolor=#f5f9fc colspan=2 align=center:) [[#LTotale|Lunghezza totale]] [16]
(:cellnr bgcolor=#f5f9fc colspan=3 align=center:) [[#IDDatagram|ID del datagramma]] [16]
(:cell bgcolor=#f5f9fc align=center:) [[#Flag|Flag]] [3]
(:cell bgcolor=#f5f9fc align=center:) [[#OFram|Offset di frammentazione]] [13]
(:cellnr bgcolor=#f5f9fc colspan=2 align=center:) [[#TTL|Time to live]] [8]
(:cell bgcolor=#f5f9fc align=center:) [[#Protocollo|Protocollo]] [8]
(:cell bgcolor=#f5f9fc colspan=2 align=center:) [[#Checksum|Checksum dello header]] [16]
(:cellnr bgcolor=#f5f9fc colspan=5 align=center:) [[#IPS|Indirizzo IP sorgente]] [32]
(:cellnr bgcolor=#f5f9fc colspan=5 align=center:) [[#IPD|Indirizzo IP destinazione]] [32]
(:cellnr bgcolor=#f5f9fc colspan=3 align=center:) [[#Opzioni|Opzioni]]
(:cell bgcolor=#f5f9fc colspan=2 align=center:) [[#Padding|Padding]]
(:cellnr height=100px valign=middle colspan=5 align=center:) Dati
(:tableend:) \\

[[#Versione]]
!!Versione
Indica la versione attuale del pacchetto (datagramma) IP. La versione usata attualmente è la 4, detta ''IPv4'', destinata ad essere sostituita (forse nel 2025) dalla ''IPv6''.

[[#IHL]]
!!IHL
L' '''IHL''' ('''I'''nternet '''H'''eader '''L'''enght) indica la lunghezza dell'header IP, espressa in '''parole''' (''word'') da 32 bit. Generalmente vengono utilizzate 5 parole, che possono aumentare fino a 15 nel caso in cui sia presente il campo [[#Opzioni|Opzioni]].

[[#TServizio]]
!!Tipo di servizio
Permette all'host mittente di specificare il modo e la precedenza con cui l'host ricevente dovrà trattare il pacchetto. Questi bit servivano all'host mittente per specificare il modo e in particolare la precedenza con cui l'host ricevente doveva trattare il datagramma:

* bit 0-2 : Precedenza
* bit 3: Latenza (0 = normale, 1 = bassa)
* bit 4: Throughput (0 = normale, 1 = alto)
* bit 5: Affidabilità (0 = normale, 1 = alta)
* bit 6-7: Riservati per usi futuri

[[#LTotale]]
!!Lunghezza totale
Riporta la dimensione dell'intero pacchetto, header e dati inclusi, esprimendola in byte.

[[#IDDatagram]]
!!ID del datagramma
Insieme all'indirizzo mittente, consente di identificare univocamente il pacchetto nel caso in cui debba essere frammentato durante la trasmissione.

[[#Flag]]
!!Flag
Sono tre flag, uno per bit, utilizzati per il controllo del protocollo e della frammentazione del datagramma:
* '''DF''' (''Don't fragment''): se è a 1 il datagramma non può essere frammentato (in particolare, se non può essere inviato ad un altro host senza essere frammentato, viene scartato dal router, che genera un messaggio ICMP al mittente), se è a 0 sì.
* '''MF''' (''More fragment''): indica se il datagramma ricevuto è l'ultimo di una serie di frammenti o se ce ne sono altri. Se è l'ultimo (o se il pacchetto non è stato frammentato), MF avrà valore 0.
* '''Reserved''': sempre settato a 0.

[[#OFram]]
!!Offset di frammentazione
Rappresenta lo spiazzamento (''offset'') espresso in byte di un frammento rispetto all'inizio del pacchetto originale. Quindi, ad esempio, il primo frammento avrà offset pari a 0. Può essere impostato dai router che effettuano la frammentazione. Se il pacchetto è frammentato, il secondo frammento partirà dal bit successivo alla fine del primo frammento.\\
(''Esempio'' una linea supporta un frame di 512 byte, ho un pacchetto di 900 byte. In quanti pacchetti verrà frammentato? Come si presenterà l'offset di frammentazione?
Risposta: verrà frammentato in 2 pacchetti: l'offset del primo sarà ''0'', quello del secondo sarà ''512'')

[[#TTL]]
!!Time to live
E' il numero di hop, ovvero i router che il pacchetto può attraversare. Ogni volta che attraversa un router questo tempo viene diminuito di uno. Quando il TTL arriva a zero il pacchetto non viene più inoltrato ma scartato se non è arrivato a destinazione. Tipicamente, quando un datagramma viene scartato per esaurimento del TTL, viene automaticamente inviato un messaggio ICMP al mittente del datagramma, specificando il codice di Richiesta scaduta; la ricezione di questo messaggio ICMP è alla base del meccanismo di traceroute.

[[#Protocollo]]
!!Protocollo
Permette di risalire al protocollo utilizzato nel campo dati del pacchetto, utilizzando un codice per indicarlo. Ad esempio il protocollo ICMP ha valore 1, IGMP ha 2, TCP ha 6 e UDP 17.

[[#Checksum]]
!!Checksum dello header
E' usato per il controllo degli errori nello header. Ad ogni hop che il pacchetto si trova ad attraversare, il suo valore di checksum deve essere confrontato con la somma in complemento a 1 dei bit dell'header stesso; se il confronto dà esito negativo (i due valori sono diversi) allora il pacchetto viene scartato. Ne consegue che tutti i router che modificano il pacchetto, devono aggiornare il suo valore di checksum.

In soldoni, come avviene il controllo dell'errore?
# si sommano in complemento a 1 tutti i bit dello header, organizzati in parole da 16 bit l'una, e con il valore del campo checksum settato a 0 (perché? perché non posso fare una somma utilizzando come addendo la somma stessa!)
# si complementa a 1 il risultato di tale somma (si fa dunque il NOT binario)
# si confronta il valore ottenuto con quello presente nel campo checksum dell'header del pacchetto ricevuto

[[#IPS]]
!!Indirizzo IP sorgente
Indica l'indirizzo IP del mittente del pacchetto.

[[#IPD]]
!!Indirizzo IP destinazione
Indica l'indirizzo IP del destinatario del pacchetto.

[[#Opzioni]]
!!Opzioni
E' un campo facoltativo e comunque non viene usato molto spesso. Consente di aumentare la lunghezza dell'header di 5 parole.

[[#Padding]]
!!Padding
...


Per conoscere le dimensioni degli header ecco una mini-guida: Attach:nomefile.pdf
----
[[Torna alla pagina di Sistemi Anticoncezionali delle Reti e dei Damiani->Sistemi]]