Die einzelnen Felder des Headers sind in Abbildung 2 dargestellt.
Die IP-Adresse des Zielhosts ermöglicht es IP, das Datagramm zu routen; der Inhalt des Protocol-Felds ermöglicht es dem IP des Zielhosts, das Datagramm an den richtigen Service des darüberliegendes Transportlayers zu übermitteln.
Im Versionsfeld wird die Version des verwendeten IP-Protokolls angegeben. (Momentan ist das Version 4.)
Die Angabe der Headerlänge erfolgt in Einheiten von 32 Bit Wörtern. Wenn das Datagramm keine Optionen enthält, dann ist die Headerlänge gleich fünf Wörtern, das sind 20 Octets. Wenn eine oder mehrere Optionen angegeben sind, dann kann es notwendig sein, daß der Header bis zur Grenze des aktuellen 32 Bit Wortes mit Nullen aufgefüllt werden muß.
Die Datagrammlänge wird in Octets angegeben, wobei auch der Header mitgezählt wird. Aufgrund der Länge des Feldes (16 Bit) können hier Werte bis 65.535 eingetragen werden, was in der Praxis aber nicht vorkommt: Ein IP-Datagramm kann ja höchstens so groß sein wie die MTU des nächsten Hops.
Die acht Bits, die Priorität und Type of Service angeben, sind aufgeteilt, wie in Tabelle 5 angegeben.
Die drei Bits, die die Priorität eines Datagramms angegeben, wurden ursprünglich vom amerikanischen Verteidigungsministerium initiiert, außerhalb des militärischen Bereichs werden sie aber kaum benutzt.
Das Type of Service-Bits enthalten Informationen über die Art und Weise, wie ein Datagramm von einem Router behandelt werden soll. Ein überlasteter Router beispielsweise kann anhand des TOS-Feldes bestimmen, welche Pakete weniger wichtig sind und (und daher eher verworfen werden können) und welche unbedingt weitergleitet werden sollen. Die Werte für das TOS-Feld sind in Tabelle 6 zusammengefaßt.
Wenn ein Fehler im Netzwerk auftritt, kann es passieren, daß Datagramme auf falsche oder kreisförmige Routen gelenkt werden. Zu diesem Zweck gibt es das Time To Live-Feld (TTL), das die Zeit, die ein Datagramm im Netz kursieren kann, begrenzt. Ursprünglich als Angabe von Sekunden definiert, gibt das TTL die maximale Anzahl von Hops an, die durchlaufen werden können. Jeder Router dekrementiert das TTL-Feld eines Datagramms, das er weiterleitet. Ein Datagramm, dessen TTL-Feld 0 ist, wird verworfen.
Dieses 16 Bit breite Feld enthält eine Prüfsumme, anhand derer die Integrität des Headers überprüft werden kann. Diese Prüfsumme ist definiert als das 16-Bit-Einerkomplement der Summe der 16-Bit-Einerkomplemente aller 16-Bit-Worte des Headers.
Jeder Router muß diese Prüfsumme neu berechnen und setzen, da sich der Header zumindest durch Dekrementierung des TTL-Feldes bei jedem Routing ändert.