The TOFFEE Project
HOMEDOCUMENTATIONUPDATESVIDEOSRESEARCHDOWNLOADSPONSORSCONTACT


RESEARCH 》 Raspberry Pi as a Networking Device

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 (System on Chip) computer. 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. As we know quite often these need to be switched on 24/7 and reliable.

ARM based SoC boards are already quite often being used as Networking devices. Here are some examples:

NAS Product: NETGEAR - ReadyNAS 102, ReadyNAS 104 series NAS products uses Marvell® Armada 370 1.2GHz SoC
Datasheet: http://www.marvell.com/embedded-processors/armada-300/assets/Marvell_ARMADA_370_SoC.pdf
Hardware Specifications: http://www.marvell.com/embedded-processors/armada-300/assets/ARMADA370-datasheet.pdf

Wi-Fi Gigabit Router: Kasda KA1900, TP-LINK Archer C9, TP-LINK Touch P5 - BCM4709 - ARM Cortex A9 1 GHz SoC
For more details to find entire series of Broadcom ARM processor: https://wikidevi.com/wiki/Broadcom

NAS Product: Xiaomi MiWiFi 802.11ac NAS Powered by Broadcom BCM4709 SoC
Read more about this product: Xiaomi MiWiFi 802.11ac NAS

Now let us compare with Raspberry Pi hardware:

Raspberry Pi 2 Model B - Broadcom BCM2836 900 MHz quad-core ARM Cortex A7
Official Raspberry Pi website: https://www.raspberrypi.org/products/raspberry-pi-2-model-b/

This shows even a Raspberry Pi is an excellent platform for building customized networking devices such as Home routers, Firewall devices, network gateways, IDS/IPS devices, Network monitoring, VOIP device, WAN Optimization devices, etc. So with a specific software meant for specific use-case any Raspberry Pi device can morph into a tiny desktop, or into a serious Network Device. Now let us explore various Raspberry Pi based software projects each with a specific use-case.

Wi-Fi access point:
Here is a list of few projects (or software solutions) with which you can turn your existing Raspberry Pi device into a quick dedicated Wi-Fi access point.

Project: The Pi-Point Raspberry Pi Wireless Access Point
Project website: http://www.pi-point.co.uk
Pi-Point is one of the top ten projects on TechRepublic. With Pi-Point you can extend your existing WiFi Network, create an access point, and so on. In other words you can make a Raspberry Pi device into a networking device and not only that you can also learn/debug/hack the network packets/data.

Project: Raspberry Pi WAN Emulator with TOFFEE-Mocha
Project URL: http://www.the-toffee-project.org/index.php/documentation/29-toffee-mocha-documentation-toffee-mocha-1-0-14-1-rpi2
TOFFEE-Mocha is an open-source WAN Emulation software which can be used to emulate (simulate) WAN networks. You can build test WAN networks and emulate WAN like behavior with TOFFEE-Mocha such as packet delays, random packet drops, packet corruption and so on. TOFFEE-Mocha can also be used as a tool to build TOFFEE WAN Optimization test setup at your lab. With the Raspberry Pi TOFFEE-Mocha release you can turn any Raspberry Pi2/3 into a dedicated WAN Emulator (network simulator) lab testing device.

NAS Micro Storage device:
You can build a DIY NAS server with Raspberry Pi. The idea here is to create a shared file-system resource at your home, so that you can access these common files from any device, such as mobile phones, smart TVs, share/upload pictures and videos from your camera for your family members and lot more interesting things. So there are various DIY Raspberry Pi NAS server build guides you can refer and build your own device at home. Here are some of my interesting links on this DIY:
http://elinux.org/R-Pi_NAS
http://pimylifeup.com/raspberry-pi-nas/
http://lifehacker.com/5988835/turn-a-raspberry-pi-into-a-low-power-nas
https://www.stewright.me/2013/05/turn-a-raspberry-pi-into-a-nas-network-attached-storage-server/

Benchmark Raspberry Pi and other embedded SoC with TrueBench:
TrueBench is an unique open-source benchmarking system in which the core system performance and efficiency parameters are measured at extreme high resolution in the order of several million/billion µ-seconds for a given specific task. TrueBench is a part of The TOFFEE Project research. With TrueBench Raspberry Pi 3, Raspberry Pi 2B and Raspberry Pi 2 are benchmarked and you can do a comparative analysis with standard mainstream x86 devices. For more details: visit TrueBench

Off-Grid Solar Power System for Raspberry Pi:
When you choose to use your Raspberry Pi device as your IoT based remote weather station or if you are building Linux kernel (like kernel compilation) within the same, you need a good uninterrupted power source (UPS). But if you are using it on site or in some research camping location you can choose to power your Raspberry Pi device with your custom off-grid solar power source. Kindly read my complete article about the same HERE.
Off-Grid Solar Power System for Raspberry Pi

Custom Linux Kernel compilation in Raspberry Pi:
At any case if you are interested learning Linux Kernel internals with Raspberry Pi and want to custom inject your code in Linux Kernel and or build your network stack for a networking device you can refer my video:

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


Recommended Topics:

TOFFEE (and TOFFEE-DataCenter) optimized Mobile Wireless Backhaul Networks ↗
Saturday' 13-Mar-2021
TOFFEE can be used to optimize expensive Wireless backhaul network infrastructure. TOFFEE can be deployed over existing slow or often outdated old backhaul networks too. This will leverage mobile ISPs and network service providers to reduce their bulk IT CapEx and OpEx Costs.

TOFFEE-Mocha Documentation :: TOFFEE-Mocha-1.0.18-1-x86_64 ↗
Saturday' 13-Mar-2021

TOFFEE-Butterscotch a TOFFEE for Home/SOHO Internet/WAN bandwidth ↗
Saturday' 13-Mar-2021
TOFFEE-Butterscotch a TOFFEE for Home/SOHO Internet/WAN bandwidth

TOFFEE-Mocha WAN Emulation software development - Update: 18-June-2016 ↗
Saturday' 13-Mar-2021
In the previous update (17-Jun-2016) I discussed about the upcoming new Random Packet drop feature along with other completed features. Now I completed the entire TOFFEE-Mocha Random packet drop feature. I completed all the kernel components and the UI support of the same. And to make GUI settings more organized I split the earlier Basic-Settings page into two separate pages namely: Packet Drop and Packet Delay. So this way it is simple to understand settings according to their functionality.

Building my own CDN - Finally Completed - Update: 17-Dec-2017 ↗
Saturday' 13-Mar-2021
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.

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 Emulator Jitter Feature ↗
Saturday' 13-Mar-2021

A study on WAN Optimization Techniques ↗
Saturday' 13-Mar-2021
There are various techniques with which one can optimize their WAN Network Data. Any long distance communication can be considered as WAN Network. A decade ago any network connecting two countries, considered as a WAN network, and a network within a city as MAN and soon. But these days in general any long distance communication is considered as WAN Network. Such as your Mobile communication networks, Satellite networks, Space Networks (Deep space networks), Trans-Atlantic cable networks, etc.

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.

TOFFEE deployment topology guide ↗
Saturday' 13-Mar-2021
Assume you have two sites (such as Site-A and Site-B) connected via slow/critical WAN link as shown below. You can optimize this link by saving the bandwidth as well possibly improve the speed. However, the WAN speed can be optimized only if the WAN link speeds are below that of the processing latency of your TOFFEE installed hardware. Assume your WAN link is 12Mbps, and assume the maximum WAN optimization speed/capacity of Raspberry Pi is 20Mbps, then your link will get speed optimization too. And in another case, assume your WAN link is 50Mbps, then using the Raspberry Pi as WAN Optimization device will actually increase the latency (i.e slows the WAN link). But in all the cases the bandwidth savings should be the same irrespective of the WAN link speed. In other words, if you want to cut down the WAN link costs via this WAN Optimization set up, you can always get it since it reduces the overall bandwidth in almost all the cases (including encrypted and pre-compressed data).



Featured Educational Video:
Watch on Youtube - [1836//1] x257 tp-link UE300 Linux Kernel Realtek Driver Codewalk rtl8153a-3 r8152 USB 3.0 to Gigabit - Part1 ↗

Live demo - Data Transfer - High bandwidth to Low bandwidth ↗
Saturday' 13-Mar-2021
I always wanted to do some real experiments and research on packet flow patterns from High-bandwidth to Low-bandwidth networks via networking devices. This is something can be analyzed via capturing Network stack buffer data and other parameters, bench-marking, and so on. But eventually the data-transfer nature and other aspects is often contaminated due to the underlying OS and the way Network stack is implemented. So to understand the nature of packet flow from Higher to Lower bandwidth and vice-versa such as Lower to higher bandwidth, I thought I experiment with various tools and things which physically we can observe this phenomena.

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

TOFFEE-DataCenter WAN Optimization software development - Update: 19-Aug-2016 ↗
Saturday' 13-Mar-2021
This is my next software development update of TOFFEE-DataCenter which I am working since past few weeks. I was very busy in implementing the core TOFFEE-DataCenter components along with prototyping, benchmarking, implementing and testing the same. However today is the first time ever I did a fresh new CLI interface for the upcoming new TOFFEE-DataCenter.

Tracking Live TCP Sessions (connections) - WAN Optimization Device ↗
Saturday' 13-Mar-2021



Watch on Youtube - [1888//1] Deep Space Communication - Episode1 - Introduction ↗

Bulk Ping Tests - WAN Acceleration ↗
Saturday' 13-Mar-2021



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


Hardware Compression and Decompression Accelerator Cards:
TOFFEE Architecture with Compression and Decompression Accelerator Card


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