Dimensione massima dell'intestazione IPv4


8

Intestazione IPv4


So che la lunghezza dell'intestazione IP è un minimo di 20 byte e un massimo di 60 byte. Ma perché? Perché la lunghezza dell'intestazione IP è limitata a 60 byte? C'è qualcuno qui che può spiegarmelo? Grazie.



1
Qualche risposta ti è stata d'aiuto? in tal caso, dovresti accettare la risposta in modo che la domanda non continui a comparire per sempre, cercando una risposta. In alternativa, potresti fornire e accettare la tua risposta.
Ron Maupin

Risposte:


14

L' Internet Protocol (IP) è definito in RFC 791 . RFC specifica il formato dell'intestazione IP. Nell'intestazione c'è il campo IHL ( Internet Header Length ) che è lungo 4 bit e specifica la lunghezza dell'intestazione in parole a 32 bit . Il campo IHL può contenere valori compresi tra 0 (binario 0000) e 15 (binario 1111).

Pertanto, la dimensione più lunga dell'intestazione Internet (intestazione IP) può essere di 15 * 32 bit = 480 bit = 60 byte . Questo è il motivo per cui l'intestazione ha una dimensione massima di 60 byte.

La dimensione dell'intestazione più breve è di 20 byte, dove il campo IHL ha il valore 5 (0101). Questo perché tutti i campi obbligatori nell'intestazione richiedono 20 byte di spazio. Quindi, mentre in teoria potresti impostare l'IHL su un valore <5, questo sarebbe sempre un valore errato e quindi un'intestazione del pacchetto non valida.


Grazie mille Sebastian. Questa è la risposta che stavo cercando. Ora ho capito esattamente. Quindi anche la mia analogia era corretta. :)
Ebyrock,

Ma il valore più breve sarebbe 5 perché definito in RFC 791? Quindi non può essere impostato su 0 (0000)?
Ebyrock,

1
Minimo di 5 parole (20 byte) perché quelle sono le parti richieste dell'intestazione. Potrebbero esserci zero o più opzioni, quindi da 20 a 60 byte.
Ricky Beam,

1
Ho aggiunto la spiegazione della dimensione minima per completarla.
Sebastian Wiesinger,

1
significa che conta la lunghezza dell'intestazione con incrementi di 32 bit.
Sebastian Wiesinger,

3

Per RFC 791 dove è definito, vedere pagina 12 dove tratta i datagrammi:

Lunghezza totale è la lunghezza del datagramma, misurata in ottetti, inclusi intestazione e dati di Internet. Questo campo consente la lunghezza di un datagramma fino a 65.535 ottetti. Datagrammi così lunghi sono poco pratici per la maggior parte degli host e delle reti. Tutti gli host devono essere pronti ad accettare datagrammi fino a 576 ottetti (che arrivino interi o in frammenti). Si consiglia agli host di inviare datagrammi di dimensioni superiori a 576 ottetti se hanno la certezza che la destinazione è pronta ad accettare i datagrammi più grandi.

Il numero 576 è selezionato per consentire la trasmissione di un blocco dati di dimensioni ragionevoli oltre alle informazioni di intestazione richieste. Ad esempio, questa dimensione consente a un blocco di dati di 512 ottetti più 64 ottetti di intestazione di adattarsi a un datagramma. L'intestazione massima di Internet è di 60 ottetti e un'intestazione tipica di Internet di 20 ottetti, che consente un margine per le intestazioni di protocolli di livello superiore. "

Fondamentalmente la lunghezza è stata definita tra 20 e 60 per consentire diversi usi del protocollo e adattarsi alla dimensione del datagramma consigliata.


1
Grazie ancora Mike, ma non capisco bene. Nella tua risposta dice che "L'intestazione massima di Internet è di 60 ottetti" ma non spiega perché? Ho inserito una foto alla mia domanda. La dimensione dell'intestazione IP è definita in IHL (Internet Header Length) che è in 4-7 bit e che significa che è lunga 4 bit. se impostiamo tutti i bit sono 1 in Base2 (1111) che sarebbero 15 in Base10. E la lunghezza dell'intestazione Internet è di 32 bit. Moltiplichiamo 15 x 32 = 480 bit, che equivale a 60 byte (480/8). Non sono sicuro che sia un'analogia corretta. :(
ebyrock,

Non cercare di essere basso ma il "perché" è: ecco come viene definito. Tutti i protocolli Internet hanno definizioni. Queste definizioni sono gli standard che seguono tutti i protocolli di traffico Internet.
Mike Naylor,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.