Protokół IPv4 jest używany od 1983 roku, kiedy został po raz pierwszy zastosowany w sieci ARPANET (ang. Advanced Research Projects Agency Network), która była prekursorem Internetu. Obecnie Internet w dużym stopniu oparty jest na protokole IPv4, który jest nadal najczęściej używanym protokołem warstwy sieciowej.
Pakiet protokołu IPv4 składa się z dwóch części:
- Nagłówka IP - Identyfikuje właściwości pakietu.
- Ładunku - Zawiera informacje o segmentach warstwy 4 oraz właściwe dane.
Tak jak pokazano na rysunku, nagłówek pakietu IPv4 składa się z pól zawierających ważne informacje o przesyłanym pakiecie. Pola te zawierają liczby w formacie binarnym, które są analizowane i interpretowane przez proces warstwy 3. Wartości binarne określone dla każdego z pól pozwalają na identyfikację różnych ustawień dotyczących pakietu IP.
Istotnymi polami w nagłówku IPv4 są:
- Wersja - Zawiera 4-bitową wartość w formacie binarnym identyfikującą wersję pakietu IP. W przypadku pakietów IPv4 pole to jest zawsze ustawiona na 0100 czyli w formacie dziesiętnym wartość 4.
- Zróżnicowane usługi DS (ang. Differentiated Services) - Wcześniej pole to nazywane było Typ Usługi ToS (ang. Type of Service). Pole DS zawiera wartość 8-bitową, która stosowana jest do określania priorytetu danego pakietu. Pierwsze 6 bitów określa wartość Differentiated Services Code Point (DSCP), która jest używana przez mechanizm kontroli jakości usług QoS (ang. Quality of service). Ostatnie 2 bity umożliwiają zrealizowanie jawnego powiadomienia o przeciążeniu (ECN). Wartość ta może być stosowana w celu zapobiegania odrzucaniu pakietów w czasie przeciążenia sieci.
- Czas życia pakietu TTL (ang. Time to Live) - Zawiera wartość 8-bitową przedstawianą w postaci binarnej, która jest wykorzystywana do ograniczenia żywotności pakietu w sieci. Wartość ta nie jest zdefiniowana w sekundach, ale określa maksymalną liczbę skoków. Nadawca pakietu ustawia wartość początkową czasu życia (TTL), która jest zmniejszana o jeden za każdym razem, kiedy pakiet jest przetwarzany przez router lub inaczej mówiąc następny skok. Jeśli wartość dla pola TTL osiągnie 0, router odrzuca pakiet i wysyła komunikat o błędzie do hosta nadawczego wykorzystując protokół ICMP (ang. Internet Control Message Protocol). Polecenie traceroute używa tego pola w celu identyfikacji routerów znajdujących się między źródłem a celem.
- Protokół - Ta 8-bitowa wartość przedstawiana w postaci binarnej wskazuje na typ danych przenoszonych w pakiecie. Pole to umożliwia warstwie sieciowej przekazanie ich odpowiedniemu nadrzędnemu protokołowi. Typowymi wartościami dla tego pola są dla protokołu ICMP (0x01), dla TCP (0x06) oraz dla UDP (0x11).
- Źródłowy adres IP - Pole to zawiera 32-bitową wartość binarną, która określa adres hosta, który jest źródłem przesyłanego pakietu.
- Docelowy adres IP - Pole to zawiera 32-bitową wartość binarną, która określa adres hosta, który jest odbiorcą przesyłanego pakietu.
Dwoma najczęściej analizowanymi polami w nagłówku IP są adres źródłowy i docelowy IP. Określają one skąd pakiet jest wysyłany oraz do którego hosta docelowego ma zostać dostarczony. Zwykle adresy te nie są zmieniane podczas przesyłania pakietu od źródła do miejsca przeznaczenia.