Skip to content

Commit 1729238

Browse files
author
0xfab1
committed
Add TCP fingerprints section with detailed explanations and examples
1 parent daf1b48 commit 1729238

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

docs/tech/standards/network.md

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ List of NTP Servers:
146146
| fu-berlin | zeit.fu-berlin.de | |
147147
| gatech | navobs1.gatech.edu | |
148148
| Georgia State University | ntp.gsu.edu | |
149-
| google | time.google.com | |
149+
| google | time.google.com | |
150150
| google | time1.google.com | |
151151
| google | time2.google.com | |
152152
| google | time3.google.com | |
@@ -704,3 +704,23 @@ Here is an overview:
704704
| Windows | 10 | ICMP/TCP/UDP | 128 |
705705
| Windows | | | 128 |
706706
| juniper | | ICMP | 64 |
707+
708+
## TCP Fingerprints
709+
710+
A TCP fingerprint is a set of low-level TCP option values and patterns that, when combined, can reveal what kind of system is connecting—even before any higher-level protocol (like HTTP or TLS) is exchanged. Here are some examples:
711+
712+
| # | Field/Option | Typical Values / Patterns | What It Usually Indicates |
713+
|----|----------------------------------|---------------------------------------------------|-----------------------------------------------------------------------------------------|
714+
| 1 | MSS (Maximum Segment Size) | 1460, 1380, 1440, 536 | 1460: Ethernet (Linux/Windows/Mac), 1380: VPNs, 536: legacy systems or special networks |
715+
| 2 | Window Scale | 2, 4, 8, 256, 512 | 8: Linux default, 2/4: Windows, other: rare/custom stacks |
716+
| 3 | SACK Permitted | Present/Absent | Present: Modern OS, Absent: some old stacks or IoT devices |
717+
| 4 | Timestamps Option | Present/Absent | Present: Linux/Mac default, Absent: Windows, or sometimes due to NAT/routers |
718+
| 5 | ECN (Explicit Congestion Notif.) | Enabled/Disabled | Enabled: Modern Linux/Chrome, Disabled: many Windows/Mac |
719+
| 6 | Window Size | 65535, 5840, 64240, 29200 | 65535: Windows, 5840: Linux, 29200: MacOS |
720+
| 7 | TTL (Time To Live) | 64, 128, 255 | 64: Linux/Mac, 128: Windows, 255: BSD/Networking appliances |
721+
| 8 | IP Version | 4, 6 | IPv4: Default everywhere, IPv6: Modern/advanced users |
722+
| 9 | Source Port Range | 49152-65535 (Linux), 1025-5000 (Windows pre-2008) | Linux/Unix: High ephemeral, Old Windows: Low ephemeral |
723+
| 10 | TCP Option Ordering | MSS, SACK, Timestamp, WS | The order is surprisingly unique per OS/stack |
724+
| 11 | TLS Version (if HTTPS) | 1.2, 1.3 | 1.3: Newer clients (Chrome/Firefox), 1.2: Still common, older clients |
725+
| 12 | Cipher Suites in TLS | Varies by browser/app | Can often distinguish between Chrome, Firefox, curl, bots, etc. |
726+
| 13 | TLS Extensions | Supported Groups, ALPN, SNI | Presence/order helps identify browser/app/version |

0 commit comments

Comments
 (0)