In an IP packet, what does the source address field actually prove about the sender?
answer
- a claim, not a credential
- routers forward on the destination
- nothing on the path compares it
- the answer goes to the address written
- only the origin network can tell
basics
~20 sNothing on its own. The source address is chosen by whoever builds the packet, and nothing along the path verifies it, because routers forward on the destination. It proves a value was written, not who wrote it.
solid answer
~50 sThe source address is a claim, not a credential. A sending host writes whatever value it likes into that field, and every router between there and the destination makes its forwarding decision on the **destination** address alone, so no device on the path has a reason or a means to check the source. The only thing that constrains a forger is the return path: an answer goes to the address that was written, not to whoever emitted the packet. So if the attack needs something back — a handshake, a challenge, a session — forging the source breaks it. If the attack needs nothing back, the forged value costs the sender nothing at all. The one place a check is cheap is the originating network's own edge, where the customer's legitimate address range is known; if that network does not apply it, any source value at all can leave it.
go deeper
Be ready to say plainly that the source address is written by the sender, checked by nobody on the path, and used only as the address any answer is sent to.
Explain why forwarding consults the destination only, and what that means for protocols that need an answer versus protocols whose effect lands on arrival.
Expect to apply it on the spot: spot when a design is leaning on the source field for identity, and state what the field can honestly support instead.
Own the framing that truthful source addresses are produced by the originating network rather than the receiver, which is why they are chronically under-supplied across the internet.
## The field is an input, not a fact Every IP packet carries two addresses in its header: a destination and a source. It is tempting to read them as symmetric — as if both were established by the network — but they are not. The destination is used; the source is merely carried. When a host builds a packet, it fills in both fields itself. On an ordinary machine the operating system's networking stack fills the source in with the address of the interface the packet is leaving from, because that is what a program that wants an answer needs. That behaviour is a convenience of the stack, not a rule of the protocol. Software that constructs packets directly can put any 32-bit value there (or any 128-bit value, for IPv6), and the resulting packet is perfectly well-formed. Nothing in the header binds the source field to anything else in the packet, and nothing signs it. ## Why nobody on the path checks it A router's job is to move a packet closer to its destination. It looks up the destination address in its forwarding table, picks an outgoing interface, decrements the time-to-live and sends it on. The source address plays no part in that decision. A router that wanted to validate the source would have to answer a question it usually cannot: *is this address one that could legitimately have come from the direction this packet arrived from?* In the middle of the internet that question has no reliable answer, because traffic is routinely asymmetric — the path a packet takes towards you is often not the reverse of the path your answer takes back. There is exactly one place where the question is easy: the edge port where a customer connects to its provider. There, the provider knows which address ranges it assigned to that customer, so anything else leaving that port is forged. That is why source validation is understood as the originating network's job — and why, when the originating network declines to do it, no one downstream can make up the difference. ## The asymmetry that constrains the attacker The destination address is self-enforcing: put a wrong one in and the packet simply does not arrive where you wanted. The source address is the opposite: put a wrong one in and the packet still arrives, and the only consequence is that any answer is delivered somewhere else — to the real owner of the address you claimed, who did not ask for it and will usually discard it or reject it. So the honest statement of what the field proves is narrow: *some device somewhere emitted a packet containing this value.* It does not prove the packet came from that host, from that network, from that country, or from a machine anyone controls. It does not prove a person was involved. It is the single most commonly over-read field in networking. ## What the field is still good for This does not make the source address useless. It is what makes a two-way conversation possible at all, and once a connection-oriented exchange is underway — where each side has had to receive something the other sent — the address at the far end has been implicitly confirmed as reachable by the party you are talking to. That is a much weaker property than identity, but it is not nothing. It is also perfectly reasonable to use source addresses to *reduce exposure*, as long as nobody calls that authentication. ## Common misreadings The first is assuming that forging requires special access or skill. It requires only a network that will forward the packet; the technique itself is decades old and published. The second is assuming that obviously-wrong sources, such as private ranges arriving from the public internet, cannot reach you — many networks do drop those, but that is an applied policy, not a property of IP. The third, and the one that costs real money, is treating a matching source address as evidence that a request came from a trusted system.
- If the field is unverified, why do almost all packets carry a truthful source?Because an ordinary stack fills it in truthfully — it wants the answer back — and because a well-run originating network refuses to forward a customer's packet whose source falls outside the range it assigned. Truthfulness is produced by the sender and its first network. It is never something the receiver can confirm from the packet itself.
- Does the same reasoning apply to the destination address?No, and the asymmetry is the whole point. The destination must be real and reachable or the packet never arrives, so it validates itself. The source is never consulted for delivery, so a wrong value costs the sender nothing except the ability to see any reply.
The destination on an envelope is checked by reality — get it wrong and the letter never arrives. The return address is just ink: the post office delivers regardless, and only the sender's own local post office is in any position to notice it is a lie.
saying these in an interview costs you the question
- Assumes routers verify the source address while forwarding
- Says spoofing needs special access or advanced skill
- Treats a source address as the identity of a system
- Believes an obviously wrong source can never arrive