Abstract:
In the era of the rapid increase in network speed, memory access bottleneck has been a prominent problem, and network processing overhead has been increasing significantly. Ordinary network cards have gradually exposed defects in network protocol processing, data migration, and programmable flexibility in modern applications. As a programmable intelligent network device, the SmartNIC (smart network interface card) has received extensive attention in the fields of data center and scientific computing cluster applications. SmartNIC has become a key technology to solve network bottlenecks. It can bring significant benefits in terms of protocol processing offload, network function virtualization, application-specific acceleration, and other usage scenarios. We survey the basic architecture, programming framework, application direction, and other hot research issues of SmartNIC. We summarize the typical products in the current industry and important achievements in academia. We also clarify the advantages and disadvantages of different design architectures. The application scenarios applicable to different programming frameworks are introduced, and the value of SmartNIC in typical data center applications and scientific computing applications is introduced. After that, we give some efficient suggestions about software and hardware collaborative design of SmartNIC in different application scenarios. Finally, we present the hot issues that still exist in the design and use of SmartNIC, and put forward the important future research points and a universal design solution for SmartNIC.