<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/ip-addressing-part-iii-inside-the-ip-packet-2htt89y0h" -->

---
title: IP Addressing, Part III: Inside the IP Packet | daily.dev
description: A field-by-field walkthrough of the IPv4 datagram header, covering each field&#x27;s purpose and the 40-byte overhead (20-byte IP + 20-byte TCP) before any payload....
canonical: https://daily.dev/posts/ip-addressing-part-iii-inside-the-ip-packet-2htt89y0h
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: IP Addressing, Part III: Inside the IP Packet | daily.dev
og:description: A field-by-field walkthrough of the IPv4 datagram header, covering each field&#x27;s purpose and the 40-byte overhead (20-byte IP + 20-byte TCP) before any payload....
og:url: https://daily.dev/posts/ip-addressing-part-iii-inside-the-ip-packet-2htt89y0h
og:image: https://api.daily.dev/og/posts/2HTt89Y0H.png
og:image:alt: IP Addressing, Part III: Inside the IP Packet
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# IP Addressing, Part III: Inside the IP Packet

**[The Polymathic Engineer](https://daily.dev/sources/francofernando)** · 10 min read · 0 upvotes · 0 comments

## Summary

A field-by-field walkthrough of the IPv4 datagram header, covering each field's purpose and the 40-byte overhead (20-byte IP + 20-byte TCP) before any payload. Explains fragmentation and MTU: how a 4,000-byte datagram gets split into fragments of up to 1,480 bytes each over a 1,500-byte Ethernet link, with reassembly handled at the destination. Addresses why both IP and TCP carry checksums — they protect different scopes and must remain layer-independent. Concludes with IPv6's design decisions: 128-bit addresses, removal of fragmentation, elimination of the header checksum, fixed 40-byte header length, and replacement of broadcast with multicast and anycast.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://newsletter.francofernando.com/p/ip-addressing-part-iii-inside-the>

## Questions this post answers

### Why does fragmentation happen if one IP fragment gets lost in transit?

The entire original datagram cannot be reconstructed. Since IPv4 fragmentation reassembly happens only at the destination end host and not at intermediate routers, losing even one fragment means the destination cannot recover the full data, making fragmentation inherently fragile. This is one of the main reasons IPv6 eliminated in-network fragmentation entirely.

_Engineers debugging packet loss issues can find deeper networking explainers curated on daily.dev._

### Why does IP have its own header checksum when TCP already has a checksum?

The IP checksum only protects the 20-byte IP header, covering fields like the destination address and TTL, while the TCP or UDP checksum covers the entire segment including data. Because the TTL decrements at every router hop, the IP checksum must be recalculated at each hop, so keeping it small and header-only keeps that repeated work cheap.

_Developers preparing for networking interview questions can track explainers like this via daily.dev._

### What did IPv6 remove compared to the IPv4 header?

IPv6 eliminated in-network fragmentation (routers drop oversized packets and send an ICMP packet-too-big message instead), removed the header checksum entirely, and dropped variable-length header options in favor of a fixed 40-byte header with separate extension headers. Broadcast addressing was also removed, replaced by multicast and a new anycast type.

_Teams planning an IPv6 migration can keep up with protocol design changes through daily.dev._

## Similar posts on daily.dev

- [Internet Protocol Version 8 \(IPv8\)](https://daily.dev/posts/internet-protocol-version-8-ipv8--cbob5txr6) · Hacker News · 1 upvotes · 0 comments
- [UDP Broadcasting And The Brave New World Of IPv6](https://daily.dev/posts/udp-broadcasting-and-the-brave-new-world-of-ipv6-kbr2qsudb) · Hackaday · 0 upvotes · 0 comments
- [IPv8 looked like a real plan to fix the internet, but it was one man, an AI chatbot, and a GoFundMe page](https://daily.dev/posts/ipv8-looked-like-a-real-plan-to-fix-the-internet-but-it-was-one-man-an-ai-chatbot-and-a-gofundme--miefyexin) · XDA Developers · 0 upvotes · 0 comments
- [The world in which IPv6 was a good design](https://daily.dev/posts/the-world-in-which-ipv6-was-a-good-design-tj3i8ov0s) · Hacker News · 0 upvotes · 0 comments
- [Computer Networks Explained: The Complete Guide](https://daily.dev/posts/computer-networks-explained-the-complete-guide-uozado4ud) · Medium · 0 upvotes · 0 comments

---

Tags: [#networking](https://daily.dev/tags/networking)

[View this post on daily.dev](https://daily.dev/posts/ip-addressing-part-iii-inside-the-ip-packet-2htt89y0h)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"IP Addressing, Part III: Inside the IP Packet","url":"https://daily.dev/posts/ip-addressing-part-iii-inside-the-ip-packet-2htt89y0h","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/ip-addressing-part-iii-inside-the-ip-packet-2htt89y0h"},"datePublished":"2026-08-07T09:56:52.544Z","dateModified":"2026-09-13T18:54:38.930Z","description":"A field-by-field walkthrough of the IPv4 datagram header, covering each field's purpose and the 40-byte overhead (20-byte IP + 20-byte TCP) before any payload....","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7be3c4362c304e94f4a7877b97adb271?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/7be3c4362c304e94f4a7877b97adb271?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"The Polymathic Engineer","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"The Polymathic Engineer","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/2a66d4e9f17e4214a6d620baed8123e1","url":"https://daily.dev/sources/francofernando"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/ip-addressing-part-iii-inside-the-ip-packet-2htt89y0h","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"networking","timeRequired":"PT10M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"The Polymathic Engineer","item":"https://daily.dev/sources/francofernando"},{"@type":"ListItem","position":3,"name":"IP Addressing, Part III: Inside the IP Packet"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/ip-addressing-part-iii-inside-the-ip-packet-2htt89y0h#faq","mainEntity":[{"@type":"Question","name":"Why does fragmentation happen if one IP fragment gets lost in transit?","acceptedAnswer":{"@type":"Answer","text":"The entire original datagram cannot be reconstructed. Since IPv4 fragmentation reassembly happens only at the destination end host and not at intermediate routers, losing even one fragment means the destination cannot recover the full data, making fragmentation inherently fragile. This is one of the main reasons IPv6 eliminated in-network fragmentation entirely. Engineers debugging packet loss issues can find deeper networking explainers curated on daily.dev."}},{"@type":"Question","name":"Why does IP have its own header checksum when TCP already has a checksum?","acceptedAnswer":{"@type":"Answer","text":"The IP checksum only protects the 20-byte IP header, covering fields like the destination address and TTL, while the TCP or UDP checksum covers the entire segment including data. Because the TTL decrements at every router hop, the IP checksum must be recalculated at each hop, so keeping it small and header-only keeps that repeated work cheap. Developers preparing for networking interview questions can track explainers like this via daily.dev."}},{"@type":"Question","name":"What did IPv6 remove compared to the IPv4 header?","acceptedAnswer":{"@type":"Answer","text":"IPv6 eliminated in-network fragmentation (routers drop oversized packets and send an ICMP packet-too-big message instead), removed the header checksum entirely, and dropped variable-length header options in favor of a fixed 40-byte header with separate extension headers. Broadcast addressing was also removed, replaced by multicast and a new anycast type. Teams planning an IPv6 migration can keep up with protocol design changes through daily.dev."}}]}
```

