BLOG / ... / Low-level

details

Low-level programming is machine-oriented and sits close to computer peripherals. Low-level programming allows the programmer to adapt the processor to precise minimum memory usage requirements while maintaining high performance.

Thumbnail of an article about FPGA — what is it and how can it be used?
SOFTWARE DEVELOPMENT

FPGA — what is it and how can it be used?

FPGA programming has been gaining momentum lately as it offers considerable benefits. It allows you to offload resource-hungry tasks to hardware and thus increase performance. FPGAs can be programmed and reprogrammed according to current needs, which is very cost effective in the long run. In this article, I explain what an FPGA is, how it can be programmed and how it can be used. A field-programmable gate array (FPGA) is an integrated circuit that can be programmed for a specific use after it has been manufactured.
Thumbnail of an article about Network ACL processing algorithms — optimizing firewall's performance
NETWORKS
SOFTWARE DEVELOPMENT

Network ACL processing algorithms — optimizing firewall's performance

A firewall is an important component in protecting a network from attacks. It allows configuration of what kind of traffic is allowed inside the network. So in a sense, a firewall is a barrier that can reject all suspicious connections at the very entrance to the network, making potential attacks significantly more difficult. There are many types of firewalls. In this article, we will focus only on simple stateless firewalls that work in the 3rd and 4th layer of the OSI model (L3 + L4 firewalls). Typically, a firewall uses a user-specified access control list (ACL) to decide which packets to let through and which to block.
Thumbnail of an article about How memory types affect DPDK application performance — case study
SOFTWARE DEVELOPMENT

How memory types affect DPDK application performance — case study

In this blog post, I will describe a problem encountered while working on a project involving GPU usage in network traffic processing (knowledge of GPU programming won’t be required as it will quickly become apparent that the problem is more general and the GPU can be eliminated). I will describe the steps that helped me in locating and fixing the problem – practical methods used for DPDK profiling and debugging. Also, I will describe some low-level internal DPDK mechanisms (e.g. packet processing, IOMMU, hugepages usage and impact) that helped in understanding the issue.
Thumbnail of an article about What is DPDK? Definition and usage in networks
SOFTWARE DEVELOPMENT

What is DPDK? Definition and usage in networks

DPDK (Data Plane Development Kit) is a set of libraries for implementing user space drivers for Network Interface Controllers. DPDK provides you with a framework and common API for high-speed networking applications and allows for achieving a fast packet processing pipeline.
Thumbnail of an article about What are SmartNICs? The different types and features
SOFTWARE DEVELOPMENT

What are SmartNICs? The different types and features

Nowadays, network applications have evolved to provide more complex and user-oriented features. This evolution comes with a cost: increased CPU resource usage on the server side. For that reason, a solution that enables network function offloading and improves application performance is sorely needed. According to an Intel report, only 2% of respondents don't plan to deploy SmartNICs in the near future. This number is meager, but it could be useful to consider why this small group remains unconvinced.
Thumbnail of an article about GPU in computer networks — how to speed up traffic processing
NETWORKS
SOFTWARE DEVELOPMENT

GPU in computer networks — how to speed up traffic processing

We are almost always online in our hyper-connected world. In just 10 years, the number of active device connections rose from 8.8 billion in 2010 to 21.6 billion in 2020, and it is expected to further increase to 41.2 billion by 2025 (according to Statista data). This rapid growth raises new technical issues regarding network traffic control and processing. Especially when we combine them with the development of 5G, a new standard offering peak data rates of up to 20 Gbps and supposedly supporting a 100-fold increase in traffic capacity and network efficiency.
Thumbnail of an article about SmartNICs with P4 support
SOFTWARE DEVELOPMENT
NETWORKS

SmartNICs with P4 support

In the first part of this blogpost we discuss the idea of using smartNIC solutions to optimize network performance in a data center. In the second part, we review the currently available (July 2020) smartNIC solutions that can be programmed with P4. A paradigm of edge-computing has been gaining in popularity of late. The term itself can refer to many sub-technologies and have many meanings. One of them is the existence, next to the centralized, large data center, of those small or very small, located closer to the end-user.
Thumbnail of an article about P4 Network Programming Language — what is it all about?
SOFTWARE DEVELOPMENT
NETWORKS

P4 Network Programming Language — what is it all about?

The programming language P4 is gaining in popularity in the network industry and is considered the next step in the SDN evolution. In this blog post, I will take a closer look at P4 and try to show why it is so important. Network devices like switches or routers are most commonly designed ”bottom-up.” The switch vendors that offer products to their clients usually rely on external chips from 3rd party silicon vendors. The chip is the heart of the system and in practice determines how device OS is realized and what functionality it can offer.
arrow

Get your project estimate

For businesses that need support in their software or network engineering projects, please fill in the form and we’ll get back to you within one business day.

For businesses that need support in their software or network engineering projects, please fill in the form and we’ll get back to you within one business day.

We guarantee 100% privacy.

Trusted by leaders:

Cisco Systems
Palo Alto Services
Equinix
Jupiter Networks
Nutanix