Blog>>Software development>>Low-level>>SmartNIC vs. NIC: what is the difference?

SmartNIC vs. NIC: what is the difference?

Our everyday life is full of networking devices and applications. When we video conference at work or watch a new movie on a streaming service at home, we barely even think about how much data needs to be transferred to ensure their correct function. We use our mobile devices with high-speed Internet access and take that for granted. But underneath the efficient work of online applications lies the stable functioning of enormous data centers and telecommunication infrastructure. 

Since the amount of data that needs to be processed grows every day, we keep demanding more and more processing capabilities from the networking infrastructure. It is obvious that existing hardware is going to reach its limits at some point, so data center and telco operators are looking for new ways of improving servers’ performance. The above examples are only a few reasons why the ethernet adapter market opportunity for SmartNICs is expected to grow and reach almost 10 billion dollars by 2027      link-icon

A smart network interface card is one way to accelerate data center servers and improve their network performance, as well as their security and storage capabilities. But how does that work and how are SmartNICs different from standard network interface cards? Let’s try to understand the difference.

What is a standard network interface card?

Initially, there was just a NIC or network interface card, used for computer networking since the 1980s. A NIC is a hardware component that allows computers on the same local area network to communicate with each other. It is part of home computers and phones, as well as enterprise servers and routers. Technological advancements and NICs gaining more and more features created a need for differentiation in naming between different generations. There is no single official name for the first generation of NICs, some people call them foundational, conventional, or basic NICs.

Basic NICs are responsible mostly for the physical aspects of communication in a network, allowing software to handle operations on the upper level of the networking stack. This approach has advantages and disadvantages.

Handling most of the networking stack in the software allows us to quickly introduce new features, fix bugs, and allows for much more customization of the solution. But it has significant drawbacks: processing packets in software is slow, and you sacrifice part of the computing power just for the sake of handling the networking stack.

To address those issues, manufacturers started to include more and more specialized hardware in the NICs to handle operations like checksum computation or segmentation offloading.

NEEDS Equipment

What is a SmartNIC?

This leads us to the present time and specialized NICs that can handle nearly all the networking functionality in dedicated hardware, and adding the programmable part allows customization. We call these SmartNICs.

A smart network interface card or just SmartNIC goes beyond simply handling the connection between servers. By definition, a SmartNIC is a type of NIC which extends its standard functionality with an additional computing layer. This computing layer can be programmed to perform tasks like switching or routing traffic between the applications or virtual machines, inspecting traffic to block potential threads or even going into the application world, and serving data like movies to the end user, bypassing the operating system.

We can see a SmartNIC as a programmable accelerator card in the same way as we use GPUs today. Using a SmartNIC in the data center, we can offload network-related tasks to the SmartNIC as we offload the graphics-related computation to dedicated hardware, freeing up CPU power and improving the flexibility and performance of the data center infrastructure.

>> We update low-level drivers and libraries to support new SmartNICs as replacements in existing setups. To learn more, check out our low-level services.

Differences between a SmartNIC and a NIC

There are two main differences between NICs and SmartNICs, that is, the components they have and the tasks they can perform. Of course, a SmartNIC, being more ‘evolved’, will in most cases have all the capabilities of a basic NIC and can act as one. Let’s take a closer look at each aspect.

SmartNIC vs. NIC components

Any networking device needs some base components to maintain compatibility on the network’s lower layers. The actual interconnect is done either by using embedded copper ports or transceiver ports, which allows usage of multiple types of optical connectors. Ethernet physical controllers are responsible for the actual data frame encoding. Standard NICs contain those base components and a circuit-handling two-way data exchange between host and network card. With networks’ development, the ethernet controller present on the card grew in complexity in order to support new features necessary for virtualization (i.e. SR-IOV). Along with that came support for some of the most common operations and, in modern NICs, support for a few types of tunneling encapsulation in the hardware. While this approach proved to be very efficient, a standard NIC lacks programmability which is limiting in some of the more complex applications.

In these cases, a new approach was necessary, and additional components were added to a network adapter. These are specifically targeted at extending NIC functionality in a programmable manner, allowing for tackling complex networking applications. Common approaches currently present on the market are embedding: Field-Programmable Gate Arrays (FPGAs), general purpose CPUs (commonly ARM architecture), or specialized micro core architectures. Armed with these powerful and highly customizable components a new kind of network adapter was born, commonly referred to as a SmartNIC.

The combination of programmable accelerators and powerful processors gives a SmartNIC the capability to deliver both flexibility and high performance. To manage modern distributed applications, SmartNICs offload computationally intensive tasks from the server, ensuring that the server’s CPU can be fully utilized for billable workloads which generate revenue for cloud service providers. Furthermore, dedicated accelerators are much more efficient in networking applications than generic CPUs, allowing for less latency and higher traffic volumes with lower costs. 

Fig.1: SmartNIC vs. regular NICSource: SmartNIC vs. regular NIC      link-icon
SmartNIC vs. regular NIC

Capabilities of SmartNICs

So what exactly can SmartNICs do that a standard NIC can not? There are a number of capabilities that a SmartNIC can offer due to its more complex and powerful structure. These features can vary, depending on the SmartNIC vendor, but here is a list of the most common ones.

Network functions

SmartNIC’s built-in programmable accelerator can process multiple networking tasks, including load balancing, telemetry, routing, virtual switching, network overlays, and others. All these networking functions are also offloaded from the host server’s CPU, which makes data center networking more efficient.

When overlay networks need to be used for containerized or virtualized systems, SmartNICs can perform tunneling so that packets can be routed between these overlay networks.

Network security functions

There are multiple ways in which SmartNICs improve cybersecurity in data centers. One of their most important functions is to protect data center servers from DDoS (distributed-denial-of-service) attacks that are performed by flooding the network with traffic which exhausts the server’s processing power. SmartNICs, unlike conventional firewalls, can be configured to inspect and dynamically drop packets, preventing DDoS attacks. Offloading the detection and prevention of DDoS attacks to the SmartNIC allows data center operators to make sure that the host server CPU won’t be overwhelmed in the event of a DDoS attack.

In general, a SmartNIC can be also used for filtering network traffic or as a Netfilter firewall. SmartNICs can filter all inbound and outbound packets, offloading this task from the host server CPU. 

SmartNICs provide an extra security layer to protect their own operating system by creating an air gap between the SmartNIC’s operating system and the host system’s OS. They are also utilized to ensure multi-tenant isolation, when the same physical data center is shared among several consumers.

Encryption

Another security area that can be accelerated by SmartNICs is traffic encryption. Depending on the SmartNIC configuration, either the computation-heavy encryption procedures are done in hardware or, in some cases, the SmartNIC is the secure tunnel endpoint. 

Storage functions

In a modern data center, one of the most crucial services utilizing network bandwidth is network storage. Whether a dedicated remote storage server or hyperconverged infrastructure and distributed storage implementation, it contributes highly to network traffic volume. Networking and remote storage are often treated as parts of infrastructure, and thus it makes sense for SmartNICs to provide storage offloading features. These are commonly offloading remote storage protocols or vendor-specific solutions that present block storage if hosted on local disks.

Computing functions

A SmartNIC, thanks to its processor components, provides an opportunity to offload computationally intensive tasks like transcoding video or blockchain hashing from a server’s CPU. As a result data centers can extract significantly better performance from their hardware, instead of replacing it with upgraded versions.

If we take transcoding video using adaptive-bitrate compression as an example, this is a very computationally intensive task for server CPUs, especially if it is live video. SmartNICs offload and accelerate the compression tasks, which frees up the main system CPU.

It is also possible to offload primary network applications like in-memory databases or DNS queries that usually run on the server. SmartNICs can process DNS queries very quickly, which makes it one of the most popular ways to utilize a SmartNIC.

Is a SmartNIC the same as a data processing unit?

On the market, we can find products described as a data processing unit (DPU), infrastructure processing unit (IPU) or network processing unit (b), which are often collectively known as xPUs (x processing unit). These products have some differences in capabilities and often offer out-of-the-box support for specific use cases but because of the similarities in their functional principles, they can be categorized as SmartNICs. As there is no universally approved definition of a SmartNIC, current market trends suggest that xPUs are indeed SmartNICs, evolved and specialized, rather than a separate idea.

Conclusion

Although today, standard NICs represent the basic level of a network interface, they still play an important role, especially when the cost of the solution is significant. SmartNICs offer a wider range of capabilities and improve data center networking, storage and security. Since the exact components of SmartNICs from different vendors can vary, it is possible to select the version that will work best for specific data center needs. Using a SmartNIC with its powerful programmable components instead of a default NIC already provides a lot of advantages that can not be overlooked.

Jaworski Artur

Artur Jaworski

Software Engineer

Artur Jaworski is a Senior Software Engineer at Codilime with over ten years of experience in financial and networking technologies. With languages like C/C++, Rust, Python and P4, he participated in the development of several solutions for data-plane applications, SDN controllers, 5G infrastructure and...Read about author >

Read also

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.