Our Technology

The core of our technology comprises a high performance kernel-mode 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.

Standard
Network Traffic Processing as implemented by other companies.
Verigio
Network Traffic Processing.
STandard Network Traffic Processing Verigio 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.
  • [CPU, MEMORY] Allocation and copying of memory during data transfer between kernel-mode and user-mode for every packet.
  • [CPU] Serialization of data transfer. This voids the benefits of multi-core processors.
  • [CPU] Overhead of switching from kernel-mode to user-mode.
(B) User-mode traffic processing.
  • [CPU] User-mode traffic processing is executed on user-mode threads that compete for CPU with other applications.
  • [CPU,MEMORY] Possibility of memory being paged out into a page file.
  • [CPU,MEMORY] Queuing of data caused by processing slower than incoming from kernel-mode data.

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.