KR102216976B1 - low latency high-speed flow analysis and processing method - Google Patents

low latency high-speed flow analysis and processing method Download PDF

Info

Publication number
KR102216976B1
KR102216976B1 KR1020190157323A KR20190157323A KR102216976B1 KR 102216976 B1 KR102216976 B1 KR 102216976B1 KR 1020190157323 A KR1020190157323 A KR 1020190157323A KR 20190157323 A KR20190157323 A KR 20190157323A KR 102216976 B1 KR102216976 B1 KR 102216976B1
Authority
KR
South Korea
Prior art keywords
packet
policy
processing method
virtual switch
nic
Prior art date
Application number
KR1020190157323A
Other languages
Korean (ko)
Inventor
김종오
최원석
이상주
류승민
Original Assignee
주식회사 에프아이시스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 에프아이시스 filed Critical 주식회사 에프아이시스
Priority to KR1020190157323A priority Critical patent/KR102216976B1/en
Application granted granted Critical
Publication of KR102216976B1 publication Critical patent/KR102216976B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/65Re-configuration of fast packet switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card

Abstract

The present invention relates to a low latency high-speed flow analysis and processing method for open virtual switch offloading for a smart new interface card (NIC). The present invention includes: a step of confirming a 12-tuple flow in a work thread; a step of executing packet processing by searching for the flow; and a step of performing packet parsing through the packet processing executed in the step and transmission using veth and eth. According to the present invention, the server packing processing performance of the smart NIC has a direct effect on edge computing technique performance and has an indirect effect on edge computing resource and function virtualization performance. Accordingly, the present invention can be of great help for industries related to network function virtualization (NFV) and a software defined network (SDN).

Description

저지연 고속플로우 분석 및 처리방법 {low latency high-speed flow analysis and processing method}Low latency high-speed flow analysis and processing method

본 발명은 저지연 고속플로우 분석 및 처리방법에 관한 것이다. 더욱 자세하게는 스마트 NIC(Network Interface Card)에 오프로드하여 서버 어플리케이션을 사용 가능한 가용공간을 최대로 활용하고 VNF(Virtual Network Function: 가상 네트워크 기능) 경유가 필요없는 패킷들에 대하여 지연됨을 감소시킬 수 있는 플로우 분석 및 처리방법에 관한 것이다. The present invention relates to a low-latency high-speed flow analysis and processing method. In more detail, by offloading to a smart NIC (Network Interface Card), you can maximize the available space available for server applications and reduce delays for packets that do not need to go through VNF (Virtual Network Function). It relates to flow analysis and processing method.

네트워크란 지리적으로 떨어져 있는 위치에 있는 장치(전화기, 팩스, 컴퓨터, 단말기 등)에 정보를 교환할 수 있도록 이들 장치를 상호 접속하기 위하여 사용되는 통신기기와 장치, 전송로의 결합으로 통신망을 의미한다. 통신기기와 장치에는 회선 다중화장치, 교환기기, 송수신기기 등이 포함되고 전송로는 동선 케이블, 광섬유, 마이크로파 링크, 통신 위성 등 다양한 매체로 구성된다.Network refers to a communication network that is a combination of communication devices, devices, and transmission lines used to interconnect these devices so that information can be exchanged with devices (telephone, fax, computer, terminal, etc.) located in geographically distant locations. . Communication devices and devices include circuit multiplexing devices, switching devices, and transmitting and receiving devices, and transmission paths are composed of various media such as copper cables, optical fibers, microwave links, and communication satellites.

네트워크 기능의 가상화(운영체계(OS)나 중앙처리장치(CPU), 스토리지 등 주로 하드웨어의 의존성을 배제하거나 통합을 위한 주요수단)를 통해 하드웨어 종속에서 벗어나 소프트웨어 중심으로 네트워킹을 구현하는 NFV(Network Function Virtualization)기술, 네트워크 장비를 Control Plane과 Data Plane으로 분리하고 네트워크 장비의 기능을 정의할 수 있는 오픈 API(Application Programmer Interface)를 외부에 제공함으로써 다양한 네트워크 경로 설정 및 제어를 소프트웨어로 가능하도록 하는 SDN(Software Defined Networking)은 클라우드 컴퓨팅 기술을 기반으로 기존 네트워크 기술을 혁신할 차세대 네트워크로 급부상 하고 있다.Network Function NFV (Network Function) that implements software-centered networking through virtualization of network functions (mainly excluding dependence on hardware such as operating system (OS), central processing unit (CPU), storage, etc., or major means for integration) Virtualization) technology, SDN (SDN) that enables various network path setting and control by software, by separating network equipment into Control Plane and Data Plane, and providing an open API (Application Programmer Interface) that can define the functions of network equipment to the outside. Software Defined Networking) is rapidly emerging as a next-generation network that will innovate existing network technologies based on cloud computing technology.

엣지 컴퓨팅은 클라우드 컴퓨팅과 대조적인 개념의 컴퓨팅 방식으로 클라우드나 중앙이 아닌 네트워크 종단에서 컴퓨팅이 이뤄지게 하여 클라우드 컴퓨팅의 네트워크 불안정, 불필요한 데이터 문제, 프라이버시, 지연 문제 등을 해결하기 위한 기술인 것이다.Edge computing is a computing method in contrast to cloud computing, and is a technology for solving network instability, unnecessary data problems, privacy, and delay problems of cloud computing by allowing computing to be performed at the end of the network rather than in the cloud or the center.

엣지 컴퓨팅 또한 소프트웨어 중심의 네트워킹을 구현하고 소프트웨어로 제어 할 수 있도록 가상화된 SDN/NFS와 함께 설계되고 있다.Edge computing is also designed with virtualized SDN/NFS to implement software-oriented networking and control it with software.

이러한 시스템은 Data Plane 영역에서 수많은 패킷 I/O 작업이 발생되며, VNF간 고속의 패킷 스위칭을 위해 OVS(Open Virtual Switch) 같은 소프트웨어 스위치가 필수적으로 요구된다.In such a system, numerous packet I/O operations occur in the data plane area, and a software switch such as an OVS (Open Virtual Switch) is required for high-speed packet switching between VNFs.

이러한 장치를 이용한 측정방법 중의 하나가 플로우 측정방법으로서, 상기 플로우는 동일한 특성을 갖는 패킷(packet)들의 집합을 모은 것으로서, 대개 5튜플(tuple: 데이터 베이스의 관계모형에서 사용하는 테이블의 행을 구성하는 애트리뷰트 값들의 집합 즉, 소스 IP주소, 적지IP주소, 프로토콜번호, 소스포트번호, 적지포트번호)이 같은 패킷들에 대해 하나의 플로우로서 정의한다. One of the measurement methods using such a device is a flow measurement method. The flow is a collection of packets having the same characteristics, and usually constitutes a row of a table used in a relational model of a database. Packets with the same set of attribute values, that is, source IP address, right IP address, protocol number, source port number, and right port number) are defined as one flow.

한편, 필요에 따라서 패킷 내의 다른 정보를 더 추가하거나 경우에 따라 상기 5튜플 중 일부를 생략하여, 하나의 플로우를 정의할 수 있다.Meanwhile, one flow may be defined by adding additional information in the packet as necessary or by omitting some of the 5 tuples in some cases.

이러한 플로우에 대한 측정방법에서 우선, 플로우 측정기는 패킷을 수신하여 전술한 5튜플을 고려하여 플로우를 생성한다. In the measurement method for such a flow, first, a flow meter receives a packet and generates a flow in consideration of the aforementioned 5-tuple.

더욱 구체적으로는 플로우중에서 새로운 플로우를 감지하고, 플로우를 유지하며, 플로우 종료를 판단하고, 플로우를 생성하여 저장장치 또는 분석기 쪽으로 내보내게 된다.More specifically, a new flow is detected in the flow, the flow is maintained, the flow is determined to end, and the flow is generated and sent to a storage device or an analyzer.

도 1은 기존의 가상 스위치(Virtual switch: 하드웨어를 갖지 않고도 모든 스위칭 기능을 수행하는 소프트웨어 스위치로서, 서버의 NIC(Network Interface Card) 포트 1개를 여러개로 나눠 사용할 수 있도록 해서 비용을 줄이는 역할을 한다)를 나타내는 구조도의 사진이다. Figure 1 is a conventional virtual switch (Virtual switch: a software switch that performs all switching functions without having hardware, and serves to reduce cost by allowing one network interface card (NIC) port of a server to be used by dividing it into several. ) Is a picture of the structure diagram.

도면을 보면, 소프트웨어 가상 스위치 기능을 호스트 서버(host server)상에서 소프트웨어로 구현할 경우 호스트 서버상에 자원을 점유하여 다른 주(主) 애플리케이션의 성능에 영향을 미치는 문제가 발생한다는 문제점이 있었다. In the drawing, when the software virtual switch function is implemented in software on a host server, there is a problem that a problem occurs that affects the performance of other main applications by occupying resources on the host server.

따라서, 서버 어플리케이션에 더많은 프로세싱을 할수 있도록 가용자원을 확보하기 위해 스마트 NIC에 가상스위치(OVS) 기능을 오프로드(컴퓨터 시스템에서 동일한 작업을 수행할 수 있는 장치가 여러 개 존재하는 경우, 비교적 작업량이 적게 할당되어 있는 장치에서 작업량이 많은 장치의 작업 일부를 받아서 처리)하여 기능을 지원할 수 있는 시스템 및 방법의 개발과 이의 구현이 끊임없이 요구되어 왔다. Therefore, offload the virtual switch (OVS) function to the smart NIC in order to secure the available resources so that more processing can be performed on the server application (if there are several devices capable of performing the same task in the computer system, the workload is relatively The development and implementation of systems and methods capable of supporting functions by receiving and processing part of the work of a device with a large amount of work from a device with a small amount of allocation has been constantly required.

대한민국 특허공개 제2006-0066034호Korean Patent Publication No. 2006-0066034 대한민국 특허공개 제2008-0021492호Korean Patent Publication No. 2008-0021492 대한민국 특허공개 제2010-0062851호Korean Patent Publication No. 2010-0062851

따라서, 본 발명은 서버 어플리케이션이 더 많은 프로세싱을 할수 있도록 하기 위해 스마트NIC(Network Interface Card)에서 소프트웨어 가상스위치 기능을 오프로드(offload)하여 기능을 지원할 수 있는 저지연 고속플로우 분석 및 처리방법을 제공할 수 있는 것을 목적으로 한다. Accordingly, the present invention provides a low-latency, high-speed flow analysis and processing method capable of supporting the function by offloading the software virtual switch function from a smart NIC (Network Interface Card) in order to enable the server application to perform more processing. We aim for what we can do.

또한, VNF(Virtual Network Functions: 가상 네트워크 기능)의 경유가 필요없는 패킷들에 대하여 지연을 줄일수 있어 신속성을 줄 수 있는 저지연 고속플로우 분석 및 처리방법을 제공할 수 있는 것을 목적으로 한다. In addition, it aims to provide a low-latency, high-speed flow analysis and processing method that can provide speed by reducing delay for packets that do not need via VNF (Virtual Network Functions).

이러한 문제를 해결하기 위하여 본 발명은 가상스위치(Open Virtual Switch)를 스마트NIC(New Interface Card)에 오프로드(offload)하는 저지연 고속플로우 분석 및 처리방법에 있어서, 컨트롤 쓰레드에서 12-튜플(tuple) 형태의 플로우를 확인하는 단계와 상기 플로우를 검색하여 패킷 프로세싱을 실행하는 단계ㅇh 와상기 단계에서 실행된 패킷 프로세싱을 통한 패킷 파싱을 하여 veth 및 eth 이용하여 전송하는 단계를 포함하는 것을 특징으로 하는 것이다. In order to solve this problem, the present invention provides a low-latency high-speed flow analysis and processing method for offloading an open virtual switch to a new interface card (NIC), a 12-tuple in a control thread. ) Checking a flow in the form, searching for the flow and executing packet processing h, and parsing the packet through the packet processing executed in the above step and transmitting it using veth and eth. Is to do.

또한, 상기 가상스위치의 datapath는 네트워크 장치인 AI Edge NIC에서 작동하는 것을 특징으로 한다.In addition, the datapath of the virtual switch is characterized in that it operates on the AI Edge NIC, which is a network device.

또한, 상기 AI Edge NIC에 송수신되는 트래픽정보의 수집은 패킷 프로세싱 쓰레드에서 처리되는 패킷정보를 통해 수집되도록 하는 것을 특징으로 하는 것이다.In addition, the collection of traffic information transmitted and received through the AI Edge NIC is characterized in that it is collected through packet information processed by a packet processing thread.

그리고, 상기 12-tuple은 Ingress port, VLAN ID, LAN priority, MAC src, MAC dst, Eth type, IP src, IP dst, IP protocol, IP ToS, port src, Port dst인 것을 특징으로 하는 것이다. And, the 12-tuple is characterized in that the Ingress port, VLAN ID, LAN priority, MAC src, MAC dst, Eth type, IP src, IP dst, IP protocol, IP ToS, port src, Port dst.

그리고, 상기 datapath의 패킷처리 방식은 slow path 방식 및 fast path방식인 것을 특징으로 한다. In addition, the packet processing method of the datapath is characterized in that a slow path method and a fast path method.

따라서, 본 발명은 OVS(Open Virtual Switch: 오픈 가상 스위치)기능을 프로그래밍 가능한 스마트 NIC에 오프로드하여 서버 어플리케이션의 사용 가능한 자원을 최대한 확보하고, 가상 네트워크 기능이 필요없는 패킷들에 대해 경유함을 생략함으로서, 지연성의 감소가 가능한 효과가 있는 것이다. Accordingly, the present invention offloads the OVS (Open Virtual Switch) function to a programmable smart NIC to maximize the available resources of the server application, and omits passing through packets that do not require a virtual network function. By doing so, there is a possible effect of reducing the delay.

또한, 스마트 NIC가 서버에서의 패킷 처리 성능은 엣지(edge) 컴퓨팅 기술의 성능에 직접적인 영향을 미치며, 엣지 컴퓨팅의 자원 가상화 및 기능 가상화 성능에 간접적인 영향을 주므로 NFV(네트워크의 기능 가상화) 및 SDN(소프트웨어 정의 네트워크) 관련 산업에 크게 도움을 줄수 있는 효과가 있다. In addition, the packet processing performance of the smart NIC in the server directly affects the performance of edge computing technology and indirectly affects the resource virtualization and function virtualization performance of edge computing, so NFV (Network Function Virtualization) and SDN (Software Defined Network) There is an effect that can greatly help related industries.

도 1은 기존의 가상 스위치 오프로드(off load) 구조를 나타내는 사진.
도 2는 본 발명의 가상 스위치 오프로드 구조를 나타내는 도면.
도 3은 본 발명의 가상스위치 데이터경로의 구조도.
도 4는 본 발명에 의한 저지연 고속플로우 분석 및 처리방법의 흐름도.
도 5는 Datapath의 패킷 처리 방식을 나타낸 도면.
1 is a photograph showing a conventional virtual switch off-load structure.
2 is a diagram showing a virtual switch offload structure of the present invention.
3 is a structural diagram of a virtual switch data path of the present invention.
4 is a flow chart of a low-latency high-speed flow analysis and processing method according to the present invention.
5 is a diagram showing a packet processing method of Datapath.

이하에서는 본 발명의 양호한 실시예를 첨부된 도면을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시가 되더라도 가능한 한 동일 부호를 가지도록 하고 있음에 유의하여야 한다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. First of all, in adding reference numerals to elements of each drawing, it should be noted that the same elements have the same numerals as possible, even if they are indicated on different drawings.

또한, 하기에서 본 발명을 설명함에 있어 관련된 공지기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. In addition, in the following description of the present invention, when it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted.

또한, 본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위하여 사용된 것에 불과하므로, 본 발명을 한정하려는 의도가 아니며 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현도 의미하는 것임을 미리 밝혀두고자 한다. In addition, since the terms used in the present application are only used to describe specific embodiments, it is not intended to limit the present invention, and the expression in the singular is disclosed in advance that the expression in the singular also refers to a plurality of expressions unless the context clearly indicates otherwise. I want to leave it.

본 발명에 의한 방법은 본 발명은 가상스위치(Open Virtual Switch)를 스마트NIC(New Interface Card)에 오프로드(offload)하는 저지연 고속플로우 분석 및 처리방법에 있어서, 컨트롤 쓰레드에서 12-튜플(tuple) 형태의 플로우를 확인하는 단계와 상기 플로우를 검색하여 패킷 프로세싱을 실행하는 단계와 상기 단계에서 실행된 패킷 프로세싱을 통한 패킷 파싱을 하여 veth 및 eth를 이용하여 전송하는 단계로 이루어진다. In the method according to the present invention, the present invention provides a low-latency high-speed flow analysis and processing method for offloading an open virtual switch to a smart NIC (New Interface Card), in a 12-tuple (tuple) in a control thread. ) Checking the flow, searching for the flow and executing packet processing, parsing the packet through the packet processing executed in the above step, and transmitting it using veth and eth.

또한, 상기 가상스위치의 datapath는 네트워크 장치인 AI Edge NIC에서 작동하며, 또한, 상기 AI Edge NIC에 송수신되는 트래픽정보의 수집은 패킷 프로세싱 쓰레드에서 처리되는 패킷정보로 수집되는 것다.In addition, the datapath of the virtual switch operates on the AI Edge NIC, which is a network device, and the collection of traffic information transmitted/received to the AI Edge NIC is collected as packet information processed by a packet processing thread.

그리고, 상기 12-tuple은 Ingress port, VLAN ID, LAN priority, MAC src, MAC dst, Eth type, IP src, IP dst, IP protocol, IP ToS, port src, Port dst인 것을 특징으로 하는 것이다. And, the 12-tuple is characterized in that the Ingress port, VLAN ID, LAN priority, MAC src, MAC dst, Eth type, IP src, IP dst, IP protocol, IP ToS, port src, Port dst.

그리고, 상기 datapath의 패킷처리 방식은 slow path 방식 및 fast path방식이다.And, the packet processing method of the datapath is a slow path method and a fast path method.

이하, 도면을 참조하여 본 발명에 의한 방법의 양호한 실시예를 설명하고자 한다. Hereinafter, a preferred embodiment of the method according to the present invention will be described with reference to the drawings.

도 2는 본 발명에 의한 가상 스위치 오프로드 구조를 나타내는 도면이고, 도 3은 본 발명에 의한 가상스위치 데이터경로의 구조도이고, 도 4는 본 발명에 의한 저지연 고속플로우 분석 및 처리방법의 흐름도이고, 도 5는 Datapath의 패킷 처리 방식을 나타낸 도면이다. 2 is a diagram showing a virtual switch offload structure according to the present invention, FIG. 3 is a structural diagram of a virtual switch data path according to the present invention, and FIG. 4 is a flow chart of a low-delay high-speed flow analysis and processing method according to the present invention. , FIG. 5 is a diagram showing a packet processing method of Datapath.

도 2를 보면, 제안하는 가상 스위치(v-Switch)를 멀티코어 스마트 NIC(60)에 오프로드(offload)하는 구조이다. 오프로드를 하는 주요 부분은 상기 가상스위치의 Datapath(10)라고 하는 Data Plane(20)에 해당하는 부분이다. 전체적으로 도 1과 상기 도 2를 비교하여 볼 때, datapath를 openswitch Datapath(10)로 변환되어 있으며 driver(15)를 추가한 형태이다. Referring to FIG. 2, it is a structure in which a proposed virtual switch (v-Switch) is offloaded to the multicore smart NIC 60. The main part of offloading is a part corresponding to the Data Plane 20 called the Datapath 10 of the virtual switch. When comparing FIG. 1 and FIG. 2 as a whole, the datapath is converted to the openswitch Datapath 10 and the driver 15 is added.

도면을 참조하여 설명하면 Control 영역에 해당하는 ovs-vswitchd(31), ovsd-server(32), ovsdb(33), ovs와 각 데몬(demon: 프로그램에서 기동조건이 충족되었을 때에 작동하기 시작하는 절차)을 제어하기 위한 ovs-dpctl(34), ovs-appctl(35), ovs-vsctl(36), ovs-client(37), ovs-tool(38)은 User space(30)에서 동작하는 것이다. Referring to the drawings, ovs-vswitchd(31), ovsd-server(32), ovsdb(33), ovs and each daemon (demon: a procedure that starts to operate when the startup conditions in the program are satisfied) corresponding to the control area ) To control ovs-dpctl(34), ovs-appctl(35), ovs-vsctl(36), ovs-client(37), and ovs-tool(38) operate in the user space(30).

그리고, AI(인공지능) Edge(엣지) NIC(New Interface Card)에 해당하는 멀티코어 스마트 NIC(60)와 호스트(50)의 연동을 위한 NIC의 driver(15)는 kernel(운영체제의 중심에 위치하여 특권 모드로 동작하는 프로그램) space(40)에서 동작한다. In addition, the driver 15 of the NIC for interworking the multi-core smart NIC 60 corresponding to the AI (artificial intelligence) Edge NIC (New Interface Card) and the host 50 is located at the center of the kernel (operating system). Thus, a program operating in a privileged mode) operates in space (40).

가상 스위치의 datapath 는 Network Device(도면부호는 생략)인 즉, AI Edge NIC인 멀티코어 스마트 NIC(60)에서 동작하며, 상기 Control영역(도면부호 31~ 38)과 Data Plane(20) 영역 간의 메시지 송수신은 tcp/ip socket 기반으로 수행한다.The datapath of the virtual switch is a network device (drawing code is omitted), that is, it operates in the multi-core smart NIC 60, which is an AI edge NIC, and a message between the control area (numbers 31 to 38) and the data plane 20 area Transmission and reception is performed based on tcp/ip socket.

상기 송수신방식은 TCP/IP 인터페이스방식으로서, 이를 통한 통신은 멀티코어 스마트 NIC(60)의 driver(15)를 경유하여 이루어진다. The transmission/reception method is a TCP/IP interface method, and communication through it is performed through the driver 15 of the multi-core smart NIC 60.

그리고, 도 3을 참조하면, OVS(Open Virtual Switch)의 컨트롤 영역이 실god되고 있는 호스트(50)에서 동작하는 Datapath(10)를 멀티코어 스마트NIC(60)으로 오프로드하여 상기 호스트(50)의 가용 자원을 확보하고 Datapath(10)에서 바로 처리하여 외부로 보낼 트래픽에 대해 호스트 서버(50)까지 패킷을 올릴 필요가 없으니 저지연 효과가 발생하게 되는 것이다.In addition, referring to FIG. 3, the host 50 is offloaded to the multi-core smart NIC 60 by offloading the Datapath 10 operating in the host 50 in which the control area of the OVS (Open Virtual Switch) is realised. It is not necessary to secure the available resources of the datapath (10), directly process it in the Datapath (10), and raise a packet to the host server (50) for traffic to be sent to the outside, resulting in a low-latency effect.

상기 멀티코어 스마트 NIC(60)으로 오프로드되는 Datapath(10)의 기능은 상기 도 3의 Datapath(10)의 구조로 확인할 수 있다.The function of the Datapath 10 offloaded to the multi-core smart NIC 60 can be confirmed by the structure of the Datapath 10 of FIG. 3.

도 3에 도시된 대로, Traffic stats(70)는 statics 정보를 추출하고 호스트 (50)로 P2P(peer to peer: 인터넷상에서 개인과 개인이 직접 파일을 공유할 수 있는 개인 간의 접속 방식)방식을 이용하여 보내기 위한 쓰레드이다.As shown in Fig. 3, the traffic stats 70 extracts statics information and uses a P2P (peer to peer: connection method between individuals and individuals on the Internet that allows individuals to directly share files) to the host 50. This thread is for sending.

상기 가상스위치인 Datapath(10)는 호스트(50)에 멀티코어 스마트 NIC(60)가 실장되어 있는 형태로서, 본 발명에 의한 저지연 고속 Flow 분석 및 처리방법이 제공되는 구조인 것이다. The datapath 10, which is a virtual switch, is a type in which a multi-core smart NIC 60 is mounted on the host 50, and has a structure in which a low-latency high-speed flow analysis and processing method according to the present invention is provided.

상기 멀티코어 스마트 NIC(60)는 Open Virtual Switch 또는 Open vSwitch의 Datapath(10) 영역의 기능이 실행되는 것이다. The multicore smart NIC 60 executes the function of the Datapath 10 area of the Open Virtual Switch or Open vSwitch.

상기 멀티코어 스마트 NIC(60)에 송수신되는 트래픽 정보를 수집하도록 하여 호스트(50)에서 트래픽을 모니터링하며, 상기 멀티코어 스마트 NIC(60)에 송수신되는 트래픽 정보의 수집은 패킷 프로세싱 스레드에서 처리되는 패킷정보를 기반으로 수집하는 것이다. The host 50 monitors the traffic by collecting traffic information transmitted and received to the multicore smart NIC 60, and the collection of traffic information transmitted and received to the multicore smart NIC 60 is a packet processed by a packet processing thread. It is collecting based on information.

Control thread(80)는 상기 멀티코어 스마트 NIC(60)에서 각각 개별적인 코어를 사용하여 thread(쓰레드)를 동작시킨다.The control thread 80 operates a thread (thread) using each individual core in the multi-core smart NIC 60.

상기 Control thread(80)는 호스트(50)의 OVS vswitchd(도면 부호는 생략)로부터 지시를 받고 Datapath(10)에 입력한 역할을 수행하는 것이다.The control thread 80 receives an instruction from OVS vswitchd (a reference numeral is omitted) of the host 50 and performs a role input to the Datapath 10.

그리고, 도 3에 도시된 대로, 본 발명에 있어 중대하면서도 특별한 것 중의 하나인 호스트(50)와 멀티코어 스마트 NIC(60)와의 연결은 SR-IOV(Single-Root I/O Virtualization) 기술로 구현되어 있다. And, as shown in Figure 3, one of the important and special in the present invention, the connection between the host 50 and the multi-core smart NIC 60 is implemented by SR-IOV (Single-Root I/O Virtualization) technology. Has been.

상기 SR-IOV 기술은 PCI(Pheripheral Component Interconnect)-SIG(Special Interest Group) 표준 기반의 PCI 카드를 가상화 시키는 기술로 Docker Engine(90)에서 멀티코어 스마트 NIC(60)를 가상기능(Virtual Function)으로 인식하여 가상 PCI 카드를 제공하도록 하는 기능이다.The SR-IOV technology is a technology that virtualizes a PCI card based on the PCI (Pheripheral Component Interconnect)-SIG (Special Interest Group) standard, and uses the multi-core smart NIC 60 as a virtual function in the Docker Engine 90. It is a function to recognize and provide a virtual PCI card.

즉, SR-IOV 인터페이스(도면 부호는 생략)는 멀티코어 스마트 NIC(60)의 Driver(15)와 Docker Engine(90)간의 데이터 전송에서 사용되는 인터페이스이다. That is, the SR-IOV interface (a reference numeral is omitted) is an interface used for data transmission between the driver 15 of the multi-core smart NIC 60 and the Docker Engine 90.

상기 SR-IOV 인터페이스를 사용할 경우, 멀티코어 스마트 NIC(60)를 가상기능으로 인식하므로, 호스트(50)의 커널(미도시)에서 패킷 프로세싱의 동작 없이 Docker Engine(90)의 가상머신으로 패킷을 전달하는 방식인 것이다.When using the SR-IOV interface, since the multi-core smart NIC 60 is recognized as a virtual function, the kernel (not shown) of the host 50 transmits packets to the virtual machine of the Docker Engine 90 without any packet processing operation. It is a way of delivering.

이하에서는 도 2, 도 3 및 도 4를 참조하여 본 발명에 의한 가상스위치(Open Virtual Switch)를 멀티코어 스마트NIC(New Interface Card)에 오프로드(offload)하는 저지연 고속플로우 분석 및 처리방법의 단계를 설명하기로 한다. Hereinafter, a low-latency high-speed flow analysis and processing method for offloading an open virtual switch according to the present invention to a multi-core smart NIC (New Interface Card) with reference to FIGS. 2, 3 and 4 Let's explain the steps.

먼저, 멀티코어 스마트 NIC(60)에서 개별적인 코어를 이용하여 컨트롤 쓰레드(control thread: 80)를 작동시키는 것이다. 상기 컨트롤 쓰레드(80)의 작동방식은 OVS vswitchd(도 3 참조, 도면부호는 생략)로부터 지시를 받아 datapath(10)에 입력된 역할을 수행하는 것이다. First, a control thread (80) is operated using an individual core in the multicore smart NIC (60). The operation method of the control thread 80 is to receive an instruction from OVS vswitchd (see FIG. 3, reference numerals are omitted) and perform a role input to the datapath 10.

상기와 같이 작동하는 컨트롤 쓰레드(80)에서 12-튜플(tuple) 형태의 플로우를 확인하여 분류한다. (제1단계) In the control thread 80 operating as described above, a 12-tuple type flow is identified and classified. (Step 1)

상기 플로우에 관해 설명하면, 일반적으로 인터넷에서 많이 사용되는 5튜플이다. 상기 5튜플을 가지고 예를 들어 설명하면, 소스 IP주소, 목적지 IP주소, 프로토콜 번호, 소스포트 번호, 목적지포트 번호의 5개가 같은 것을 의미하며 상기 5개의 값이 모두 같으면 같은 플로우로 분류하는 것이다. When describing the above flow, it is a 5 tuple that is commonly used in the Internet. For example, referring to the 5 tuples, five of the source IP address, destination IP address, protocol number, source port number, and destination port number are the same, and if all the five values are the same, the flow is classified as the same flow.

본 발명에서의 튜플은 모두 12개로 이루어지며, 상기 12개의 tuple의 내용은 Ingress port, VLAN ID, LAN priority, MAC src, MAC dst, Eth type, IP src, IP dst, IP protocol, IP ToS, port src, Port dst이다.In the present invention, there are 12 tuples, and the contents of the 12 tuples are Ingress port, VLAN ID, LAN priority, MAC src, MAC dst, Eth type, IP src, IP dst, IP protocol, IP ToS, port These are src, Port dst.

다음 제2단계로, 상기 플로우들을 확인, 검색하여 패킷 프로세싱을 실행하는 것이다. Next, the second step is to check and search the flows to perform packet processing.

상기 제2단계에서는 멀티코어 스마트 NIC(60)와 호스트(50)와의 가상 머신으로 SR-IOV의 인터페이스를 이용하여 서로 연동되도록 하는 것이다. In the second step, a virtual machine between the multi-core smart NIC 60 and the host 50 is interlocked with each other using an SR-IOV interface.

앞에서도 서술했지만, 상기 SR-IOV 인터페이스는 멀티코어 스마트 NIC(60)의 driver(15)와 Docker Engine(90)간의 데이터 전송을 위하여 사용하는 인터페이스이다. 그리고, 상기 driver(15)는 멀티코어 스마트 NIC(60)에서 VF(Virtualization Function)를 생성할 수 있도록 하는 기능을 하는 것이다. As described above, the SR-IOV interface is an interface used for data transmission between the driver 15 of the multicore smart NIC 60 and the Docker Engine 90. In addition, the driver 15 functions to generate a Virtualization Function (VF) in the multi-core smart NIC 60.

그리고, 상기 제2단계에서는 상기 멀티코어 스마트 NIC(60)에 송수신되는 트래픽 정보의 수집은 패킷 프로세싱을 실행하는 컨트롤 쓰레드(80) 등과 같은 쓰레드에서 처리되는 패킷 정보를 통하여 수집되도록 한다. In the second step, the collection of traffic information transmitted/received to the multicore smart NIC 60 is collected through packet information processed by a thread such as a control thread 80 that executes packet processing.

그 다음 단계로, 상기 제2단계에서 실행된 패킷 프로세싱을 통해 패킷 파싱(parsing: 컴퓨터에서 컴파일러 또는 번역기가 원시 부호를 기계어로 번역하는 과정)을 실행하여 veth(v- ethernet) 및 eth(ethernet)으로 전송하는 제3단계로 이루어진다. In the next step, veth (v-ethernet) and eth (ethernet) are performed by performing packet parsing through the packet processing performed in the second step (a process in which a compiler or translator in a computer translates the raw code into machine language). It consists of a third step of transmission.

부가적으로, 본 발명에 있어서 Datapath(10)의 패킷 처리 방식은 Slow path 방식 및 Fast path 방식을 취한다.Additionally, in the present invention, the packet processing method of the Datapath 10 takes a slow path method and a fast path method.

도 5(도면부호는 생략)를 참조하여 이를 설명하면, 상기 Slow Path는 Datapath(10)의 정책 테이블에 유입된 패킷에 대한 정책이 없을 경우 동작 한다.Referring to FIG. 5 (a reference numeral is omitted), the Slow Path operates when there is no policy for a packet introduced into the policy table of the Datapath 10.

패킷이 수신되고 관련된 정책이 없을 경우, 호스트 서버의 user space에서 동작하는 Virtual Switch Daemon 블록으로 패킷 정보를 전송하여 패킷의 정책 정보를 확인하고 Datapath에 정보를 입력한다. 그리고 해당 패킷을 정책에 맞게 처리한다. 이는 도 5의 빨간색 패킷 흐름과 같다.If a packet is received and there is no related policy, the packet information is transmitted to the Virtual Switch Daemon block operating in the user space of the host server to check the packet policy information and input the information to the Datapath. And it processes the packet according to the policy. This is the same as the red packet flow in FIG. 5.

또한, 상기 Fast Path는 Datapath의 정책 테이블에 유입된 패킷에 대한 정책이 있는 경우 동작한다. 패킷이 수신되고 관련된 정책이 있을 경우, Virtual Switch Daemon에 확인 없이 Datapath에서 테이블을 확인하고 바로 패킷을 처리한다. 이는 도 5의 녹색 패킷 흐름과 같다.In addition, the Fast Path operates when there is a policy for a packet introduced into the policy table of the Datapath. When a packet is received and there is a related policy, the table is checked in the Datapath and processed immediately without checking the Virtual Switch Daemon. This is the same as the green packet flow of FIG. 5.

이상에서와 같은 내용의 본 발명이 속하는 기술분야의 당업자는 본 발명의 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 상기 기술한 실시 예는 예시된 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다.Those skilled in the art to which the present invention with the above contents pertains will be able to understand that it can be implemented in other specific forms without changing the technical spirit or essential features of the present invention. Therefore, it should be understood that the above-described embodiments are illustrative and non-limiting.

본 발명의 범위는 상기 상세한 설명보다는 첨부된 특허청구범위에 의하여 나타내어지며, 특허청구 범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the appended claims rather than the detailed description, and all changes or modified forms derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention. do.

10 : Datapath
15 : driver
20 : Data Plane
30 : User space
31: ovs-vswitchd
32: ovsd-server
33 : ovsdb
34 : ovs-dpctl
35 : ovs-appctl
36 : ovs-vsctl
37 : ovs-client
38 : ovs-tool
39 : ovs-ofctl
40 : kernel space
50 : 호스트
60 : 멀티코어 스마트 NIC(AI edge NIC)
80 : Control thread
90 : Docker Engine
10: Datapath
15: driver
20: Data Plane
30: User space
31: ovs-vswitchd
32: ovsd-server
33: ovsdb
34: ovs-dpctl
35: ovs-appctl
36: ovs-vsctl
37: ovs-client
38: ovs-tool
39: ovs-ofctl
40: kernel space
50: host
60: Multi-core smart NIC (AI edge NIC)
80: Control thread
90: Docker Engine

Claims (5)

가상스위치(Open Virtual Switch)를 스마트NIC(New Interface Card)에 오프로드(offload)하는 저지연 고속플로우 분석 및 처리방법에 있어서,
컨트롤 쓰레드(control thread)에서 12-튜플(tuple) 형태의 플로우를 확인하는 단계;
상기 플로우를 검색하여 패킷 프로세싱을 실행하는 단계;
상기 단계에서 실행된 패킷 프로세싱을 통한 패킷 파싱을 하여 veth 및 eth을 이용하여 전송하는 단계;
상기 가상스위치의 데이터 패쓰(Datapath,10)는 멀티코어 스마트NIC(AI Edge NIC)를 이용하여 작동하고,
상기 데이터 패쓰(Datapath,10)의 패킷처리 방식은 슬로우 패쓰(Slow Path) 방식 및 패스트 패쓰(fast path)방식이고,
상기 슬로우 패쓰(Slow Path)는 데이터 패쓰(Datapath,10)의 정책 테이블에 유입된 패킷에 대한 정책이 없을 경우 동작하며,
패킷이 수신되고 데이터 처리와 관련되는 정책이 없을 경우, 호스트 서버의 유저 스페이스(user space)에서 동작하는 버츄얼 스우치 데몬(Virtual Switch Daemon) 블록으로 패킷 정보를 전송하여 패킷의 정책 정보를 확인하고 상기 데이터 패쓰(Datapath,10)에 정보를 입력하고, 해당 패킷을 정책에 맞게 처리하고,
상기 패스트 패쓰(Fast Path)는 상기 데이터 패쓰(Datapath,10)의 정책 테이블에 유입된 패킷에 대한 정책이 있는 경우 동작하며, 패킷이 수신되고 관련된 정책이 있을 경우, 버츄얼 스우치 데몬(Virtual Switch Daemon)에 확인 없이 상기 데이터 패쓰(Datapath,10)에서 테이블을 확인하고 바로 패킷을 처리하는 것을 특징으로 하는 저지연 고속플로우 분석 및 처리방법.
In the low-latency high-speed flow analysis and processing method of offloading an open virtual switch to a smart NIC (New Interface Card),
Checking a 12-tuple type flow in a control thread;
Searching for the flow and performing packet processing;
Parsing packets through packet processing performed in the above step and transmitting them using veth and eth;
The data path 10 of the virtual switch operates using a multi-core smart NIC (AI Edge NIC),
The packet processing method of the data path (10) is a slow path method and a fast path method,
The slow path operates when there is no policy for a packet introduced into the policy table of the data path 10,
When a packet is received and there is no policy related to data processing, packet information is transmitted to the Virtual Switch Daemon block operating in the user space of the host server to check the packet policy information Enter information into the datapath (10), process the packet according to the policy,
The Fast Path operates when there is a policy for a packet introduced into the policy table of the data path 10, and when a packet is received and there is a related policy, a Virtual Switch Daemon A low-delay high-speed flow analysis and processing method, characterized in that the packet is processed immediately after checking the table in the data path (10) without checking in ).
삭제delete 제1항에 있어서,
상기 멀티코어 스마트 NIC에 송수신되는 트래픽정보의 수집은 패킷 프로세싱 쓰레드에서 처리되는 패킷정보를 통해 수집되도록 하는 것을 특징으로 하는 저지연 고속플로우 분석 및 처리방법.
The method of claim 1,
A low-latency high-speed flow analysis and processing method, characterized in that the collection of traffic information transmitted/received to the multicore smart NIC is collected through packet information processed by a packet processing thread.
제1항에 있어서,
상기 12-튜플(tuple)은 Ingress port, VLAN ID, LAN priority, MAC src, MAC dst, Eth type, IP src, IP dst, IP protocol, IP ToS, port src, Port dst인 것을 특징으로 하는 저지연 고속플로우 분석 및 처리방법.
The method of claim 1,
The 12-tuple is an Ingress port, VLAN ID, LAN priority, MAC src, MAC dst, Eth type, IP src, IP dst, IP protocol, IP ToS, port src, and Port dst. High-speed flow analysis and processing method.
삭제delete
KR1020190157323A 2019-11-29 2019-11-29 low latency high-speed flow analysis and processing method KR102216976B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190157323A KR102216976B1 (en) 2019-11-29 2019-11-29 low latency high-speed flow analysis and processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190157323A KR102216976B1 (en) 2019-11-29 2019-11-29 low latency high-speed flow analysis and processing method

Publications (1)

Publication Number Publication Date
KR102216976B1 true KR102216976B1 (en) 2021-02-18

Family

ID=74688445

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190157323A KR102216976B1 (en) 2019-11-29 2019-11-29 low latency high-speed flow analysis and processing method

Country Status (1)

Country Link
KR (1) KR102216976B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060066034A (en) 2004-12-11 2006-06-15 한국전자통신연구원 Parallel flow measurement method for internet high speed link and apparatus thereof
KR20080021492A (en) 2006-08-31 2008-03-07 영남대학교 산학협력단 Ddos protection system and method in per-flow based packet processing system
KR20100062851A (en) 2008-12-02 2010-06-10 한국전자통신연구원 High-speed ip flow mediation apparatus using network processor
KR101567253B1 (en) * 2014-10-31 2015-11-06 삼성에스디에스 주식회사 Apparatus and method for flow control

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060066034A (en) 2004-12-11 2006-06-15 한국전자통신연구원 Parallel flow measurement method for internet high speed link and apparatus thereof
KR20080021492A (en) 2006-08-31 2008-03-07 영남대학교 산학협력단 Ddos protection system and method in per-flow based packet processing system
KR20100062851A (en) 2008-12-02 2010-06-10 한국전자통신연구원 High-speed ip flow mediation apparatus using network processor
KR101567253B1 (en) * 2014-10-31 2015-11-06 삼성에스디에스 주식회사 Apparatus and method for flow control

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Antoine Kaufmann et al. High Performance Packet Processing with FlexNIC. ACM SIGARCH Computer Architecture News. 2016년 7월.* *

Similar Documents

Publication Publication Date Title
US20210336936A1 (en) Network context monitoring within service mesh containerization environment
US11856041B2 (en) Distributed routing and load balancing in a dynamic service chain
US10353726B2 (en) Transparent network security for application containers
EP3275162B1 (en) Systems and techniques for web communication
US20160080263A1 (en) Sdn-based service chaining system
US20210273990A1 (en) Secure multi-directional data pipeline for data distribution systems
US10178068B2 (en) Translating network attributes of packets in a multi-tenant environment
US11150817B2 (en) Integrating kernel-bypass user-level file systems into legacy applications
EP2954401B1 (en) Transmitting hardware-rendered graphical data
Bremler-Barr et al. Openbox: Enabling innovation in middlebox applications
CN113364804B (en) Method and device for processing flow data
KR102153585B1 (en) Method and apparatus for network functions virtualization
CN114172854A (en) Message mirror image, mirror image configuration method, virtual switch and mirror image configuration device
KR102216976B1 (en) low latency high-speed flow analysis and processing method
Ara et al. On the use of kernel bypass mechanisms for high-performance inter-container communications
US20210281656A1 (en) Applying application-based policy rules using a programmable application cache
US20150012663A1 (en) Increasing a data transfer rate
KR102078744B1 (en) Network interface card having hybrid architecture with multi-core processor and general purpose network controller
Ahmad et al. Protection of centralized SDN control plane from high-rate Packet-In messages
KR20200081799A (en) The multiple virtual network communication system and method using virtual router
Teivo Evaluation of low latency communication methods in a Kubernetes cluster
KR101577034B1 (en) Multicore based toe system easy to add supplemental network functions with software and the control method therefor
WO2024061179A1 (en) Logic bonding port management method, apparatus and system, and storage medium
de Oliveira Filho et al. Measuring the impact of SR-IOV and virtualization on packet round-trip time
US11876691B2 (en) End-to-end RDMA telemetry system

Legal Events

Date Code Title Description
GRNT Written decision to grant