The TOFFEE Project

RESEARCH 》 Building my own CDN - Finally Completed - Update: 17-Dec-2017

Today I finally completed building my own private CDN. As I discussed so far in my earlier topics (Building my own CDN), I want to custom build the same step-by-step from scratch. And I don't want to for now use/buy third-party CDN subscriptions from Akamai, CloudFlare, Limelight, etc as I discussed earlier.

As you know The TOFFEE Project (or TOFFEE) is a fork of my TrafficSqueezer WAN Optimization project. I still have/own the TrafficSqueezer domain which is But ever since I started the The TOFFEE Project fork (and the website), I did a direct domain redirect to the new registered But now recently I got a new hosting from GoDaddy, so once again I linked the old domain (i.e. to that new hosting. Hence now I have a fresh initial welcome page in the mentioning about the project status. And it automatically redirects the users to the new The TOFFEE Project website (i.e., as you can see in the screenshot below). Other than this, the website is completely empty. Which means I can use the hosting space for other important situations like in this case to build my own private CDN for the website.
01 Building my own CDN for TOFFEE website - empty TrafficSqueezer website [CDN]

Creating a new sub-domain to host my new CDN
So I went ahead and created the new sub-domain in my GoDaddy portal (as shown below) to host the CDN within the same so that it is sort of isolated from the main website context. It also makes easy to track the GoDaddy cPanel Awstats and so on.
02 Building my own CDN for TOFFEE website - - sub-domain to host my new CDN [CDN]
03 Building my own CDN for TOFFEE website - - sub-domain to host my new CDN [CDN]

When I create this sub-domain, I have a choice, suppose if I have more websites, I can even instead create sub-domain names such as cdn-the-toffee-project-org and so on, so that this way we can have each CDN sub-domain created for a dedicated remote site. But in my case I would like to keep things simple at this point so I created for now a single sub-domain such as and hosted(copied) the images and other web-resources within the same.

So with this thing in place, I now changed my main website scripts so that they point these resources dynamically as per the mode I want. Such as:

  • Always CDN mode
  • Load-Sharing CDN mode
  • No CDN mode (or Disable CDN mode)

Unfortunately, for security reasons I am not interested to share this logic(my exact code). But anyways I hope you get the idea how it can be done. The Always CDN mode allows registered resources (images/scripts/etc) to get incorporated always via CDN for each page request. While the load-sharing CDN mode gives me the flexibility to use CDN resources fairly. And this way if I choose to host in other CDNs in future such as this, I can dynamically point to CDN of my choice dynamically in a sort of round-robin fashion. But for now since I have only one CDN, sometimes the images(and resources) will be served from CDN sources and sometimes it will be served locally via server itself.

Last but not least I did the No CDN mode or Disable CDN mode as a precaution so that if something goes wrong or if the CDN site is down, the whole CDN stuff can be disabled. Even this can be automated by incorporating some sort of remote discovery and intelligent switchover to avoid any catastrophe!

So as you can see here are some few screenshots where at times some are getting fed via CDN and at times they are getting fed by itself (i.e no CDN). Since it is still work in progress, to debug the same, I have incorporated this dynamic " [CDN]" string in the image title and image alt, so that it gives me a clue if the system is all working fine. And I should able to distinguish the image source.

Here are some of the screenshots. Notice the image title when I hover the mouse pointer above the same:

Image/Resource not fed via CDN (below):
04 Building my own CDN for TOFFEE website - - checking if the resource is fed via CDN [CDN]

Image/Resource fed via CDN (below):
05 Building my own CDN for TOFFEE website - - checking if the resource is fed via CDN

Image/Resource fed via CDN (below):
06 Building my own CDN for TOFFEE website - - checking if the resource is fed via CDN [CDN]

Image/Resource not fed via CDN (below):
07 Building my own CDN for TOFFEE website - - checking if the resource is fed via CDN

And yes, like I discussed in my earlier CDN topic (How to check a website using CDN ?), you can do a view source of any of these pages (as shown below) just like Facebook, Twitter, etc, and get an hint whether a website is using CDN or not.
08 Building my own CDN for TOFFEE website - - check if a website is using CDN

Like I discussed in this case it is not so sophisticated or complex like subscription based CDNs like what you get via CloudFlare/Akamai and so on. But instead this is a pure private custom-built CDN. And kindly note, even CDN technology is a sort of (or a specific category of) WAN Optimization technology. But it is not a mundane WAN Optimization technology, instead it comes under one among the Internet Optimization Technologies.

At times I do offer consultation on this regard to my clients across the world. And hence in case if you are looking forward for any expert advice or any other consultation on this regard you can contact me via email provided in the contact page.

Suggested Topics:

Generic CDN

Building my own CDN

💎 TOFFEE-MOCHA new bootable ISO: Download
💎 TOFFEE Data-Center Big picture and Overview: Download PDF

Recommended Topics:

TEST CASES :: TEST RESULTS :: TOFFEE-Mocha-1.0.14 Development version ↗
Saturday' 13-Mar-2021

Tracking Live Network Application Data - in a WAN Acceleration (WAN Optimization) Device ↗
Saturday' 13-Mar-2021

How to check a website using CDN ? ↗
Saturday' 13-Mar-2021

TOFFEE-Mocha-1.0.32-1-x86_64 and TOFFEE-Mocha-1.0.32-1-i386 Code Release ↗
Saturday' 13-Mar-2021
This is my first TOFFEE-Mocha combined x86-64 and i386 (Intel x86 64-bit and 32-bit) code release.

Introducing TOFFEE-DataCenter ↗
Saturday' 13-Mar-2021
TOFFEE TOFFEE Data-Center is specifically meant for Data Center, Cluster Computing, HPC applications. TOFFEE is built in Linux Kernel core. This makes it inflexible to adapt according to the hardware configuration. It does sequential packet processing and does not scale up well in large multi-core CPU based systems (such as Intel Xeon servers, Core i7 Extreme Desktop systems,etc). Apart from this since it is kernel based, if there is an issue in kernel, it may crash entire system. This becomes a challenge for any carrier grade equipment (CGE) hardware build.

TOFFEE-Mocha WAN Emulation software development - Update: 20-Oct-2016 ↗
Saturday' 13-Mar-2021
I was doing some specific tests in my TOFFEE and TOFFEE-DataCenter (WAN optimization) scenarios such as variable upload and download speeds. And I was also doing some experiments with and I did some of these tests with TOFFEE-Mocha. I realized there is a case that I can introduce asymmetric constant delays so that you can get different download speed and a different upload speed. And in some cases much faster download speeds and relatively slower upload speeds.

Watch on Youtube - [439//1] 158 VLOG - TOFFEE WAN Optimization Software Development live update - 6-Nov-2016 ↗

Introducing TOFFEE-Fudge - Network Packet Generator ↗
Saturday' 13-Mar-2021
TOFFEE Fudge is a simple intuitive Network Packet Generator which can be used to create custom test synthetic Network Packets and can be used in various applications such as networking research, network infrastructure troubleshooting, ethical hacking, as a network software development tool and so on.

Optimization of network data (WAN Optimization) at various levels ↗
Saturday' 13-Mar-2021
WAN Network data can be optimized at various levels depending upon the network applications, protocols, topology and use-cases. So the amount of data you can optimize will depend on the strategy you choose to optimize. Such as: Network Packet level optimization, Session level optimization, File level optimization, etc.

Setting up a WAN Emulator within VirtualBox ↗
Saturday' 13-Mar-2021

TOFFEE-DataCenter Download :: TOFFEE-DATACENTER-1.2.2-1-portable ↗
Saturday' 13-Mar-2021

Featured Educational Video:
Watch on Youtube - [1670//1] x232 Linux Kernel Device Drivers Programming - probe() API #Kernel? #Drivers ↗

TOFFEE-DataCenter a TOFFEE variant for Data Center applications ↗
Saturday' 13-Mar-2021

How to check a website using CDN ? ↗
Saturday' 13-Mar-2021

TOFFEE (and TOFFEE-DataCenter) optimized Satellite (inflight/marine/defense) ISP Networks ↗
Saturday' 13-Mar-2021
TOFFEE Optimized Satellite ISP Network: TOFFEE/TOFFEE-DataCenter can be used to optimize Satellite Networks (Satellite based Internet Networks, VoIP, Data, private leased-links) as shown. Ground station transponders can be connected via array of TOFFEE Devices and in the remote CPE can have dedicated or inbuilt TOFFEE with which you can establish a WAN Optimized Satellite Network Tunnel as shown.

Network MTU research and optimization of WAN Links ↗
Saturday' 13-Mar-2021
Network MTU research and optimization of WAN Links

Raspberry Pi as a Networking Device ↗
Saturday' 13-Mar-2021
Raspberry Pi is often used as a single board computer for applications such as IoT, hobby projects, DIY, education aid, research and prototyping device. But apart from these applications Raspberry Pi can be used for real-world applications such as in making a full-fledged networking devices. Raspberry Pi is a single board ARM based hardware which is why it is also classified as ARM based SoC. Since it is ARM based it is highly efficient, tiny form-factor and lower in power consumption with moderate computational power. This will allow it to work several hours on emergency battery backup power supply such as low-cost domestic UPS and or some renewable energy source, which is a prerequisite for a typical networking device.

Research :: Optimization of network data (WAN Optimization) at various levels:
Network File level network data WAN Optimization

Learn Linux Systems Software and Kernel Programming:
Linux, Kernel, Networking and Systems-Software online classes [CDN]

Hardware Compression and Decompression Accelerator Cards:
TOFFEE Architecture with Compression and Decompression Accelerator Card [CDN]

TOFFEE-DataCenter on a Dell Server - Intel Xeon E5645 CPU:
TOFFEE-DataCenter screenshots on a Dual CPU - Intel(R) Xeon(R) CPU E5645 @ 2.40GHz - Dell Server