As a CloudFlare Optimized Partner, we are thrilled to offer the CloudFlare Railgun™ technology to all our customers for free / with our website care + hosting package. Railgun is CloudFlare’s latest performance optimization technology that gives you significant improvements in site load times. To activate Railgun, log into your control panel and select Railgun “On”.
Railgun ensures that the connection between our network and the CloudFlare network is as fast as possible. Railgun achieves a 99.6% compression ratio for previously uncacheable web objects by using techniques similar to those used in the compression of high-quality video. The average website can expect a 1.43x performance increase.
Railgun accelerates the connection between each Cloudflare data center and an origin server so that requests that cannot be served from the Cloudflare cache are nevertheless served very fast.
Approximately 2/3 of requests to sites on Cloudflare are served directly from cache from the data center that is physically closest to the person surfing the web. Because Cloudflare has data centers around the world this means that whether you are in Bangalore, Brisbane, Birmingham or Boston web pages are delivered quickly even when the real, origin web server is thousands of miles away.
Cloudflare’s ability to make a web site appear to be hosted close to web surfers is key in accelerating web surfing. A web site might be hosted in the US, but accessed mainly by web surfers in the UK. With Cloudflare the site will be served from a UK data center eliminating the costly delay caused by the speed of light.
How It Works
When a request is made to a CloudFlare server for a web page that is not in cache CloudFlare makes an HTTP connection to the origin server to request the page. It’s that HTTP connection that Railgun accelerates and secures.
Even highly dynamic websites change slowly
Railgun works by recognizing that uncacheable web pages do not change very rapidly. For example, during an experiment, the CNN.com homepage HTML was captured once, and then again after 5 minutes and then again after one hour. The page sizes were 92,516, five minutes still 92,516 and one hour later 93,727.
CNN sets the caching on this page to 60 seconds. After one minute, it is necessary to download the entire page again. However, looking inside the page, not much has changed. In fact, the change between versions is on the order of 100s of bytes out of almost 100k. Here’s a screenshot of one of the binary differences between the CNN home page at five minute intervals. The yellow bytes have changed, the rest have not.
Experiments at CloudFlare have revealed similar change values across the web. For example, reddit.com changes by about 2.15% over five minutes and 3.16% over an hour. The New York Times home page changes by about 0.6% over five minutes and 3% over an hour. BBC News changes by about 0.4% over five minutes and 2% over an hour.
Although the dynamic web is not cacheable, it is also not changing quickly. That means that from moment to moment there’s only a small change between versions of a page. CloudFlare Railgun uses this fact to achieve very high rates of compression. This is very similar to how video compression looks for changes from frame to frame; Railgun looks for changes on a page from download to download.
Railgun consists of two components: the sender and the listener. The sender is installed at every CloudFlare data center around the world. The listener is a software component that API Studios has installed on our network for customers.
The sender and listener establish a permanent TCP connection that’s secured by TLS. This TCP connection is used for the Railgun protocol. It’s an all binary multiplexing protocol that allows multiple HTTP requests to be run simultaneously and asynchronously across the link. Or in other words, a persistent connection is opened between CloudFlare’s network and ours and eliminates the overhead of TCP.