{
    "name": "Network Packet Overhead Calculator",
    "url": "https://calculators.geekmidst.com/calculators/network-packet-overhead-calculator",
    "markdown": "https://calculators.geekmidst.com/calculators/network-packet-overhead-calculator.md",
    "category": "IT, networking & security",
    "description": "See how many packets and bytes on the wire it takes to send data over Ethernet with IPv4 or IPv6 and TCP or UDP, and the resulting protocol efficiency.",
    "summary": "Every packet carries headers: Ethernet (14 bytes + 4 FCS, plus 8 preamble and 12 inter-frame gap on the wire), IPv4 (20) or IPv6 (40), and TCP (20 + options) or UDP (8). This shows how much of the link actually carries your data.",
    "also_called": [
        "TCP/IP overhead calculator",
        "Ethernet frame efficiency calculator"
    ],
    "applies_to": "Worldwide",
    "last_updated": "2026-10-29",
    "computation": "Results are computed in the visitor’s browser on the HTML page. This API describes the calculator; it does not compute results.",
    "inputs": [
        {
            "name": "payload",
            "label": "Application data to send",
            "type": "number",
            "default": "1460",
            "unit": "bytes"
        },
        {
            "name": "mtu",
            "label": "MTU",
            "type": "number",
            "default": "1500",
            "unit": "bytes"
        },
        {
            "name": "ip",
            "label": "IP version",
            "type": "segmented",
            "default": "v4",
            "options": {
                "v4": "IPv4",
                "v6": "IPv6"
            }
        },
        {
            "name": "transport",
            "label": "Transport",
            "type": "segmented",
            "default": "tcp",
            "options": {
                "tcp": "TCP",
                "udp": "UDP"
            }
        },
        {
            "name": "tcp_options",
            "label": "TCP options",
            "type": "number",
            "default": "0",
            "unit": "bytes",
            "optional": true,
            "shown_when": {
                "transport": "tcp"
            }
        },
        {
            "name": "vlan",
            "label": "VLAN tag",
            "type": "segmented",
            "default": "none",
            "options": {
                "none": "None",
                "dot1q": "802.1Q (+4 bytes)"
            }
        }
    ],
    "outputs": [
        {
            "key": "efficiency",
            "label": "Efficiency (data ÷ bytes on the wire)",
            "format": "percent"
        },
        {
            "key": "packets",
            "label": "Packets",
            "format": "integer"
        },
        {
            "key": "max_payload",
            "label": "Max data per packet (MSS)",
            "format": "integer"
        },
        {
            "key": "frame_bytes",
            "label": "Ethernet frame bytes",
            "format": "integer"
        },
        {
            "key": "wire_bytes",
            "label": "Bytes on the wire",
            "format": "integer"
        },
        {
            "key": "overhead_bytes",
            "label": "Overhead",
            "format": "integer"
        }
    ],
    "formula": {
        "text": "MSS = MTU − IP header − TCP/UDP header;  Packets = ⌈Data ÷ MSS⌉;  Frame = 14 (+4 VLAN) + IP + L4 headers + data + 4 FCS, at least 64 bytes;  Wire = Frames + 20 bytes per packet (preamble, SFD and inter-frame gap)",
        "variables": {
            "MTU": "largest IP packet the link carries",
            "MSS": "largest data chunk per packet"
        }
    },
    "worked_example": {
        "inputs": {
            "payload": "1460",
            "mtu": "1500",
            "ip": "v4",
            "transport": "tcp",
            "tcp_options": "0",
            "vlan": "none"
        },
        "steps": [
            "MSS = 1,500 − 20 (IPv4) − 20 (TCP) = 1,460 bytes, so one packet.",
            "Frame = 14 + 1,500 + 4 = 1,518 bytes; on the wire add 8 + 12 = 1,538 bytes.",
            "Efficiency = 1,460 ÷ 1,538 = 94.93%."
        ],
        "result": "A full-size TCP/IPv4 segment on standard Ethernet is 94.93% efficient, so a 1 Gbit/s link carries at most about 949 Mbit/s of TCP data."
    },
    "interpretation": "Small packets are very inefficient: one byte of UDP data still occupies 84 bytes of wire time. Larger MTUs (jumbo frames) raise efficiency only if every hop supports them.",
    "assumptions": [
        "Data larger than one packet is split into full-size packets plus a final partial packet.",
        "For UDP, the application sends separate datagrams rather than relying on IP fragmentation."
    ],
    "limitations": [
        "TCP acknowledgements, retransmissions and tunnel headers are not included."
    ],
    "rules": null,
    "faqs": [
        {
            "question": "Why is the minimum frame 64 bytes?",
            "answer": "Ethernet requires at least 64 bytes from destination address to FCS so collisions can be detected; shorter frames are padded."
        },
        {
            "question": "What MSS does IPv6 give on a 1,500-byte MTU?",
            "answer": "1,500 − 40 − 20 = 1,440 bytes, 20 less than IPv4 because the IPv6 header is twice as long."
        }
    ],
    "sources": [],
    "related": [
        {
            "name": "VPN Bandwidth Estimate Calculator",
            "url": "https://calculators.geekmidst.com/calculators/vpn-bandwidth-estimate-calculator"
        },
        {
            "name": "Website Bandwidth Calculator",
            "url": "https://calculators.geekmidst.com/calculators/bandwidth-calculator"
        },
        {
            "name": "IP Subnet Calculator",
            "url": "https://calculators.geekmidst.com/calculators/ip-subnet-calculator"
        }
    ],
    "disclaimer": null,
    "publisher": "GM¹X CalcVerse"
}