Papers read: ClickNF: a Modular Stack for Custom Network Functions

Summary:

Network virtualization function allows the nearest equivalent device instead of a dedicated software, Click the router is the first step in that direction, which defines a common modular platform for packet processing. While Click has a significant impact, it does not provide native L4 implemented, using only non-blocking I / O, so as to limit the range of L2-L3 network function. To overcome these limitations, we introduce ClickNF, which provides a modular transport and application layers of the development cartridge and the intermediate network server function building blocks. We evaluate ClickNF, to highlight its most advanced performance and to demonstrate by its modular composition of complex functions from simple elements. ClickNF is open, and is publicly available.

Background / problem:

Network function virtualization (NFV) triggered a new flexible process for deploying network functions, ranging from the virtual machine to a new data packet frame processing, network functions can be incorporated in the understanding of the logic state of the transmission, and the packet forwarding simple scalar header rewriting together, and it is possible to perform a complicated operation of the application layer.

L2-L7 modular data plane for the development of new network capabilities to provide a plurality of advantages, e.g., packet processing and decoupled state, fine-grained scalability protocol behavior of modules and the reuse and simplified cross-layer optimization protocol debugging Features. In the conventional method, Click Thanks to its modularity and scalability, it can be said to be the best starting point for this type of architecture.

Click it still lacks some features, can not become a full-stack modular data plane network-enabled:

  • First, it lacks the native implementation L4, therefore can not be cross-layer stack and customize

  • Secondly, it does not support blocking I / O primitives, forcing developers to use more sophisticated asynchronous non-blocking I / O

  • Third, Click the application must resort to the operating system stack, which can cause serious I / O bottlenecks

  • Finally, despite recent improvements, but does not support hardware offload Click timer and efficient management, making it impossible to high-speed expansion under certain circumstances

Solution:

In this article, we introduce ClickNF, which overcomes the limitations of Click's frame, and allows a modular network L2-L7 Click function developed by conventional elements Click, ClickNF allow developers to examine the entire network stack as needed.

  • First, it introduced a modular TCP implementation that supports the option, congestion control and RTT estimate

  • Second, it introduces a blocking I / O support, providing the illusion of uninterrupted operation of the application

  • The third, which discloses a standard socket, and zero copy multiplex socket API, and the application layer of the basic building blocks

  • Finally, in order to improve scalability, ClickNF integrated Fastclick first introduced in the I / O acceleration technology, such as data plane development kit (DPDK) and batch, and additional support for hardware acceleration and improved timer management system Click

ClickNF be used to deploy a large number of network functions, intermediate case, the split TCP, L7 of the firewall, TLS / SSL proxy, HTTP TCP needs to terminate caching. At the network edge, ClickNF use the socket may be used to process primitives multiplexed I / O speed L7 modular server. As proof, we form a HTTP cache server that has an optional SSL / TLS SOCKS4 proxy and termination, we show ClickNF L2-L7 while providing modular and can provide a user with an existing stack space the same performance and scalability.

Specific structure:

Speaking before the ClickNF say about Click:

Click routers by a set of fine-grained packet processing modules, elements constructed from simple functions may be implemented (e.g., IP routing). A profile of these elements into a connected directed graph, there packet specifies the path to be traversed edge map, according to the configuration, a user can implement any function of the complexity of the network (e.g., a switch).

Each element can define any number of input and output ports to be connected to other elements, ports to push or pull mode. In the push-in connector, data packets from the source element start moving downstream to the target element, the pull-in connector, a target element request packet from the upstream, the upstream data packet is returned, otherwise, it returns a null pointer. In addition to pushing or pulling addition, the port also may be unknowable, and depending on the port it is connected while the performance of pushing or pulling.

In its basic embodiment, Click and using a timer task queue priority queue tasks in order to run an infinite loop, and run timer expires. Task elements defined function, CPU scheduling, and start a series of push or pop request, but most of the elements do not need their own task, as they push and pull method is called by a scheduled task. The timer callback function is similar mission, scheduled for a specific time.

ClickNF object is achieved by providing a modular framework for building L2-L7 network functions, allowing developers to unrestricted access to the entire stack, without worrying about the correctness or event-driven behavior is added to the particular API domain constraint. Click ClickNF design will modularity and flexibility and high-speed data packet I / O protocols and ready for transport and application layers combined functional building blocks.

FIG 1 ClickNF compared with the traditional design and user stack space OS:

The network stack other hides the complexity of an entire package or incorporated all layers of different modular other methods, we will L2-L7 entire stack into several simple elements, can be reconnected by profiles respectively replace, modify, or remove them, providing flexibility not available in other solutions. Further, when the element needs to be aggregated into a single macro elements to hide complexity.

This fine-grained decomposition principle is twofold. First, simple elements allows to modify and control various aspects of network protocols and mechanisms, which makes the module can be reused in other situations, such as the recovery of existing congestion control strategy to implement a new protocol (e.g., the QUIC) or a new policy (e.g. BBR or DCTCP). Second, this approach helps decoupled state management protocol and packet processing, simplify complex tasks, such as across heterogeneous hardware (for example, between the CPU and intelligent NIC) complete migration between servers or state.

Guess you like

Origin www.cnblogs.com/chelinger/p/11814377.html