The core of our technology comprises a high performance kernel-mode man-in-the-middle (MITM) TCP/IP stack driver which processes network traffic at Ethernet, IPv4/IPv6, TCP/UDP, and even HTTP layers without bringing it into the user-mode. Why a kernel-mode driver? For networking specialists this makes a perfect sense.
This is what is usually going on according to the standard traffic processing pattern. All network traffic arriving to a computer is captured by a hardware network card then passed into the kernel-mode of an operating system. The kernel-mode is the fastest part of the operating system which executes before anything else. Here, the operating system performs its own network traffic processing and directs the traffic to the user-mode. The user-mode is where all of the programs like web-browsers, Email clients, and others work. User-mode programs receive the network traffic from the kernel-mode, perform some operations, and send replies. The reply traffic then goes from the user-mode back into the kernel-mode and then goes to a network card that sends it over the wire. There are so many links in this chain, and each has its impact on performance.
Take a look at how our technology compares to what is currently used in the industry.
Network Traffic Processing as implemented by other companies.
Network Traffic Processing.
|(Pic. 1)||(Pic. 2)|
If you look closer at the "Standard Network Traffic Processing" (Pic. 1), you’ll notice the red circles with letters next to them indicate the inefficiencies. These inefficiencies do take CPU time and reduce performance of the whole computer, not only its networking subsystem. Here is their description and their impact on performance:(A) and (C) Kernel-mode to user-mode transition.
From the traffic flow diagram as implemented by other companies (Pic. 1), it becomes apparent that this traffic processing can be streamlined and inefficiencies can be avoided by keeping everything within the kernel-mode. That is exactly what our technology does to achieve the high marks of performance (Pic. 2). There is really no need to move so much data back and forth between the kernel-mode and the user-mode. Other companies did it, in many cases, because programming in user-mode is easier and requires less quality built into it. In other words, the computer is paying the price just because inefficient software was easier to develop. That is one of the reasons we came up with the idea to build better quality networking products that bring the best performance through increased efficiency of internal components. So we built the technology that works on network traffic in the kernel-mode without bringing it into the user-mode.