KR20180134219A - The method for processing virtual packets and apparatus therefore - Google Patents

The method for processing virtual packets and apparatus therefore Download PDF

Info

Publication number
KR20180134219A
KR20180134219A KR1020170071804A KR20170071804A KR20180134219A KR 20180134219 A KR20180134219 A KR 20180134219A KR 1020170071804 A KR1020170071804 A KR 1020170071804A KR 20170071804 A KR20170071804 A KR 20170071804A KR 20180134219 A KR20180134219 A KR 20180134219A
Authority
KR
South Korea
Prior art keywords
virtual
packet
flow
queues
queue
Prior art date
Application number
KR1020170071804A
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 KR1020170071804A priority Critical patent/KR20180134219A/en
Publication of KR20180134219A publication Critical patent/KR20180134219A/en

Links

Images

Classifications

    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/621Individual queue per connection or flow, e.g. per VC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Disclosed are a network interface apparatus for processing a virtual packet and a method thereof. The network interface apparatus connected to a server in which a plurality of virtual machines are implemented, includes a plurality of queues. When the virtual packet to be transmitted to a virtual machine is received through a physical network, a virtual flow of the virtual packet is identified and the virtual packet is stored in the plurality of queues with a virtual flow unit to be processed in parallel through a multi-processor. Accordingly, the present invention can improve the efficiency of parallel processing.

Description

가상 머신 패킷의 처리 방법과 그 장치{The method for processing virtual packets and apparatus therefore}TECHNICAL FIELD [0001] The present invention relates to a method for processing virtual machine packets,

본 발명은 네트워크 인터페이스 장치 및 패킷 처리 방법에 관한 것으로서, 보다 상세하게는 가상 패킷을 처리할 수 있는 네트워크 인터페이스 카드와 이를 이용한 가상 패킷 처리 방법에 관한 것이다.The present invention relates to a network interface device and a packet processing method, and more particularly, to a network interface card capable of processing a virtual packet and a virtual packet processing method using the same.

최근 인터넷을 통하는 통신량이 급증하고, 이에 따라 서버의 대용량화, 고속화가 빠르게 진행되고 있다. 한편, 서버의 대용량화에 따르는 물리적 부피증가를 해소하고 비용 절감 등을 꾀하기 위하여 서버의 가상화가 가속되고 있다. 서버의 대용량화, 고속화, 가상화에 따라 물리적 네트워크로부터 수신되는 가상화 환경에서 생성된 데이터 패킷을 포함하는 대용량 데이터에 대한 병렬처리의 고효율화가 필수적으로 요구되고 있으며, 가상화 서버에서 가상스위치 기능이 수행될 때 서버의 부하 증가에 기인하는 성능 저하가 야기됨에 따라 가상스위치 기능에 따르는 서버의 부하를 물리적 네트워크 인터페이스 장치로 이전하는 기술개념 실현이 요구되고 있다.Recently, the amount of communication through the Internet has increased rapidly, and accordingly, the capacity and speed of servers have been rapidly increasing. On the other hand, virtualization of servers is being accelerated in order to solve the increase in physical volume due to the capacity increase of servers and cost reduction. It is essential to increase the efficiency of parallel processing of large amount of data including data packets generated in a virtualization environment received from a physical network in accordance with capacity increase, speed up, and virtualization of servers. When a virtual switch function is performed in a virtualization server, The load of the server according to the function of the virtual switch is transferred to the physical network interface device, and realization of the technology concept is required.

종래의 가상화 환경을 지원하는 NIC의 경우, 가상머신으로 형성되는 가상머신간 네트워크에 대하여 vLAN 등의 프로토콜을 활용하거나 물리적 네크워크 프레임에 인켑슐레이션하여 물리적 네트워크에서 통신 프로토콜 처리를 한 후, 가상머신간 네트워크에서 물리적 네트워크에 인캡슐레이션 되어 있는 가상머신간 네트워크의 패킷 프레임을 대상으로 통신 프로토콜을 처리하는 단계별 과정을 거치게 된다. 따라서, 통신 프로토콜 처리에 있어서 가상머신으로 이루어지는 가상머신간 네트워크이 계층 수 만큼 또는 그 이상의 단계별 프로토콜 처리를 요하게 되며 그에 따르는 성능 저하 현상이 초래될 수 있고, 병렬처리에서 프로세싱 효율을 높이는데 아주 중요한 요소 중 하나인 프로세서 친화도를 활용하기 어려워 진다. 이는 병렬 처리의 효율을 감소시키는 요인으로 작용될 수 있다.In the case of a NIC supporting conventional virtualization environments, after a protocol such as vLAN is applied to a virtual machine network formed by a virtual machine or a communication protocol is processed in a physical network by being encapsulated in a physical network frame, A process of processing a communication protocol is performed on a packet frame of a network between virtual machines that are encapsulated in a physical network in a network. Therefore, in the communication protocol processing, the virtual machine network constituted by the virtual machine requires a stepwise protocol processing as many as the number of layers or more, resulting in a performance deterioration phenomenon, and it is very important to increase the processing efficiency in the parallel processing It becomes difficult to utilize one processor affinity. This can serve as a factor to reduce the efficiency of parallel processing.

미국특허공개공보 제2013-0239119호U.S. Patent Publication No. 2013-0239119

본 발명이 해결하고자 하는 기술적 과제는, 패킷을 가상 플로우 단위로 처리하여 병렬 프로세싱의 효율을 높이고, 가상 플로우 단위로 QoS를 보장하며, 가상 네트워크 환경에서 서버의 부하를 분산시키는 네트워크 인터페이스 장치 및 패킷 처리 방법을 제공하는 데 있다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a network interface device and a packet processing method, which can increase the efficiency of parallel processing by processing packets in units of virtual flows, guarantee QoS on a per virtual flow basis, Method.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 네트워크 인터페이스 장치의 일 예는, 복수 개의 가상 머신이 구현된 서버와 연결된 네트워크 인터페이스 장치에 있어서, 복수 개의 큐; 물리적 망을 통해 가상 머신으로 전송할 가상 패킷을 수신하는 패킷수신부; 가상 패킷의 가상 플로우를 식별하는 패킷분석부; 및 상기 식별한 가상 플로우 단위로 상기 복수 개의 큐에 가상 패킷을 저장하는 스케줄러;를 포함한다.According to an aspect of the present invention, there is provided a network interface apparatus connected to a server in which a plurality of virtual machines are implemented, the network interface apparatus comprising: a plurality of queues; A packet receiver for receiving a virtual packet to be transmitted to a virtual machine through a physical network; A packet analyzer for identifying a virtual flow of a virtual packet; And a scheduler for storing virtual packets in the plurality of queues on the basis of the identified virtual flows.

상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 패킷 처리 방법의 일 예는, 복수 개의 가상 머신을 위한 패킷 처리 방법에 있어서, 물리적 망을 통해 가상 패킷을 수신하는 단계; 가상 패킷의 가상 플로우를 식별하는 단계; 상기 가상 패킷을 상기 가상 플로우 단위로 구분하여 큐에 저장하는 단계; 및 각 큐에 저장된 패킷을 목적지 가상 머신으로 전송하는 단계;를 포함한다.According to an aspect of the present invention, there is provided a packet processing method for a plurality of virtual machines, comprising: receiving a virtual packet through a physical network; Identifying a virtual flow of virtual packets; Dividing the virtual packet into virtual flow units and storing the virtual packets in a queue; And transmitting the packets stored in each queue to a destination virtual machine.

본 발명에 따르면, 복수의 가상 머신을 포함하는 가상화 환경을 구비한 서버의 부하가 감소 된다. 또한 가상 플로우 단위로 패킷을 처리함으로써 가상 패킷과 프로세서 사이의 친화도를 높여 병렬 프로세싱의 효율을 높인다. 또한 가상 스위치의 부하를 네트워크 인터페이스 카드로 분산시켜 가상 네트워크 프로세싱의 효율을 높일 수 있다. 또한 가상 플로우 단위로 큐잉하여 처리함으로써 가상 머신 종단간 가상플로우 단위의 QoS가 보장되는 스케일러블한 통신 처리를 구현할 수 있다.According to the present invention, a load of a server having a virtualized environment including a plurality of virtual machines is reduced. In addition, by processing packets in virtual flow units, the degree of affinity between the virtual packet and the processor is increased to improve the efficiency of parallel processing. In addition, the load of the virtual switch can be distributed to the network interface card to increase the efficiency of the virtual network processing. In addition, it is possible to implement a scalable communication process in which the QoS of the virtual flow unit between the end points of the virtual machines is assured by queuing and processing by the virtual flow unit.

도 1은 본 발명에 따른 네트워크 인터페이스 장치를 포함한 전체 시스템의 개략적인 구조를 도시한 도면,
도 2는 본 발명에 따른 네트워크 인터페이스 장치의 자원을 동적으로 설정하는 방법의 일 예를 도시한 도면,
도 3은 본 발명에 따른 네트워크 인터페이스 장치의 일 실시예의 구성을 도시한 도면,
도 4는 본 발명에 따른 네트워크 인터페이스 장치의 가상 플로우 기반 큐 할당의 일 예를 도시한 도면,
도 5는 본 발명에 따른 네트워크 인터페이스 장치의 가상 플로우 기반 큐 할당의 다른 일 예를 도시한 도면,
도 6은 본 발명에 사용되는 가상 패킷의 일 예를 도시한 도면, 그리고,
도 7은 본 발명에 따른 가상 네트워크 환경을 위한 패킷 처리 방법의 일 예를 도시한 흐름도이다.
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a schematic diagram of a whole system including a network interface device according to the present invention;
2 is a diagram illustrating an example of a method of dynamically setting resources of a network interface apparatus according to the present invention.
3 is a diagram illustrating a configuration of an embodiment of a network interface apparatus according to the present invention,
4 is a diagram illustrating an example of a virtual flow-based queue allocation of a network interface device according to the present invention.
5 is a diagram illustrating another example of a virtual flow-based queue allocation of a network interface apparatus according to the present invention.
6 is a diagram illustrating an example of a virtual packet used in the present invention,
7 is a flowchart illustrating an example of a packet processing method for a virtual network environment according to the present invention.

이하에서, 첨부된 도면들을 참조하여 본 발명에 따른 네트워크 인터페이스 장치 및 패킷 처리 방법에 대해 상세히 설명한다.Hereinafter, a network interface apparatus and a packet processing method according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명에 따른 네트워크 인터페이스 장치를 포함한 전체 시스템의 개략적인 구조를 도시한 도면이다.FIG. 1 is a diagram showing a schematic structure of an entire system including a network interface device according to the present invention.

도 1을 참조하면, 네트워크 인터페이스 장치는 네트워크 인터페이스 카드(Network Interface Card, NIC)(100)로 구현된다. 다만 네트워크 인터페이스 장치는 네트워크 인터페이스 카드(100)에 반드시 한정되는 것은 아니며, 서버 내외에서 하드웨어 또는 소프트웨어 등의 다양한 형태로 구현될 수 있다. 설명의 편의를 위하여 이하, 네트워크 인터페이스 장치를 NIC로 표현한다.Referring to FIG. 1, a network interface device is implemented as a network interface card (NIC) 100. However, the network interface device is not necessarily limited to the network interface card 100, and may be implemented in various forms, such as hardware or software, inside or outside the server. Hereinafter, the network interface device will be referred to as an NIC for convenience of explanation.

서버(120)는 복수 개의 가상 머신(150,152,154)과, 가상 스위치(140) 및 연결슬롯(130)을 포함한다. 가상 스위치(140)는 NIC(100)를 통해 수신한 가상 패킷을 목적지 가상 머신으로 전달한다. 연결슬롯(130)은 NIC(100)와 서버(120)를 연결하는 인터페이스이며, 일 예로 PCIe(Peripheral Component Interconnect Express)로 구현될 수 있다. 이 경우, NIC(100)는 PCIe 슬롯에 탈부착될 수 있다.The server 120 includes a plurality of virtual machines 150, 152, and 154, a virtual switch 140, and a connection slot 130. The virtual switch 140 transfers the virtual packet received via the NIC 100 to the destination virtual machine. The connection slot 130 is an interface for connecting the NIC 100 and the server 120, and may be implemented as a Peripheral Component Interconnect Express (PCIe), for example. In this case, the NIC 100 can be detached and attached to the PCIe slot.

NIC(100)는 네트워크(110)로부터 수신한 가상 패킷에 대해 가상화 환경에서의 상위 계층의 트래픽 특성을 분석하여 가상 플로우를 식별하고, 식별한 가상 플로우를 다중 프로세서를 통해 병렬 처리한다. 여기서 가상 패킷이라 함은 종래의 다양한 터널링과 같은 기법 등을 이용하여 일반 네트워크 패킷에 가상 네트워크 환경의 계층(Layer) 정보를 인캡슐레이션(encapsulation)한 패킷을 의미하며, 가상 플로우는 인캡슐레이션된 가상 패킷의 물리적 네트워크 패킷 프레임을 제거한 가상 네트워크 패킷 프레임에서의 트래픽 속성에 따라 분류된 가상 환경에서의 특정 트래픽으로 정의할 수 있다. 가상 플로우는 기 설정된 여러 정책에 따라 분류되고 식별될 수 있다. 예를 들어, 패킷분석부(310)는 가상 머신의 TCP 플로우를 가상 플로우로 식별할 수 있다. 가상 패킷의 구조에 대해서는 도 6을 참조하여 설명한다.The NIC 100 identifies a virtual flow by analyzing traffic characteristics of an upper layer in a virtualization environment with respect to a virtual packet received from the network 110, and parallel processes the identified virtual flow through the multiple processors. Herein, the virtual packet refers to a packet that encapsulates layer information of a virtual network environment in a general network packet using a conventional technique such as tunneling, and the virtual flow refers to a packet that is encapsulated It can be defined as a specific traffic in a virtual environment classified according to a traffic attribute in a virtual network packet frame in which a physical network packet frame of a virtual packet is removed. The virtual flow can be classified and identified according to various preset policies. For example, the packet analyzer 310 can identify the TCP flow of the virtual machine as a virtual flow. The structure of the virtual packet will be described with reference to FIG.

가상 플로우의 또 다른 한 예는 물리적 네트워크 패킷 프레임의 트랙픽 속성 및 물리적 네트워크 패킷 프레임에 인캡슐레이션된 하나 또는 그 이상의 계층별 오버레이 네트워크들 또는 가상머신간 네트워크들의 네트워크 패킷 프레임에서의 트래픽 속성 일부 또는 모두를 고려하여 분류된 가상 환경에서의 특정 트래픽으로 정의할 수 있다.Another example of a virtual flow is the traffic attribute of a physical network packet frame and some or all of the traffic attributes in a network packet frame of one or more hierarchical overlay networks or virtual machine networks encapsulated in a physical network packet frame The traffic can be defined as the specific traffic in the classified virtual environment.

도 8은 복수의 계층적 오버레이 네트워크 패킷 프레임이 물리적 네트워크 패킷 프레임에 인캡슐레어션되어 수신되었을 때 가상플로우를 인식하는 방법의 일 예를 도시한 도면이다.8 is a diagram illustrating an example of a method for recognizing a virtual flow when a plurality of hierarchical overlay network packet frames are encapsulated in a physical network packet frame.

NIC(100)는 수신한 가상 패킷을 병렬 처리하기 위한 복수 개의 큐와 복수 개의 프로세서들을 포함하며, 큐의 크기와 개수 등은 고정되거나, 서버의 가상화 환경이나 프로세서들의 부하 등에 따라 동적으로 변경될 수 있다.The NIC 100 includes a plurality of queues and a plurality of processors for parallel processing of received virtual packets, and the size and number of queues may be fixed or dynamically changed depending on the virtualization environment of the server or the load of the processors have.

도 2는 본 발명에 따른 NIC의 자원을 동적으로 설정하는 방법의 일 예를 도시한 도면이다.2 is a diagram illustrating an example of a method of dynamically setting resources of a NIC according to the present invention.

도 1 및 도 2를 함께 참조하면, NIC(100)가 서버(120)의 연결슬롯(130)에 부착되어 서버(120)와 연결되는 경우(S200), NIC(100)는 서버(120)로부터 가상 머신의 수를 포함한 가상화 환경 정보를 수신한다(S210). NIC(100)는 수신한 가상화 환경 정보에 따라 큐의 크기와 개수, 큐 그룹의 생성 등 자원을 동적으로 설정한다(S220).Referring to FIGS. 1 and 2, when the NIC 100 is attached to the connection slot 130 of the server 120 and connected to the server 120 (S200), the NIC 100 transmits And virtual environment information including the number of virtual machines is received (S210). The NIC 100 dynamically sets resources such as the size and number of queues and the creation of a queue group according to the received virtual environment information (S220).

예를 들어, NIC(100)가 서버(120)로부터 가상 머신이 4개라는 가상화 환경 정보를 수신하는 경우, NIC는 12개의 큐를 각 가상 머신별로 3개씩 할당할 수 있다. 가상 머신별 할당되는 큐의 개수나 각 큐의 크기 등은 기 설정된 규칙에 따라 다양하게 설정될 수 있다.For example, when the NIC 100 receives the virtual environment information of four virtual machines from the server 120, the NIC may allocate three queues for each virtual machine. The number of queues allocated to each virtual machine and the size of each queue can be variously set according to predetermined rules.

도 3은 본 발명에 따른 NIC의 일 실시예의 구성을 도시한 도면이다.3 is a diagram showing a configuration of an embodiment of the NIC according to the present invention.

도 3을 참조하면, NIC(100)는 패킷수신부(300), 패킷분석부(310), 메모리(320), 복수 개의 큐(330), 복수 개의 프로세서(340), 스케줄러(350), 모니터링부(360) 및 큐 관리부(370)를 포함한다. 패킷수신부(300) 등을 포함한 각 구성요소 사이의 연결선은 본 발명의 이해를 돕기 위한 하나의 예일 뿐이며, 큐 관리부(370)와 모니터링부(360) 사이의 연결, 스케줄러(350)와 복수 개의 큐(330) 사이의 연결 등 다양한 연결 관계가 설정될 수 있음은 물론이다.3, the NIC 100 includes a packet receiving unit 300, a packet analyzing unit 310, a memory 320, a plurality of queues 330, a plurality of processors 340, a scheduler 350, (360) and a queue management unit (370). The connection line between each component including the packet receiving unit 300 is only one example for helping understanding of the present invention and the connection between the queue management unit 370 and the monitoring unit 360 and the connection between the scheduler 350 and the plurality of queues And a connection between the first and second terminals 330 and 330 may be established.

패킷수신부(300)의 일 예로서 외부 네트워크에서 일반적인 이더넷 프레임으로 인식되도록 종래의 다양한 터널링과 같은 방법 등을 통해 인캡슐레이션된 가상 패킷을 수신하면 이를 디캡슐레이션하여 물리적 네트워크에 해당하는 헤더 부분을 제거하고 가상화 환경에서의 데이터 패킷 프레임을 복원한다.As an example of the packet receiving unit 300, when receiving a virtual packet encapsulated through a method such as various conventional tunneling methods to be recognized as a general Ethernet frame in the external network, the packet receiving unit 300 decapsulates the encapsulated virtual packet, And restores the data packet frame in the virtualized environment.

상기 패킷수신부(300)의 설명은 예로서 본 발명의 이해를 돕기 위한 하나의 예일 뿐, 본 발명이 이에 한정되는 것은 아니다.The description of the packet receiver 300 is merely an example for facilitating understanding of the present invention, and the present invention is not limited thereto.

패킷분석부(310)의 일 예로서 디캡슐레이션된 가상 패킷의 가상 플로우를 식별한다. 가상 플로우를 식별하기 위해서는 가상화 환경에서의 데이터링크계층(vL2 레이어)만이 아니라 네트워크계층(vL3 레이어) 이상의 상위 계층까지 해석되어야 한다. 이를 위해, 패킷분석부(310)는 DPI(Deep Packet Insepection) 과정을 통해 디캡슐레이션된 가상 패킷의 가상 데이터링크계층(vL2 레이어)부터 가상 애플리케이션계층(vL7 레이어)까지 분석하여, 가상 플로우를 식별한다. 가상 플로우 식별을 위한 가상 패킷에 대한 분석은 가상 데이터링크계층부터 가상 애플리케이션계층 모두를 분석하는 것으로 한정되는 것은 아니며, 가상 플로우 식별 정책에 따라 분석의 범위는 달라질 수 있다.The virtual flow of the decapsulated virtual packet is identified as an example of the packet analyzing unit 310. [ In order to identify the virtual flows, it is necessary to interpret not only the data link layer (vL2 layer) in the virtualization environment but also the network layer (vL3 layer) and above. For this, the packet analyzing unit 310 analyzes the virtual packet data from the virtual data link layer (vL2 layer) to the virtual application layer (vL7 layer) of the decapsulated virtual packet through DPI (Deep Packet Insepection) do. The analysis of a virtual packet for identifying a virtual flow is not limited to analyzing both the virtual data link layer and the virtual application layer, and the scope of the analysis may vary according to the virtual flow identification policy.

패킷분석부(310)의 또 다른 일 예로서 도 8에서와 같이 물리적 네트워크 패킷 프레임의 트랙픽 속성 및 물리적 네트워크 패킷 프레임에 인캡슐레이션된 하나 또는 그 이상의 계층별 오버레이 네트워크들 또는 가상머신간 네트워크들의 네트워크 패킷 프레임에서의 트래픽 속성 일부 또는 모두를 고려하여 분류된 가상 환경에서의 특정 트래픽으로 정의할 수 있다.As another example of the packet analyzing unit 310, as shown in FIG. 8, a traffic attribute of a physical network packet frame and one or more layer-by-layer overlay networks or networks of virtual machine networks encapsulated in a physical network packet frame It can be defined as a specific traffic in the classified virtual environment considering some or all of the traffic attributes in the packet frame.

메모리(320)는 가상 패킷과 패킷분석부(310)에 의해 식별된 가상 플로우 정보 등을 저장하고, 또한 가상 플로우와 큐 사이의 맵핑관계를 나타내는 플로우 테이블을 저장하고 관리한다.The memory 320 stores virtual packets, virtual flow information identified by the packet analyzing unit 310, and the like, and also stores and manages flow tables indicating mapping relationships between virtual flows and queues.

일 실시 예로, 패킷수신부(300)은 디캡슐레이션된 가상 패킷을 메모리(320)에 저장하고, 가상 패킷의 저장 사실을 패킷분석부(310)에 통보한다. 그러면 패킷분석부(310)는 메모리에 저장된 해당 가상 패킷에 대한 가상 플로우 식별을 수행한다. 즉, 새로운 가상 패킷의 수신 사실을 알게 된 패킷분석부(310)는 기 설정된 정책에 따라 해당 가상 패킷의 가상 플로우 특성을 식별하여 그 정보를 저장하고 저장 사실을 스케줄러(350)에 알려준다.In one embodiment, the packet receiving unit 300 stores the decapsulated virtual packet in the memory 320, and informs the packet analyzing unit 310 of the fact of storing the virtual packet. Then, the packet analyzer 310 performs virtual flow identification for the corresponding virtual packet stored in the memory. That is, the packet analyzer 310 recognizes the reception of a new virtual packet, identifies the virtual flow characteristic of the corresponding virtual packet according to a preset policy, stores the information, and informs the scheduler 350 of the stored information.

스케줄러(350)는 식별된 가상 플로우를 해당 가상 플로우 큐에 할당하며, 가상 플로우 큐를 다중 프로세서(340)에 병렬 할당한다. 보다 구체적으로, 스케줄러(350)는 메모리(320)에 저장된 플로우 테이블을 참조하여 가상 패킷의 가상 플로우가 맵핑된 큐를 검색하고, 메모리(320)에 저장된 가상 패킷을 검색된 큐에 전달한다. 만약 테이블에 해당하는 가상 플로우가 존재하지 않는다면, 스케줄러(350)는 종래의 다양한 방법을 통해 가상 플로우를 특정 큐에 할당하고, 가상 플로우와 큐사이의 맵핑관계를 플로우 테이블에 저장한다.The scheduler 350 allocates the identified virtual flows to the corresponding virtual flow queues and allocates the virtual flow queues to the multiple processors 340 in parallel. More specifically, the scheduler 350 refers to the flow table stored in the memory 320 to search for a queue to which a virtual flow of a virtual packet is mapped, and delivers the virtual packet stored in the memory 320 to the retrieved queue. If there is no virtual flow corresponding to the table, the scheduler 350 allocates the virtual flow to a specific queue through various conventional methods, and stores the mapping relationship between the virtual flow and the queue in the flow table.

스케줄러(350)는 가상 머신별 가상 패킷을 가상 플로우 단위로 큐잉할 수 있다. 예를 들어, 가상 플로우와 큐 사이의 맵핑 관계를 설정할 때, 제1 가상머신과 제2 가상머신을 향하는 동일한 성격(예를 들어, 동일한 QoS 우선순위)의 제1 플로우와 제2 플로우가 동일한 큐에 할당될 수 있다. 본 발명이 이러한 경우를 배제하는 것은 아니나 병렬 처리의 효율을 보다 높이기 위하여, 가상 플로우를 가상 머신별로 서로 다른 그룹의 큐에 할당하는 것이 바람직하다. 다시 말해, 스케줄러(350)는 도 4와 같은 가상머신별로 큐들을 그룹핑하는 경우에, 제1 가상머신에 대한 제1 플로우는 제1 그룹(400)의 큐에 가상 플로우 단위로 할당하고, 제2 가상머신에 대한 제2 플로우는 제2 그룹(410)의 큐에 가상 플로우 단위로 할당한다.The scheduler 350 may queue the virtual machine-specific virtual packets in the virtual flow unit. For example, when establishing a mapping relationship between a virtual flow and a queue, a first flow and a second flow of the same nature (e.g., the same QoS priority) toward the first virtual machine and the second virtual machine, Lt; / RTI > Although the present invention does not exclude this case, it is preferable to allocate virtual flows to queues of different groups for each virtual machine in order to further increase the efficiency of parallel processing. 4, the first flow for the first virtual machine is allocated to the queue of the first group 400 as a unit of virtual flow, and the second flow for the second virtual machine is assigned to the second group as a virtual flow unit, The second flow for the virtual machine is allocated to the queue of the second group 410 as a unit of virtual flow.

예를 들어, 새로운 가상 패킷이 메모리(320)에 적재되었다는 사실과 해당 가상 패킷의 가상 플로우 정보를 수신하면, 스케줄러(350)는 플로우 테이블을 참조하여 가상 플로우가 어떤 가상 플로우 큐에 할당되어 있는지를 검색하고, 메모리(320)에 적재되어 있는 가상 패킷을 검색된 해당 큐에 적재할 수 있도록 한다. 만약 식별된 가상 플로우에 대한 정보를 플로우 테이블에서 찾을 수 없는 경우, 스케줄러(350)는 해당 가상 패킷을 기 설정된 정책에 따라 해당 가상 머신에 속한 큐 중 하나에 할당할 수 있다. 여기서 기 설정된 정책은 실시 예에 따라 다양할 수 있으며, 일 예로 플로우 친화도를 고려하여 가상 플로우 큐를 선택하는 정책, 가상 패킷에 해당하는 가상 머신 내 큐 중 가장 부하가 적은 큐를 선택하는 정책, 사용율이 가장 낮은 프로세서에 할당되어 있는 큐를 선택하는 정책 등이 있다.For example, when a new virtual packet is loaded in the memory 320 and virtual flow information of the virtual packet is received, the scheduler 350 refers to the flow table to determine which virtual flow queue is allocated to the virtual flow queue And loads the virtual packet loaded in the memory 320 into the searched queue. If information on the identified virtual flow can not be found in the flow table, the scheduler 350 may allocate the virtual packet to one of the queues belonging to the virtual machine according to a predetermined policy. Here, the preset policy may vary according to the embodiment. For example, a policy for selecting a virtual flow queue in consideration of flow affinity, a policy for selecting a queue having the smallest load among the virtual machine queues corresponding to virtual packets, And a policy for selecting a queue allocated to the processor with the lowest utilization rate.

복수 개의 큐(330)는 각각 적어도 하나 이상의 가상 플로우와 맵핑된다. 가상 플로우 단위로 큐잉하는 경우 프로세서 친화도가 높아지며, 이에 따라 병렬 처리의 효율도 증가한다. 복수 개의 큐(330)는 가상 머신별로 적어도 하나 이상의 큐를 포함하는 그룹으로 분할될 수 있다. 또한 복수 개의 큐(330)는 도 5와 같이 적어도 두 개 이상의 파티션으로 분할될 수 있다.The plurality of queues 330 are each mapped to at least one virtual flow. When queuing in the virtual flow unit, the processor affinity is increased, thereby increasing the efficiency of parallel processing. The plurality of queues 330 may be divided into groups including at least one queue for each virtual machine. The plurality of queues 330 may be divided into at least two or more partitions as shown in FIG.

스케줄러(350)는 복수 개의 프로세서 중에서 선택된 프로세서일 수 있다. 예를 들어, 전체 프로세서들(370) 중 특정 프로세서(350)를 스케줄러로 지정하거나, 각 프로세서들의 부하 정도를 모니터링부(360)를 통해 파악한 후 부하가 가장 적은 프로세서를 스케줄러(350)로 선택할 수 있다. 이 외에도 스케줄러를 선택하기 위한 다양한 방법이 적용될 수 있다. 프로세서 중 스케줄러가 지정되는 경우, 제어부(미도시)는 스케줄링이 필요할 때마다 인터럽트 신호를 발생하여 스케줄러로 지정된 프로세서에 전송하고, 인터럽트 신호를 수신한 프로세서는 하던 작업을 중지하고 스케줄러로서 동작을 완료한 후 다시 이전 작업을 수행한다.The scheduler 350 may be a processor selected from among a plurality of processors. For example, a specific processor 350 among all processors 370 may be designated as a scheduler, a degree of load of each processor may be monitored through a monitoring unit 360, and a scheduler 350 may be selected as a processor with the least load have. In addition, various methods for selecting a scheduler can be applied. When a scheduler is designated, a control unit (not shown) generates an interrupt signal whenever scheduling is required and transmits an interrupt signal to the processor designated by the scheduler. Upon receiving the interrupt signal, the processor stops the operation and finishes operation as a scheduler And then perform the previous operation again.

복수 개의 프로세서들(340)은 각 큐에 저장된 가상 패킷을 병렬 처리하여 서버의 가상 머신으로 전송한다. 복수 개의 프로세서들(340)은 적어도 하나 이상의 큐와 연결된다.The plurality of processors 340 parallel-processes the virtual packets stored in each queue and transmits them to the virtual machine of the server. The plurality of processors 340 are connected to at least one or more queues.

예를 들어, 복수 개의 프로세서들(340)은 플로우 친화도를 고려하여 큐와 연결된다. 다시 말해, 동일하거나 유사한 가상 플로우 속성을 갖는 가상 패킷을 저장하는 큐들을 묶어 프로세서와 연결한다.For example, the plurality of processors 340 are connected to the queue in consideration of the flow affinity. In other words, the queues storing virtual packets having the same or similar virtual flow attributes are bundled and connected to the processor.

또 다른 예로서, 복수 개의 프로세서들은 가상 머신별로 큐와 연결될 수 있다. 도 4를 참조하면, 제1 프로세서는 제1 가상머신에 할당된 제1 내지 제3 큐와 연결되고, 제2 프로세서는 제2 가상머신에 할당된 제4 내지 제6 큐와 연결되고, 제3 프로세서는 제3 가상머신에 할당된 제7 및 제8 큐에 연결될 수 있다.As another example, a plurality of processors may be connected to a queue for each virtual machine. 4, the first processor is connected to the first to third queues allocated to the first virtual machine, the second processor is connected to the fourth to sixth queues allocated to the second virtual machine, The processor may be coupled to seventh and eighth queues allocated to the third virtual machine.

또 다른 예로서, 제1 프로세서는 제1 가상머신에 할당된 제1 내지 제3 큐와 함께 제2 가상머신에 할당된 제4 큐와 연결되고, 이 경우 제2 프로세서는 제2 가상머신에 할당된 제5 및 제6큐와 연결될 수 있다. 즉, 프로세서는 적어도 둘 이상의 가상머신에 할당된 큐의 전부 또는 일부와 연결될 수도 있다.As another example, the first processor is associated with a fourth queue assigned to a second virtual machine with first to third queues allocated to the first virtual machine, wherein the second processor is allocated to the second virtual machine Lt; RTI ID = 0.0 > and / or < / RTI > That is, the processor may be coupled to all or a portion of the queues allocated to at least two or more virtual machines.

모니터링부(360)는 프로세서(340)와 큐(330)의 부하 등을 포함한 각종 상태를 모니터링한다.The monitoring unit 360 monitors various states including the load of the processor 340 and the queue 330. [

큐 관리부(370)는 모니터링 결과에 따라 큐들을 도 5와 같이 복수의 파티션으로 분할하고 각 파티션마다 스케줄러를 두어 처리하거나, 복수의 큐를 하나로 합치거나 분할하고, 또는 가상머신에 할당된 큐의 수를 늘리거나 줄이는 등 큐의 크기와 개수 등을 조정한다. 큐 관리부는 앞서 살핀 도 2의 과정을 통해 파악된 서버의 가상화 환경에 따라서도 가상머신별 큐의 개수나 크기 등을 동적으로 설정할 수 있다.The queue management unit 370 divides the queues into a plurality of partitions as shown in FIG. 5 according to the monitoring result, processes the divided partitions by scheduling each partition, or combines or divides a plurality of queues into one or the number of queues allocated to the virtual machine To adjust the size and number of cues. The queue manager can dynamically set the number and size of queues for each virtual machine according to the virtualization environment of the server,

도 4는 본 발명에 따른 NIC의 가상 플로우 기반 큐 할당의 일 예를 도시한 도면이다.4 is a diagram illustrating an example of a virtual flow-based queue allocation of a NIC according to the present invention.

도 4를 참조하면, 큐들(330)은 가상 머신별로 구분된다. 예를 들어, 제1 내지 제3 큐(400)는 제1 가상머신에 할당되고, 제4 내지 제6 큐는 제2 가상머신에 할당되고, 제7 및 제8 큐는 제3 가상머신에 할당된다. 스케줄러는 가상 머신별로 가상 플로우를 참조하여 큐잉을 수행한다.Referring to FIG. 4, the queues 330 are divided into virtual machines. For example, the first to third queues 400 are allocated to the first virtual machine, the fourth to sixth queues are allocated to the second virtual machine, the seventh and eighth queues are allocated to the third virtual machine do. The scheduler performs queuing by referring to the virtual flow for each virtual machine.

예를 들어, 제 1 가상머신으로 향하는 가상 플로우를 우선순위에 따라 식별하는 경우에, 스케줄러는 제1 가상머신에 할당된 제1 내지 제3 큐(400)에 우선순위를 기반으로 가상 패킷을 분류하여 저장한다.For example, in the case where the virtual flow toward the first virtual machine is identified according to the priority, the scheduler classifies the virtual packets based on the priority in the first to third queues 400 allocated to the first virtual machine And stores it.

도 5는 본 발명에 따른 NIC의 가상 플로우 기반 큐 할당의 다른 일 예를 도시한 도면이다.5 is a diagram illustrating another example of the virtual flow-based queue allocation of the NIC according to the present invention.

도 5를 참조하면, 큐들(330)은 적어도 둘 이상의 파티션(520,530)으로 구분된다. 각 파티션(520,530)마다 스케줄러(500,510)가 할당된다. 예를 들어, 제1 파티션(520)에 제1 스케줄러(500)가 할당되고, 제2 파티션(530)에 제2 스케줄러(510)가 할당된다. 각 스케줄러(500,510)는 할당된 파티션에 대하여 독립적으로 스케줄링 작업을 병렬 수행한다. 스케줄러는 앞서 설명한 바와 같이 복수 개의 프로세서들(370) 중 소정의 방법에 의해 선택된 프로세서일 수 있다.Referring to FIG. 5, the queues 330 are divided into at least two partitions 520 and 530. Schedulers 500 and 510 are allocated to each of the partitions 520 and 530. For example, a first scheduler 500 is assigned to the first partition 520, and a second scheduler 510 is assigned to the second partition 530. Each of the schedulers 500 and 510 performs a scheduling operation in parallel for the allocated partitions independently. The scheduler may be a processor selected by a predetermined method among a plurality of processors 370 as described above.

예를 들어, 도 3과 같이 하나의 스케줄러에 의한 스케줄링 수행 중에, 모니터링부에서 측정한 큐의 부하분포가 기 설정된 임계치 이하로 떨어지면, 큐의 재분배 또는 프로세서 재할당이 결정될 수 있다. 또는 네트워크로부터 수신되는 가상 패킷의 통계적 양과 NIC 내의 총 프로세서에 의해 수행되는 프로세서 능력을 계산하여 프로세서의 부하가 어느 임계치 이하이면 큐의 재분배 또는 프로세서 재할당이 결정될 수 있다. 큐의 재분배 또는 프로세서 재할당시, 도 5와 같이 큐가 복수 개의 파티션으로 구분되고 추가적인 스케줄러의 지정이 필요한 경우, 가장 부하가 적은 프로세서를 추가 스케줄러로 지정할 수 있다.For example, as shown in FIG. 3, when the load distribution of the queue measured by the monitoring unit falls below a predetermined threshold value during the scheduling performed by one scheduler, the redistribution of the queue or the processor reallocation may be determined. Or the statistical amount of virtual packets received from the network and the processor capability performed by the total processor in the NIC so that redistribution of the queues or processor reallocation can be determined if the load of the processor is below a certain threshold. When the queue is redistributed or the processor is reassigned, if the queue is divided into a plurality of partitions as shown in FIG. 5 and additional scheduler designation is required, a processor with the least load can be designated as an additional scheduler.

각 파티션에 속한 큐들은 가상머신 기반으로 그룹핑(540)될 수 있으며, 그룹(540) 내 큐들은 가상 플로우 기반으로 분류될 수 있다. 이 경우, 파티션 - 가상머신별 그룹 - 각 그룹별 플로우 단위 큐의 계층적 구조가 생성된다.The queues belonging to each partition may be grouped 540 based on virtual machines, and the queues in the group 540 may be classified based on virtual flows. In this case, a hierarchical structure of the flow unit queues for each group is generated by the partition-virtual machine group.

도 6은 본 발명에 사용되는 가상 패킷의 일 예를 도시한 도면이다.6 is a diagram showing an example of a virtual packet used in the present invention.

도 6을 참조하면, 가상 패킷은 물리적 네트워크 프레임(610), 터널링 필드(620), 가상 네트워크 프레임(630), 데이터 필드(600)를 포함한다.Referring to FIG. 6, a virtual packet includes a physical network frame 610, a tunneling field 620, a virtual network frame 630, and a data field 600.

물리적 네트워크 프레임(610)은 L2, IP, TCP 등 종래의 물리적 네트워크의 계층을 나타내는 정보를 포함한다. 터널링 필드(620)는 터널링 정보 등을 나타낸다. 가상 네트워크 프레임(630)은 가상 네트워크 환경에서의 각 계층(vL2 ~ vL7 등)에 대한 정보를 포함한다. 데이터 필드(600)는 데이터를 포함한다.The physical network frame 610 includes information indicating a layer of a conventional physical network such as L2, IP, and TCP. The tunneling field 620 indicates tunneling information and the like. The virtual network frame 630 includes information about each layer (vL2 to vL7, etc.) in the virtual network environment. The data field 600 includes data.

도 6의 가상 패킷의 구조는 본 발명의 이해를 돕기 위한 하나의 예일 뿐, 본 발명이 이에 한정되는 것은 아니며 가상 네트워크 환경을 위한 다양한 형태의 가상 패킷의 구조를 정의하여 사용할 수 있다.The structure of the virtual packet shown in FIG. 6 is only one example for facilitating understanding of the present invention, and the present invention is not limited thereto. Various types of virtual packet structures for a virtual network environment can be defined and used.

또한 메모리에 저장된 가상 패킷의 구조와 큐에 저장된 가상 패킷의 구조는 실시 예에 따라 동일하거나 다를 수 있다. 예를 들어, 네트워크로부터 수신한 도 6의 가상 패킷을 가상화 환경에서 처리 가능한 최적의 구조로 변경하거나 가상 패킷의 필드 중 가상화 환경에서 불필요한 필드의 일부 또는 전부를 삭제하는 등 다양하게 설계 변경가능하여 큐에 저장할 수 있다.The structure of the virtual packet stored in the memory and the structure of the virtual packet stored in the queue may be the same or different according to the embodiment. For example, it is possible to change various designs such as changing the virtual packet of FIG. 6 received from the network to an optimal structure that can be processed in the virtualization environment, or deleting some or all unnecessary fields in the virtualization environment among fields of the virtual packet, Lt; / RTI >

도 7은 본 발명에 따른 가상 네트워크 환경을 위한 패킷 처리 방법의 일 예를 도시한 흐름도이다.7 is a flowchart illustrating an example of a packet processing method for a virtual network environment according to the present invention.

도 7을 참조하면, 가상 네트워크 장치는 가상 패킷을 수신하면(S700), DPI 과정 등을 통해 가상 패킷을 분석하여 가상 패킷이 전달되어야 할 목적지 가상 머신과 가상 플로우를 식별한다(S710). 가상 네트워크 장치는 가상 머신별로 할당된 적어도 한 개 이상의 큐들에 대해 가상 플로우 단위로 해당하는 큐에 가상 패킷을 저장한다(S720). 그리고 가상 네트워크 장치는 복수 개의 프로세서들을 통해 각 큐에 저장된 가상 패킷을 처리하여 가상 머신으로 전송한다(S730).7, when the virtual network device receives the virtual packet (S700), the virtual network device analyzes the virtual packet through the DPI process and identifies the destination virtual machine and the virtual flow to which the virtual packet is to be transmitted (S710). The virtual network device stores virtual packets in the corresponding queues in units of virtual flows for at least one or more queues allocated for each virtual machine (S720). Then, the virtual network device processes the virtual packets stored in the respective queues through the plurality of processors and transmits them to the virtual machine (S730).

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 다양한 형태의 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.The present invention can also be embodied as computer-readable codes on a computer-readable recording medium. A computer-readable recording medium includes all kinds of recording apparatuses in which data that can be read by a computer system is stored. Examples of the computer-readable recording medium include various types of ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like. The computer-readable recording medium may also be distributed over a networked computer system so that computer readable code can be stored and executed in a distributed manner.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The present invention has been described with reference to the preferred embodiments. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

Claims (2)

복수 개의 가상 머신이 구현된 서버와 연결된 네트워크 인터페이스 장치에 있어서,
복수 개의 큐;
물리적 망을 통해 가상 머신으로 전송할 가상 패킷을 수신하는 패킷수신부;
가상 패킷의 가상 플로우를 식별하는 패킷분석부; 및
상기 식별한 가상 플로우 단위로 구분하여 패킷을 처리하는 것을 특징으로 하는 네트워크 인터페이스 장치.
A network interface device connected to a server in which a plurality of virtual machines are implemented,
A plurality of queues;
A packet receiver for receiving a virtual packet to be transmitted to a virtual machine through a physical network;
A packet analyzer for identifying a virtual flow of a virtual packet; And
And processes the packets by dividing them into the identified virtual flow units.
복수 개의 가상 머신을 위한 패킷 처리 방법에 있어서,
물리적 망을 통해 가상 패킷을 수신하는 단계;
가상 패킷의 가상 플로우를 식별하는 단계;
상기 가상 패킷을 상기 가상 플로우 단위로 구분하여 패킷을 처리하는 단계;를 포함하는 것을 특징으로 하는 패킷 처리 방법.
A packet processing method for a plurality of virtual machines,
Receiving a virtual packet over a physical network;
Identifying a virtual flow of virtual packets;
And processing the packet by dividing the virtual packet into the virtual flow units.
KR1020170071804A 2017-06-08 2017-06-08 The method for processing virtual packets and apparatus therefore KR20180134219A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170071804A KR20180134219A (en) 2017-06-08 2017-06-08 The method for processing virtual packets and apparatus therefore

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170071804A KR20180134219A (en) 2017-06-08 2017-06-08 The method for processing virtual packets and apparatus therefore

Publications (1)

Publication Number Publication Date
KR20180134219A true KR20180134219A (en) 2018-12-18

Family

ID=64952347

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170071804A KR20180134219A (en) 2017-06-08 2017-06-08 The method for processing virtual packets and apparatus therefore

Country Status (1)

Country Link
KR (1) KR20180134219A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112367267A (en) * 2020-09-30 2021-02-12 新华三大数据技术有限公司 Virtual machine management method and device
CN112380068A (en) * 2020-12-04 2021-02-19 海光信息技术股份有限公司 Virtual machine fault-tolerant system and fault-tolerant method thereof

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112367267A (en) * 2020-09-30 2021-02-12 新华三大数据技术有限公司 Virtual machine management method and device
CN112367267B (en) * 2020-09-30 2022-03-29 新华三大数据技术有限公司 Virtual machine management method and device
CN112380068A (en) * 2020-12-04 2021-02-19 海光信息技术股份有限公司 Virtual machine fault-tolerant system and fault-tolerant method thereof

Similar Documents

Publication Publication Date Title
KR101583325B1 (en) Network interface apparatus and method for processing virtual packets
US11677851B2 (en) Accelerated network packet processing
KR101639797B1 (en) Network interface apparatus and method for processing virtual machine packets
US11595315B2 (en) Quality of service in virtual service networks
WO2021136137A1 (en) Resource scheduling method and apparatus, and related device
US11165716B2 (en) Data flow processing method and device
KR20180134219A (en) The method for processing virtual packets and apparatus therefore
KR101773528B1 (en) Network interface apparatus and method for processing virtual machine packets
US10568112B1 (en) Packet processing in a software defined datacenter based on priorities of virtual end points
CN114500418B (en) Data statistics method and related device
KR20190069032A (en) The method for identifying virtual flow and apparatus therefore
KR102091152B1 (en) Method and apparatus for processing packet using multi-core in hierarchical networks
US11757742B2 (en) System and method to distribute traffic flows among a plurality of applications in a data center system
WO2015199366A1 (en) Method for scheduling in multiprocessing environment and device therefor
KR101850749B1 (en) Method for dynamic packet buffer allocation in multi-core based Network Interface Card
KR102112270B1 (en) Packet processing method and apparatus in multi-layered network environment
KR20150114911A (en) Scheduling method and apparatus in multi-processing environment
KR20190048924A (en) System and method for parallel processing flow-based data
US10992601B2 (en) Packet processing method and apparatus in multi-layered network environment
WO2023105697A1 (en) Conversion device, conversion method, and conversion program
Nemeth et al. The limits of architectural abstraction in network function virtualization
US20200112505A1 (en) Flow rules
KR20190119230A (en) Apparatus and method for switching converged data