Judged once. Refused at the card.
Deciding whether a client is hostile takes real work. Reflex is the part of the network that makes sure the work is only done once, and enforces the result where a packet is still a packet.
The problem it solves
Everything that makes a good decision about a request is expensive. Reading it, weighing what the client has done before, holding it to a proof of work: all of that needs context, and context lives high in the stack where requests are already parsed.
That is fine for one request. It stops being fine when the same client opens ten thousand connections, because the cost of reaching the same conclusion is paid again every time. A refusal is cheaper than serving a page, but it is not free, and at attack volume the cost of saying no becomes the attack. That is not a hypothetical: on our own edge we measured tens of millions of connections being refused one at a time, correctly, by a system that had already decided about every one of them.
Reflex separates the deciding from the enforcing. The judgement stays where there is enough context to be right. Enforcement moves to the network driver, where a packet is still a packet and a decision costs a single lookup.
What that changes, per connection
- Refused in software
- A handshake completes, the kernel allocates a socket, the accept queue wakes a thread, the request is judged, the connection is closed and torn down. Correct, informed, and paid for in full on every connection the same client opens.
- Refused by Reflex
- One lookup in the network driver. No handshake, no socket, no thread, no teardown, and nothing for the application layer to queue behind.
The second row never reaches your application, your origin, or even this machine’s network stack. From the outside the attacker sees a connection that goes nowhere. From the inside there is nothing to see, which is the point: the capacity that was being spent on refusing them goes back to the people trying to reach you.
Measured, on our own edge
These are observations from a real attack against our own infrastructure, taken while it was happening rather than reconstructed afterwards. They are not a projection and they are not a benchmark we designed.
- 68% of a 6.1 Gbps attack refused before the kernel built any connection state.
- 865,927 packets a second shed at the card, at peak.
- 28,778 concurrent connections carried while the site stayed responsive.
- Roughly 100 nanoseconds to enforce a judgement that had already been made.
- 22 °C cooler under identical load, because two thirds of the work stopped being done rather than being done faster.
The temperature is the figure we find most useful, and the one we would check first if somebody made this claim to us. Throughput can be argued about. A processor running twenty two degrees cooler under the same attack is not doing the work any more.
What it will not do
Enforcing a decision cheaply is only an improvement if the decision can still be wrong safely. Five properties hold regardless of what any client does.
- Every judgement expires
- A judgement carries its own expiry, held in the same place it is enforced. It cannot outlive the behaviour that produced it, and it cannot survive the system that made it going away.
- Only the ports we serve
- Enforcement is scoped to the ports we answer for you. It cannot reach your own administrative access on that machine, and it never touches a reply to a connection your server opened itself.
- Addresses you trust are exempt
- Anything on your allow list is never subject to it, whatever it does.
- Crawlers are exempt by address
- Verified search and AI crawlers are exempt by the address ranges their operators publish, refreshed from source, never by a User-Agent string a client can simply claim.
- Shared addresses are protected
- A single office, campus or mobile carrier can put thousands of unrelated people behind one address. The rule that governs this accounts for that directly, and evidence from one visitor is not held against the rest.
What this page does not tell you
You will not find the thresholds here, or the length of the windows, or how long a judgement lasts, or how many a machine can hold. The same applies to the exact conditions that produce one.
That is deliberate, and it is the same reason the Technology page describes limits rather than quoting them. A published threshold is a threshold to pace against, and the people most interested in these numbers are the ones we are trying to make uncomfortable. If you are evaluating us and need more detail than this page carries, ask us directly and we will answer under an agreement rather than in public.
What we will always publish is the measurements, because those are what you are buying, and any of them can be checked against your own traffic once you are behind the network.
If you are a visitor who was refused
Reflex only ever acts on a client that has already been judged, and judgements come from behaviour rather than from who you are. If a site is refusing you and you believe that is wrong, the fastest route is the site’s own operator: they can see exactly what was recorded about your address and can exempt it immediately.
Judgements also expire on their own. Nothing here is permanent, and nothing needs to be appealed to lapse.