MORE POSTS
April 05, 2022 12:57 PM
PIPEFAIL: How a missing shell option slowed Cloudflare down
This post tells the story of how a missing shell option called “pipefail” slowed Cloudflare down....
March 20, 2022 4:58 PM
Unlocking QUIC’s proxying potential with MASQUE
We continue our technical deep dive into traditional TCP proxying over HTTP...
March 19, 2022 5:01 PM
A Primer on Proxies
A technical dive into traditional TCP proxying over HTTP...
February 04, 2022 1:58 PM
Missing Manuals - io_uring worker pool
Chances are you might have heard of io_uring. It first appeared in Linux 5.1, back in 2019, and was advertised as the new API for asynchronous I/O. Its goal was to be an alternative to the deemed-to-be-broken-beyond-repair AIO, the “old” asynchronous I/O API...
February 02, 2022 9:53 AM
How to stop running out of ephemeral ports and start to love long-lived connections
Often programmers have assumptions that turn out, to their surprise, to be invalid. From my experience this happens a lot. Every API, technology or system can be abused beyond its limits and break in a miserable way...
November 03, 2021 2:37 PM
The tale of a single register value
It’s not every day that you get to debug what may well be a packet of death. It was certainly the first time for me.
What do I mean by “a packet of death”? A software bug where the network stack crashes in reaction to a single received network packet, taking down the whole operat...
September 14, 2021 12:59 PM
How we built Instant Logs
In this blog post, we’ll show you how we built a new system that can give you access to your Cloudflare logs in real time, with just a single click....
September 10, 2021 12:58 PM
How to execute an object file: Part 3
Continue learning how to import and execute code from an object file. In this part we will handle external library dependencies....
August 26, 2021 3:04 PM
Pin, Unpin, and why Rust needs them
Using async Rust libraries is usually easy. It's just like using normal Rust code, with a little async or .await here and there. But writing your own async libraries can be hard. ...
May 06, 2021 1:00 PM
Branch predictor: How many "if"s are too many? Including x86 and M1 benchmarks!
Is it ok to have if clauses that will basically never be run? Surely, there must be some performance cost to that......
April 02, 2021 11:00 AM
How to execute an object file: Part 2
Continue learning how to import and execute code from an object file. This time we will investigate ELF relocations....
March 02, 2021 12:00 PM
How to execute an object file: Part 1
Ever wondered if it is possible to execute an object file without linking? Or use any object file as a library? Follow along to learn how to decompose an object file and import code from it along the way....
December 18, 2020 12:30 AM
A quirk in the SUNBURST DGA algorithm
On Wednesday, December 16, the RedDrip Team from QiAnXin Technology released their discoveries (tweet, github) regarding the random subdomains associated with the SUNBURST malware which was present in the SolarWinds Orion compromise. I...
November 27, 2020 1:00 PM
ASICs at the Edge
At Cloudflare, we pride ourselves in our global network that spans more than 200 cities in over 100 countries. To accelerate all that traffic through our network, there are multiple technologies at play. So let’s have a look at one of the cornerstones that makes all of this work....