RSS(Receive-Side Scaling)enables distributed among different cores.
Memory-mapping techqinues reduce the cost of packet transmission from kernel-space to user-space through system calls.
CPU/GPU/FPGA
CPU maximize the instruction-level parallelism.
GPU maximize the threads-level parallelism.
FPGAs have massive amount parallelism built-in.
Software Implemetations
Click-based solutions
Problem:Inflexible closed designs,difficult to extend,rounting configuration limited.
Solution:Building blocks or fine-graned components which are called elements.
RouteBricks
RouteBricks is a software router architecture which can run on multiple cores of a single server in order to leverage the performance of a software router.
FastClick
FastClick is a solution which intergrates both DPDK and Netmap in Click.
Netmap
Netmap is a framework which allows commodity hardware(withou modiying applications or adding custom hardware) to handle millions of packets per second which go over 1...10Gbit/s links
It builds a fast path betwwen the NIC and the applications
Regular mode is a standard mode where NIC exchanges packet with the host stack.
Netmap mode,NIC rings are disconnected from the host netork stack and packets are disconnected from the host network stack and packets are transferred through the netmap API.
NetSlices
NetSlices represents operting system abstraction which processes packets in user-space and enables a linear increase of performance with the number of cores.
PF_RING
is a high-speed packet capture library that allows a commodity PC to perform efficient network mearsurement which allows both packet and active traffic analysis and manipulation.
DPDK
~is a set of data plane libraries and drivers which are used for fast packet procceing.
Gpu-based solutions
Snap
Snap is a packet proccessing system based on Click which offloads some of the computation lod on GPUs.
PacketShader
~ is a software router framwork which uses Graphic Processing Units.
APUNet:
~ is an APU-accelerated network pakcet processing system that exploits the power of intgrated GPUs for parallel packet processing while using a COU for scalable packet I/O.
ClickNP
GASPP
~ is a programmable network traffic processing framework that was made of modern GPUs.
FPGA-based solutions
represents and FPGA-accelerated platform for high performance and highly flexible Network NF processing on commodity servers.
GRIP
The authors point out that transmitting or receiving data at gigabit speeds already fully monopolize the CPU, therefore, it is not possible to realize any additional processing of these data without degrading toughput.
SwitchBlade
~ represents a platform which is used for rapid prototyping and deployment of custon protocols on programmable hardware.
chimpp
~ is a development environment for reconfigurable networking hardware that is base on the Click modular router and that targets the NetFPGA platform.
Comparation
Integration Possibilityies in Virtualized Environments
One solution to packet processing in virtualized environments: group packet processing instead of processing them individually.
VALE
~ is a system base on netmap API which implements high performance Virtual local Ethernet that can be used to interconnet virtual machines by providing access ports to multiple cients.
ptnetmap
~ is a Virual Passthrough solution based on the netmao framework, which is used as the "device" model exported to VMs.
NetVM
~ is a high-speed network packet processing platform built on top of KVM and DPDK library.
OVS+DPDK
An open source virtual switch with high performance.
It consumes too much cpu resource.
Summary of the constraints
Latest approaches and Future Directions
FD.io
VPP
ODP:is a set of APIs for the networking software defined date palone which are open-source and cross-platform.
OFP:A project provides an open-source implementation of high-performance TCP/IP stacks.
P4:a high-level language used to program protocol-independent packet processors.
Openstate:A approach which allows performing stateful control functionalities directly inside a switch without the nedd for the intervention of the externel controller.
BESS is concerned with building a programmable plaform called SoftNIC that auguments hardware NICs with software.