Network packet steering of incoming traffic for multi-core architectures is needed in modern network computing environment, especially in data centers, where the high bandwidth and heavy loads would easily congestion a single core's queue.

For this reason many techniques, both in hardware and in software, are leveraged in order to distribute the incoming load of packets across the cores of the processor. [1] [2] [3] [4]
Hardware techniques
Hardware accelerated techniques like RSS and aRFS are used to route and load balance incoming packets across the multiple cores' queues of a processor.
Those hardware supported methods achieve extremely low latencies and reduce the load on the CPU, as compared to the software based ones. However they require a specialized hardware integrated within the network interface card (NIC) (which could be for example a SmartNIC).
[5]
[6]
[7]
RSS
Receive Side Scaling (RSS) [8] [4] [9] [1] [5]
aRFS
Accelerated Receive Flow Steering (aRFS) [7] [6] [10]
Software techniques
Software techniques like RPS and RFS employ one of the CPU cores to steer incoming packets across the other cores of the processor.
The benefits of a software solutions is the ease in implementation, without having to change any component (like the NIC) of the currently used architecture, but by simply deploying the proper kernel module. This benefit can be crucial especially in cases where the server machine can't be customized or accessed (like in cloud computing environment), even if the network performances could be reduced as compared the hardware supported ones.
[11]
[12]
[3]
RPS
Receive Packet Steering (RPS) [11] [12] [13]
RFS
Receive Flow Steering (RFS) [2] [3] [14]
XPS (in transmission)
See also
References
- ^ a b "RSS kernel linux docs". kernel.org. Retrieved 2025-07-08.
- ^ a b "RFS by redhat". docs.redhat.com. Retrieved 2025-07-08.
- ^ a b c "RFS by nvidea". docs.nvidia.com. Retrieved 2025-07-08.
- ^ a b "RSS overview by microsoft". learn.microsoft.com. Retrieved 2025-07-08.
- ^ a b Barbette, Tom and Katsikas, Georgios P. and Maguire, Gerald Q. and Kostic, Dejan (2019). "RSS++: load and state-aware receive side scaling". Association for Computing Machinery.
{{cite journal}}
: CS1 maint: multiple names: authors list (link) - ^ a b "aRFS by redhat". docs.redhat.com. Retrieved 2025-07-08.
- ^ a b "aRFS by nvidea". docs.nvidia.com. Retrieved 2025-07-08.
- ^ "RSS intel doc" (PDF). earn.microsoft.com. Retrieved 2025-07-08.
- ^ "RSS by redhat". docs.redhat.com. Retrieved 2025-07-08.
- ^ "aRFS kernel linux docs". kernel.org. Retrieved 2025-07-08.
- ^ a b "RPS linux news (LWM)". lwn.net. Retrieved 2025-07-08.
- ^ a b "RPS by redhat". docs.redhat.com. Retrieved 2025-07-08.
- ^ "RPS kernel linux docs". kernel.org. Retrieved 2025-07-08.
- ^ "RFS kernel linux docs". kernel.org. Retrieved 2025-07-08.
- ^ "XPS intel overview". intel.com. Retrieved 2025-07-08.
- ^ "XPS linux news (LWM)". lwn.net. Retrieved 2025-07-08.
- ^ "XPS kernel linux docs". kernel.org. Retrieved 2025-07-08.