Skip to main content

Your network stack speaks before the page loads.

The first TCP packets can expose defaults chosen by the operating system: hop limits, window behavior, segment size, flags, and option order. A server can inspect that pattern before browser-side JavaScript ever runs. That network-stack evidence can reinforce alarger browser and device profile.

Observed at
Network edge
First clue
TCP SYN
Common use
OS classification
Encrypted by HTTPS
No
clientSYNserver
Illustrative SYN fields. Real values vary by operating-system version, configuration, interface, and network path.

The webpage cannot read these headers. The network can.

Browser JavaScript is sandboxed away from raw TCP/IP packets. The destination, CDN edge, reverse proxy, firewall, or an on-path observer may still inspect the unencrypted transport metadata.

Browser pageJavaScriptno raw TTL, MSS, or TCP option access
Operating systemTCP/IP stackconstructs the packet
Network edgeObservercan inspect arriving fields

HTTPS protects application content. It does not hide IP and TCP header fields required to deliver the connection.

A fingerprint is assembled from fields and relationships.

No single number reliably identifies an operating system. Tools compare combinations: values, option order, mathematical relationships, quirks, and how those observations change over time.

IPv464

TTL

Decreases at each routed hop. Observers often estimate the original value from common starting points.

IPv4set

Don’t Fragment

A flag associated with path MTU discovery. Its presence and related IP ID behavior can become a clue.

TCP64,240

Window

The advertised receive window and its relationship to MSS or window scaling can reflect stack defaults.

TCP1,460

MSS

The maximum TCP payload offered by the endpoint. Tunnels and middleboxes may clamp it.

TCP option7

Window scale

Expands the effective receive window. Values and placement vary between implementations.

TCP optionsMSS · SACK · TS · NOP · WS

Order

Ordering is especially useful because compliant stacks can arrange legal options differently.

64:64240:1460:7:mss,sok,ts,nop,ws→ stack family estimate

Different stacks make different legal choices.

Switch between illustrative profiles to see how the combination changes. These are teaching examples, not canonical signatures for every release or device.

Initial TTL64
Window64,240
MSS1,460
Scale7
TCP option orderMSS · SACK · TS · NOP · WS
Illustrative interpretation

Unix-like client

A common Unix-like arrangement: an initial TTL near 64 with timestamp, selective acknowledgment, and window-scale options. Many kernels and versions can overlap this pattern.

Confidencefamily-level clue

A reliable classifier uses a signature database and tolerates path changes. Matching one row is not proof of an exact OS.

The observer sees what remains after every hop.

An arriving TTL of 51 does not mean the client started at 51. A classifier may infer a common starting value of 64 and estimate roughly 13 routed hops. It is a heuristic: routes change, tunnels add complexity, and starting values are not unique to one OS.

likely start64−observed51=estimated hops13
Common starting familyWhat it can suggest
64

Common across Unix-like and mobile-derived stacks

128

Often associated with Windows-family defaults

255

Common in some network appliances and routing systems

Defaults are clues, not ownership labels. Implementations can be configured or normalized.

The packet can change between the device and the destination.

Passive fingerprinting observes the endpoint through the network path. Good analysis distinguishes likely client defaults from fields altered by routers, tunnels, NAT, firewalls, and proxies.

  1. 01

    Client stack

    TTL 64 · MSS 1460

    The operating system creates the SYN and chooses its initial fields and TCP option order.

  2. 02

    Router hops

    TTL 63 → 62 → …

    Each routed hop reduces TTL. The destination sees the remaining value, not the original.

  3. 03

    NAT or firewall

    source address rewritten

    Address, port, and checksums may change. Some devices also normalize or drop uncommon fields.

  4. 04

    Tunnel or middlebox

    MSS may be clamped

    Encapsulation can reduce usable packet size. A terminating proxy creates an entirely new downstream connection.

  5. 05

    Observer

    post-path signature

    The server or edge service classifies what arrived, including changes introduced along the way.

Routed tunnel

Changes the route, not necessarily the TCP origin.

A conventional VPN hides the public IP and encapsulates traffic. After decapsulation, portions of the client-generated TCP signature may still reach the destination.

Terminating proxy

Creates a new downstream connection.

An HTTP proxy, reverse proxy, or Tor exit can terminate one connection and originate another. The next observer sees the intermediary’s TCP stack.

p0f watches a connection. Nmap asks the stack questions.

Passivep0f

p0f can work from as little as an ordinary SYN. It pays attention to option order, MSS-to-window relationships, timestamps, quirks, and signals of NAT or proxying—without probing the client.

observe → normalize → compare → estimate
ActiveNmap OS detection

Nmap sends multiple TCP, UDP, and ICMP probes and examines response details such as sequence behavior, TCP options, window sizes, and IP ID patterns. It works best when it can find both open and closed ports.

probe → observe responses → score matches

These methods answer related but different questions. A website commonly has passive access to the arriving connection; active Nmap-style OS detection targets a remotely reachable host and may be disrupted by NAT, firewalls, or load balancers.

Capture, classify, and then verify the limits.

01 · Passive

p0f

SYN → signature database

Observes ordinary connections and can classify operating-system families, link type, distance, and connection-sharing clues without sending probes.

02 · Active

Nmap

crafted probes → response set

Sends TCP, UDP, and ICMP probes, then compares response behavior—including option order, window values, IP ID, and sequence traits—to known fingerprints.

03 · Inspection

Wireshark / tcpdump

capture → decode fields

Shows the packets and header fields directly. These tools collect evidence; they do not automatically make every OS inference reliable.

Changing identity at one layer does not replace every layer.

ActionLikely resultWhy
Clear cookies or use IncognitoUsually unchanged

Neither action replaces the operating system’s TCP/IP stack.

Change browserOften unchanged

Browsers usually rely on the same host networking stack, though protocol choices can differ.

Change Wi-Fi or physical locationPath may change

Hop count, MTU, and middleboxes can change while endpoint defaults remain recognizable.

Use a routed VPN tunnelPartially changed

IP and route change; the client may still originate the TCP behavior visible after decapsulation.

Use a terminating proxy or Tor exitEndpoint replaced

The intermediary opens a new TCP connection, so the destination sees its stack rather than the original client stack.

Change OS, kernel, or network stackCan change substantially

The component choosing the packet defaults has changed.

A network fingerprint classifies a stack, not a person.

Packet behavior can narrow an operating-system or device family and expose inconsistencies between layers. It becomes identity evidence when an observer correlates it with IP history, TLS, HTTP, account activity, or browser-side signals.

TCP/IPstack family · route · quirks
TLSClient Hello implementation
HTTPheaders · order · client hints
Browserscreen · graphics · fonts

combined resultmore confidence than any layer alone