KR101620995B1 - Method and apparatus for processing packet in virtual execution environment - Google Patents

Method and apparatus for processing packet in virtual execution environment Download PDF

Info

Publication number
KR101620995B1
KR101620995B1 KR1020140187198A KR20140187198A KR101620995B1 KR 101620995 B1 KR101620995 B1 KR 101620995B1 KR 1020140187198 A KR1020140187198 A KR 1020140187198A KR 20140187198 A KR20140187198 A KR 20140187198A KR 101620995 B1 KR101620995 B1 KR 101620995B1
Authority
KR
South Korea
Prior art keywords
packets
buffer unit
packet buffer
virtual machine
packet
Prior art date
Application number
KR1020140187198A
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 KR1020140187198A priority Critical patent/KR101620995B1/en
Application granted granted Critical
Publication of KR101620995B1 publication Critical patent/KR101620995B1/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/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/103Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5681Buffer or queue management

Landscapes

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

Abstract

Disclosed is a packet processing technology in a virtual execution environment capable of improving packet processing performance of a virtual machine through a bulk packet transmitting mode. According to an embodiment of the present invention, a packet processing method in the virtual execution environment comprises the following steps of: enabling the virtual machine, which operates in a user region, to accumulate packets to be transmitted to a hyper-visor, which operates in a kernel region, in a packet buffer unit; determining whether the number of the packets accumulated in the packet buffer unit is equal to or larger than a predetermined number; and transmitting the packets to the hyper-visor when the number of the packets accumulated in the packet buffer unit is equal to or larger than the predetermined number.

Description

가상실행 환경에서의 패킷 처리 방법 및 장치{METHOD AND APPARATUS FOR PROCESSING PACKET IN VIRTUAL EXECUTION ENVIRONMENT}METHOD AND APPARATUS FOR PROCESSING PACKET IN VIRTUAL EXECUTION ENVIRONMENT In a virtual execution environment,

본 발명은 가상실행 환경에서의 패킷 처리 방법 및 장치에 관한 것으로, 보다 구체적으로 본 발명은 벌크 패킷 전송 방식을 통하여 가상 머신의 패킷 처리 성능을 향상시킬 수 있는 가상실행 환경에서의 패킷 처리 방법 및 장치에 관한 것이다. The present invention relates to a packet processing method and apparatus in a virtual execution environment, and more particularly, to a packet processing method and apparatus in a virtual execution environment capable of improving packet processing performance of a virtual machine through a bulk packet transmission scheme .

가상화 기술이 IT 시장에 급속히 확산됨에 따라 사용자의 컴퓨팅 환경도 변화하고 있다. 서버 가상화(server virtualization)는 시스템 프로세서(CPU), 메모리, 입력/출력(I/O), 및 네트워킹과 같은 시스템의 물리적 자원들을 다수의 애플리케이션들 사이에서 애플리케이션들을 변경하지 않고 이들 간의 격리(inter-application isolation), 자원 모니터링(resouce monitoring) 및 제어를 이용하여 공유함으로써 컴퓨터 시스템이 그들 자원들을 이용하는 것을 동적으로 최적화할 수 있도록 한다. 이러한 컴퓨터 시스템들의 무리가 함께 작업하는 공간을 가상 실행 환경(virtual execution environment) 또는 클라우드(cloud)로 지칭될 수 있다.As the virtualization technology spreads rapidly in the IT market, the user's computing environment is also changing. Server virtualization is a technique that allows the physical resources of a system such as a system processor (CPU), memory, input / output (I / O), and networking to be inter- application isolation, resouce monitoring, and control so that computer systems can dynamically optimize their use of resources. The space where a multitude of these computer systems work together can be referred to as a virtual execution environment or cloud.

본 발명의 목적은 한 번의 VMX(Virtual Machine Extentions) 모드 전환으로 다수의 패킷을 처리하여, VMX 모드 전환에 따른 성능 저하를 해결하는 것이다.An object of the present invention is to solve a performance degradation due to switching of a VMX mode by processing a plurality of packets in one VMM (Virtual Machine Extension) mode switching.

본 발명은 가상화 인프라에서 가상머신이 패킷을 전송할 때 하이퍼바이저로의 전환이 일어나면서 발생하는 성능 감소를 줄이는 것을 목적으로 한다. SUMMARY OF THE INVENTION The present invention aims to reduce the performance degradation that occurs when a virtual machine switches packets to a hypervisor in a virtualization infrastructure.

더불어, 본 발명은 빈번한 VMX 모드 전환에 따른 성능 저하를 감소시키며, 패킷의 손실을 방지하는 것을 목적으로 한다. In addition, the present invention aims to reduce performance degradation due to frequent switching of the VMX mode and to prevent packet loss.

상기한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 가상실행 환경에서의 패킷 처리 방법은 유저 영역에서 동작하는 가상머신에서, 커널 영역에서 동작하는 하이퍼바이저로 전송할 패킷을 패킷 버퍼부에 쌓는 단계; 상기 패킷 버퍼부에 쌓인 패킷들의 수가 소정 개수 이상인지를 판단하는 단계; 및 상기 패킷 버퍼부에 쌓인 패킷들의 수가 상기 소정 개수 이상인 경우, 상기 패킷들을 상기 하이퍼바이저로 전송하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method for processing packets in a virtual execution environment, the method comprising: stacking, in a packet buffer, a packet to be transmitted to a hypervisor operating in a kernel area in a virtual machine operating in a user area ; Determining whether the number of packets accumulated in the packet buffer unit is equal to or greater than a predetermined number; And transmitting the packets to the hypervisor when the number of packets accumulated in the packet buffer unit is equal to or greater than the predetermined number.

이 때, 상기 패킷 버퍼부에 패킷이 쌓이기 시작한 이후로 기 설정된 소정 시간이 초과되었는지를 판단하는 단계; 및 상기 소정 시간이 초과된 경우, 상기 패킷 버퍼부에 쌓인 패킷들을 상기 하이퍼바이저로 전송하는 단계를 더 포함할 수 있다. Determining whether a predetermined period of time has elapsed since the start of accumulation of packets in the packet buffer unit; And transmitting the packets accumulated in the packet buffer unit to the hypervisor when the predetermined time is exceeded.

이 때, 상기 패킷 버퍼부에 쌓인 패킷들을 상기 하이퍼바이저로 전송하는 단계 이후에, 상기 소정 시간을 체크하는 타이머를 초기화하는 단계를 더 포함할 수 있다.The method may further include initializing a timer for checking the predetermined time after transmitting the packets accumulated in the packet buffer to the hypervisor.

이 때, 상기 패킷 버퍼부에 쌓인 패킷들의 수가 상기 소정 개수 미만이더라도 상기 소정 시간이 초과된 경우, 상기 패킷 버퍼부에 쌓인 패킷들을 상기 하이퍼바이저로 전송할 수 있다. In this case, when the predetermined time is exceeded even though the number of packets accumulated in the packet buffer unit is less than the predetermined number, packets accumulated in the packet buffer unit can be transmitted to the hypervisor.

이 때, 상기 패킷 버퍼부에 쌓는 단계에서는, 상기 하이퍼바이저로 전송할 패킷을 순차적으로 상기 패킷 버퍼부의 큐에 쌓을 수 있다. At this time, in the step of stacking in the packet buffer unit, packets to be transmitted to the hypervisor may be sequentially accumulated in a queue of the packet buffer unit.

이 때, 상기 하이퍼바이저에서 상기 패킷들을 외부 네트워크망으로 전송하는 단계를 더 포함할 수 있다.
In this case, the hypervisor may further include transmitting the packets to an external network.

그리고, 상기한 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 가상실행 환경에서의 패킷 처리 방법은 커널 영역에서 동작하는 하이퍼바이저에서, 유저 영역에서 동작하는 가상머신으로 전송할 패킷을 패킷 버퍼부에 쌓는 단계; 상기 패킷 버퍼부에 쌓인 패킷들의 수가 소정 개수 이상인지를 판단하는 단계; 및 상기 패킷 버퍼부에 쌓인 패킷들의 수가 상기 소정 개수 이상인 경우, 상기 패킷들을 상기 가상머신으로 전송하는 단계를 포함한다. According to another aspect of the present invention, there is provided a method of processing a packet in a virtual execution environment, the method comprising: transmitting, in a hypervisor operating in a kernel area, a packet to be transmitted to a virtual machine operating in a user area, Stacking step; Determining whether the number of packets accumulated in the packet buffer unit is equal to or greater than a predetermined number; And transmitting the packets to the virtual machine when the number of packets accumulated in the packet buffer unit is equal to or greater than the predetermined number.

이 때, 상기 패킷 버퍼부에 패킷이 쌓이기 시작한 이후로 기 설정된 소정 시간이 초과되었는지를 판단하는 단계; 및 상기 소정 시간이 초과된 경우, 상기 패킷 버퍼부에 쌓인 패킷들을 상기 가상머신으로 전송하는 단계를 더 포함할 수 있다. Determining whether a predetermined period of time has elapsed since the start of accumulation of packets in the packet buffer unit; And transmitting the packets accumulated in the packet buffer unit to the virtual machine when the predetermined time is exceeded.

이 때, 상기 패킷 버퍼부에 쌓인 패킷들의 수가 상기 소정 개수 미만이더라도 상기 소정 시간이 초과된 경우, 상기 패킷 버퍼부에 쌓인 패킷들을 상기 가상머신으로 전송할 수 있다. In this case, when the predetermined time is exceeded even though the number of packets accumulated in the packet buffer unit is less than the predetermined number, packets accumulated in the packet buffer unit can be transmitted to the virtual machine.

이 때, 상기 패킷 버퍼부에 쌓는 단계에서는, 상기 가상머신으로 전송할 패킷을 순차적으로 상기 패킷 버퍼부의 큐에 쌓을 수 있다.
At this time, in the step of stacking in the packet buffer unit, packets to be transmitted to the virtual machine can be sequentially accumulated in the queue of the packet buffer unit.

또한, 상기한 목적을 달성하기 위한 본 발명의 실시예에 따른 가상실행 환경에서의 패킷 처리 장치는 가상 실행 환경에서 소정 기능을 수행하기 위하여 유저 영역에서 동작하는 적어도 하나의 가상 머신; 커널 영역에서 동작하며, 상기 적어도 하나의 가상 머신을 외부 네트워크망과 연결하고 상기 적어도 하나의 가상 머신 간의 패킷을 교환하는 가상 스위치를 포함하는 하이퍼바이저; 및 상기 가상머신과 상기 하이퍼바이저 사이에 송수신되는 패킷들을 소정 개수 단위로 큐에 쌓은 후 전송하는 패킷 버퍼부를 포함한다. According to another aspect of the present invention, there is provided a packet processing apparatus in a virtual execution environment, including: at least one virtual machine operating in a user domain to perform a predetermined function in a virtual execution environment; A hypervisor operative in the kernel domain, the hypervisor comprising a virtual switch for connecting the at least one virtual machine with an external network and exchanging packets between the at least one virtual machine; And a packet buffer unit for accumulating packets transmitted and received between the virtual machine and the hypervisor in a predetermined number of units and then transmitting the packets.

이 때, 상기 패킷 버퍼부의 큐에 패킷이 쌓이기 시작한 이후로 기 설정된 소정 시간이 초과된 경우, 상기 패킷 버퍼부의 큐에 쌓인 패킷들이 상기 가상머신 또는 상기 하이퍼바이저로 전송되도록 제어하는 타임아웃 관리모듈을 더 포함할 수 있다. The time-out management module controls packets to be transmitted to the virtual machine or the hypervisor if a predetermined time has elapsed since the start of accumulation of packets in the queue of the packet buffer unit, .

이 때, 상기 타임아웃 관리모듈은, 상기 패킷들을 상기 가상머신 또는 상기 하이퍼바이저로 전송한 이후, 상기 소정 시간을 체크하는 타이머를 초기화할 수 있다. In this case, the timeout management module may initialize a timer for checking the predetermined time after transmitting the packets to the virtual machine or the hypervisor.

이 때, 상기 패킷 버퍼부에 쌓인 패킷들의 수가 상기 소정 개수 미만이더라도 상기 소정 시간이 초과된 경우, 상기 타임아웃 관리모듈은 상기 패킷 버퍼부의 큐에 쌓인 패킷들이 상기 가상머신 또는 상기 하이퍼바이저로 전송되도록 제어할 수 있다.In this case, if the predetermined time is exceeded even though the number of packets accumulated in the packet buffer unit is less than the predetermined number, the timeout management module may cause the packets stored in the queue of the packet buffer unit to be transmitted to the virtual machine or the hypervisor Can be controlled.

본 발명의 실시예에 따르면, 가상머신이 패킷을 전송할 때 일정 개수만큼 패킷을 모았다가 한꺼번에 전송함으로써, 한 번의 VMX 모드 전환으로 다수의 패킷을 처리하여, VMX 모드 전환에 따른 성능 저하를 해결할 수 있다. According to the embodiment of the present invention, when a virtual machine transmits a packet, a certain number of packets are collected and transmitted at once, so that a plurality of packets are processed in one VMX mode switching to solve a performance degradation due to VMX mode switching .

즉, 본 발명의 실시예에 따르면 가상화 인프라에서 가상머신이 패킷을 전송할 때 하이퍼바이저로의 전환이 일어나면서 발생하는 성능 감소를 줄일 수 있다. That is, according to the embodiment of the present invention, when the virtual machine transmits a packet in the virtualization infrastructure, performance degradation caused by switching to the hypervisor can be reduced.

더불어, 본 발명의 실시예에 따르면, 빈번한 VMX 모드 전환에 따른 성능 저하를 감소시키며, 패킷의 손실을 방지할 수 있다.In addition, according to the embodiment of the present invention, it is possible to reduce the performance degradation due to frequent switching of the VMX mode and to prevent packet loss.

도 1은 가상 인프라에서 계층별 모듈의 동작을 나타내기 위한 아키텍처이다.
도 2는 본 발명의 실시예에 따른 가상실행 환경에서의 패킷 처리 방법을 설명하기 위한 구성도를 포함한 플로우챠트이다.
도 3은 본 발명의 실시예에 따른 가상실행 환경에서의 패킷 처리 장치의 패킷 버퍼부의 구성을 나타낸 블록도이다.
도 4는 본 발명의 실시예에 따른 가상실행 환경에서의 패킷 처리 장치의 타임아웃 관리모듈의 구성을 나타낸 블록도이다.
FIG. 1 is an architecture for representing the operation of each layer module in a virtual infrastructure.
2 is a flowchart including a configuration diagram for explaining a packet processing method in a virtual execution environment according to an embodiment of the present invention.
3 is a block diagram showing a configuration of a packet buffer unit of a packet processing apparatus in a virtual execution environment according to an embodiment of the present invention.
4 is a block diagram showing a configuration of a timeout management module of a packet processing apparatus in a virtual execution environment according to an embodiment of the present invention.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
The present invention will now be described in detail with reference to the accompanying drawings. Hereinafter, a repeated description, a known function that may obscure the gist of the present invention, and a detailed description of the configuration will be omitted. Embodiments of the present invention are provided to more fully describe the present invention to those skilled in the art. Accordingly, the shape and size of the elements in the drawings and the like can be exaggerated for clarity.

이하에서는 본 발명의 실시 예에 따른 가상실행 환경에서의 패킷 처리 장치의 구성 및 동작을 먼저 설명하도록 한다.
Hereinafter, the configuration and operation of the packet processing apparatus in the virtual execution environment according to the embodiment of the present invention will be described first.

도 1은 가상 인프라에서 계층별 모듈의 동작을 나타내기 위한 아키텍처이다. 가상화 인프라는 가상 머신(31~34)과 이를 관리하는 하이퍼바이저(20)의 두 부분으로 구성될 수 있다. 도 1을 참조하면, 가상 실행 환경은, 커널 영역에서 동작하는 하이퍼바이저(20) 및 사용자 영역에서 동작하는 가상 머신 또는 서버 가상 머신(31, 32, 33, 34)을 포함할 수 있고, 서버 가상 머신과 실제 물리적인 NIC(10)를 추상적으로 연결하기 위해 각 가상 머신에는 적어도 하나의 가상 네트워크 인터페이스 카드(vNIC; 30)가 구비될 수 있다. 한편, 하이퍼바이저(20)에는 가상 NIC 와 물리적인 NIC(10)을 연결하기 위한 가상 스위치(21,22,23)를 더 구비할 수 있다.FIG. 1 is an architecture for representing the operation of each layer module in a virtual infrastructure. The virtualization infrastructure may be composed of two parts: the virtual machines 31 to 34 and the hypervisor 20 for managing the virtual machines. 1, the virtual execution environment may include a hypervisor 20 operating in the kernel area and a virtual machine or server virtual machine 31, 32, 33, 34 operating in the user area, At least one virtual network interface card (vNIC) 30 may be provided in each virtual machine to abstractly connect the machine and the actual physical NIC 10. The hypervisor 20 may further include virtual switches 21, 22, and 23 for connecting the virtual NIC and the physical NIC 10 to each other.

도 1에서 가상 스위치(21, 22, 23)는 가상 머신(31, 32, 33, 34)간의 네트워크 트래픽 교환을 담당하고 실제 물리 NIC(10)과 연결하여 호스트 바깥쪽(External)과 가상 머신 간의 트래픽 교환을 담당하는 소프트웨어일 수 있고, 그 동작은 일반적인 L2 스위치와 동일할 수 있다. 이 가상 스위치(21, 22, 23)는 하이퍼바이저(20) 상에 존재하여 커널 영역에서 동작하게 된다. 도 1을 참조하면, 네 개의 가상 머신(31, 32, 33, 34)과 세 개의 가상 스위치(21, 22, 23)가 존재한다. 이 중 방화벽 가상 머신(32) 만이 가상 스위치(21, 22, 23)를 통하여 호스트외부의 물리적 네트워크과 직접 연결되어 있으며, 나머지 가상 머신(31, 33, 34)은 방화벽 가상 머신(32)을 통과하여야만 외부 네트워크에 연결 가능하다.1, the virtual switches 21, 22, and 23 are responsible for exchanging network traffic between the virtual machines 31, 32, 33, and 34 and connecting with the actual physical NIC 10, It may be the software responsible for traffic exchange, and its operation may be the same as a normal L2 switch. These virtual switches 21, 22, and 23 exist on the hypervisor 20 and operate in the kernel area. Referring to FIG. 1, there are four virtual machines 31, 32, 33, 34 and three virtual switches 21, 22, 23. Of these, only the firewall virtual machine 32 is directly connected to the physical network outside the host via the virtual switches 21, 22, and 23, and the remaining virtual machines 31, 33, and 34 must pass through the firewall virtual machine 32 It can be connected to an external network.

한편, 도 1의 경우 제1 가상머신(31)과 제3 가상머신(33)이 통신을 하기 위해서는 제1 가상머신(31)으로부터 가상 NIC(30)를 거쳐서 제1 가상 스위치(21), 다시 가상 NIC(30)을 거쳐서 제2 가상머신(32), 다시 가상 NIC(30)를 거쳐서 제2 가상 스위치(23), 또 가상 NIC(30) 을 지나서 제3 가상머신(33)을 통한 경로를 통해 패킷이 통과할 수 있다. (1점쇄선 참고) 즉, 이 경로는, 가상 스위치(21, 23)를 두번 거치는, 즉, 제1 가상머신(31), 제1 가상 스위치(21), 제2 가상머신(32), 제3 가상 스위치(23) 및 제3 가상머신(33)의 순서로 패킷이 통과할 필요가 있다. 1, in order for the first virtual machine 31 and the third virtual machine 33 to communicate with each other, a first virtual switch 21 is connected from the first virtual machine 31 via the virtual NIC 30, The second virtual machine 32 via the virtual NIC 30 and the second virtual switch 23 via the virtual NIC 30 and the path through the third virtual machine 33 via the virtual NIC 30 Packets can pass through. That is, this path is a path that passes through the virtual switches 21 and 23 twice, that is, passes through the first virtual machine 31, the first virtual switch 21, the second virtual machine 32, 3 virtual switch 23 and the third virtual machine 33 in this order.

또한, 제3 가상머신(33)이 호스트 외부와 통신을 하기 위해서는 제3 가상머신(33), 제3 가상 스위치(23), 제2 가상머신(32) 및 제2 가상 스위치(22)의 경로를 거친다. (2점쇄선 참고) 즉, 가상머신 간의 통신 및 가상 머신으로부터 외부 네트워크와의 통신을 위해서는, 가상머신들(31 ~ 34) 및 가상 스위치들(21, 22, 23) 간에 트래픽이 교환되어야 한다. In order for the third virtual machine 33 to communicate with the outside of the host, the paths of the third virtual machine 33, the third virtual switch 23, the second virtual machine 32, and the second virtual switch 22 ≪ / RTI > In order to communicate between virtual machines and communicate with the external network from the virtual machine, traffic must be exchanged between the virtual machines 31 to 34 and the virtual switches 21, 22 and 23 (see the two-dot chain line).

최근의 인텔 CPU는 가상화를 위하여 VMX(Virtual Machine Extentions) 라는 기능을 제공하고 있다. 이것은 가상 머신과 하이퍼바이저의 모드를 non-root 모드와 root 모드로 분리하여 관리하는 것으로 가상 머신의 성능을 크게 떨어뜨리지 않으면서 가상화를 쉽게 구현하는데 그 목적이 있다. 이 때, 가상 머신과 하이퍼바이저의 스위칭이 발생할 경우 VMX 모드가 non-root 모드에서 root 모드로, 또는 그 반대로 모드 전환이 발생하게 되는데, 이 모드 전환에 따르는 비용이 상당히 커서 VMX 모드 전환이 빈번하게 발생할 경우 성능이 크게 떨어지게 된다. 도 1에서 가상 머신(31 ~ 34)과 가상 스위치(21, 22, 23) 간에 패킷을 교환하게 되면 가상 머신이 보낸 패킷이 하이퍼바이저에 전달이 되기 때문에 VM과 하이퍼바이저 스위칭이 생길 수 밖에 없고, 이에 따라 VMX 모드 전환이 발생하게 된다. 도 1에서 제1 가상머신(31)과 제3 가상머신(33)이 통신을 하는 경우, 두 서버 사이에 하나의 패킷을 주고 받기 위해서 총 4번의 VMX 모드 전환이 발생하게 되어 트래픽이 많은 경우 성능이 크게 떨어질 수 밖에 없다. 또한, 외부 호스트와 제3 가상머신(33)이 통신하는 경우에서는 VMX 모드 전환이 3번 발생한다.Recent Intel CPUs provide a feature called Virtual Machine Extensions (VMX) for virtualization. This is to separate virtual machine and hypervisor mode into non-root mode and root mode and to easily implement virtualization without sacrificing performance of virtual machine. At this time, when switching between the virtual machine and the hypervisor occurs, the VMX mode is switched from the non-root mode to the root mode, or vice versa. However, since the cost of switching the VM mode is considerably high, The performance drops significantly when it occurs. In FIG. 1, if a packet is exchanged between the virtual machines 31 to 34 and the virtual switches 21, 22, and 23, the packet sent by the virtual machine is delivered to the hypervisor, As a result, the VMX mode switching occurs. In FIG. 1, when the first virtual machine 31 and the third virtual machine 33 communicate with each other, a total of four VMX mode switching occurs in order to send and receive one packet between the two servers. It can not help but fall. In the case where the external host and the third virtual machine 33 communicate with each other, the VMX mode switching occurs three times.

이러한 문제는 매번 패킷이 전송될 때마다 VMX 모드의 전환을 야기시키기 때문이며, 특히 네트워크 방화벽과 같이 패킷 처리가 주 기능인 가상머신일 경우 이러한 이유로 패킷 처리 성능이 극심하게 저하되는 문제점이 있는 실정이다.
This problem is caused by switching the VMX mode each time a packet is transmitted. In particular, when a packet processing function is a virtual machine, such as a network firewall, packet processing performance deteriorates due to such a problem.

도 2는 본 발명의 실시예에 따른 가상실행 환경에서의 패킷 처리 방법을 설명하기 위한 구성도를 포함한 플로우챠트이다. 도 3은 본 발명의 실시예에 따른 가상실행 환경에서의 패킷 처리 장치의 패킷 버퍼부(300)의 구성을 나타낸 블록도이다. 도 4는 본 발명의 실시예에 따른 가상실행 환경에서의 패킷 처리 장치의 타임아웃 관리모듈(400)의 구성을 나타낸 블록도이다.
2 is a flowchart including a configuration diagram for explaining a packet processing method in a virtual execution environment according to an embodiment of the present invention. 3 is a block diagram showing a configuration of a packet buffer unit 300 of a packet processing apparatus in a virtual execution environment according to an embodiment of the present invention. 4 is a block diagram showing a configuration of a timeout management module 400 of a packet processing apparatus in a virtual execution environment according to an embodiment of the present invention.

먼저, 본 발명의 실시예에 따른 가상실행 환경에서의 패킷 처리 장치는 가상머신(100)과 하이퍼바이저(200), 패킷 버퍼부(300), 타임아웃 관리모듈(400) 및 NIC(500)로 구성될 수 있다. First, a packet processing apparatus in a virtual execution environment according to an embodiment of the present invention includes a virtual machine 100, a hypervisor 200, a packet buffer unit 300, a timeout management module 400, and a NIC 500 Lt; / RTI >

가상 머신(100)은 소정 기능을 수행하기 위하여 가상 실행 환경의 유저 영역에서 동작하며, 적어도 하나 이상이 구성될 수 있다. The virtual machine 100 operates in the user area of the virtual execution environment in order to perform a predetermined function, and at least one or more virtual machines 100 may be configured.

하이퍼바이저(200)는 가상실행 환경의 커널 영역에서 동작하며, 적어도 하나의 가상 머신(100)을 외부 네트워크망과 연결한다. 그리고, 하이퍼바이저(200)는 적어도 하나의 가상 머신(100) 간의 패킷을 교환할 수 있게 구성되는 가상 스위치를 포함한다. The hypervisor 200 operates in a kernel area of a virtual execution environment and connects at least one virtual machine 100 to an external network. In addition, the hypervisor 200 includes a virtual switch configured to exchange packets between at least one virtual machine 100.

패킷 버퍼부(300)는 가상 머신(100)과 하이퍼바이저(200) 사이에 송수신되는 패킷들을 소정 개수 단위로 큐에 쌓은 후 가상머신(100) 또는 하이퍼바이저(200)로 전송한다. The packet buffer unit 300 accumulates the packets transmitted and received between the virtual machine 100 and the hypervisor 200 in a predetermined number of units and transmits the packets to the virtual machine 100 or the hypervisor 200.

보다 구체적으로, 도 3을 함께 참조하면, 패킷 버퍼부(300)는 패킷 수신부(310), 패킷 저장부(320), 패킷 카운팅부(330) 및 패킷 전송부(340)를 포함하여 구성될 수 있다.3, the packet buffer unit 300 may include a packet receiving unit 310, a packet storing unit 320, a packet counting unit 330, and a packet transmitting unit 340. [ have.

패킷 수신부(310)는 가상머신(100) 또는 하이퍼바이저(200)에서 보내온 패킷을 수신한다. 그리고, 패킷 저장부(320)는 패킷 수신부(310)에서 수신한 패킷들을 큐에 쌓는다. 패킷 카운팅부(330)는 큐에 쌓이는 패킷들의 수를 카운팅하고, 소정개수 이상 큐에 쌓였는지 판단한다. 패킷 전송부(340)는 패킷 카운팅부(330)의 판단으로 패킷 저장부(320)의 큐에 쌓인 패킷의 수가 소정 개수 이상인 경우, 해당 패킷들의 목적지인 하이퍼바이저(200) 또는 가상머신(100)으로 큐에 쌓인 패킷들을 전송한다. The packet receiving unit 310 receives a packet sent from the virtual machine 100 or the hypervisor 200. The packet storage unit 320 queues the packets received by the packet receiving unit 310. The packet counting unit 330 counts the number of packets accumulated in the queue and determines whether the packets are stacked in a predetermined number or more of queues. When the number of packets accumulated in the queue of the packet storing unit 320 is equal to or greater than a predetermined number in response to the determination of the packet counting unit 330, the packet transmitting unit 340 transmits the packet to the hypervisor 200 or the virtual machine 100, Lt; / RTI >

타임아웃 관리모듈(400)은 패킷 버퍼부(300)의 큐에 패킷이 쌓이기 시작한 이후로 기 설정된 소정 시간이 초과된 경우, 패킷 버퍼부(300)의 큐에 쌓인 패킷들이 가상머신(100) 또는 하이퍼바이저(200)로 전송되도록 제어한다. The timeout management module 400 may control the packets queued in the packet buffer unit 300 to be transmitted to the virtual machine 100 or to the virtual machine 100 or to the virtual machine 100 if the predetermined time has elapsed since the start of accumulating the packets in the queue of the packet buffer unit 300. [ To be transmitted to the hypervisor 200.

보다 구체적으로, 도 4를 함께 참조하면, 타임아웃 관리모듈(400)은 타이머부(410), 제어부(420) 및 초기화부(430)를 포함하여 구성될 수 있다. 4, the timeout management module 400 may include a timer 410, a controller 420, and an initialization unit 430.

타이머부(410)는 패킷 버퍼부(300)의 큐에 패킷이 쌓이기 시작한 이후부터 시간을 체크한다. 제어부(420)는 타이머부(410)에서 체크한 시간이 기 설정된 소정 시간이 초과된 경우 패킷 버퍼부(300)에 쌓인 패킷들이 목적지인 가상머신(100) 또는 하이퍼바이저(200)로 전송되도록 제어한다. 초기화부(430)는 패킷 버퍼부(300)의 패킷들을 목적지인 가상머신(100) 또는 하이퍼바이저(200)로 전송한 직후 타이머부(410)의 타이머를 초기화한다.
The timer unit 410 checks the time from the start of accumulating packets in the queue of the packet buffer unit 300. [ The control unit 420 controls the packets stored in the packet buffer unit 300 to be transmitted to the virtual machine 100 or the hypervisor 200 as a destination when the predetermined time period exceeded by the timer unit 410 is exceeded do. The initialization unit 430 initializes the timer of the timer unit 410 immediately after transmitting the packets of the packet buffer unit 300 to the virtual machine 100 or the hypervisor 200 as a destination.

이하에서는, 본 발명에 따른 가상실행 환경에서의 패킷 처리 방법에 대하여 보다 구체적으로 설명하도록 한다. Hereinafter, a packet processing method in a virtual execution environment according to the present invention will be described in more detail.

도 2를 참조하면, 본 발명에 따른 가상실행 환경에서의 패킷 처리 방법은 먼저, 가상 머신에서 패킷 전송을 요청받는다(S110). 그리고, 가상머신은 패킷 버퍼부(300)의 큐에 패킷을 쌓는다(S120).Referring to FIG. 2, in a packet processing method in a virtual execution environment according to the present invention, a packet transmission is requested in a virtual machine (S110). Then, the virtual machine accumulates a packet in the queue of the packet buffer unit 300 (S120).

패킷 버퍼부(300)에 쌓인 패킷의 개수가 기 설정된 소정개수(Threshold) 이상인지를 판단한다(S130).It is determined whether the number of packets accumulated in the packet buffer unit 300 is equal to or greater than a predetermined threshold value (S130).

S130 단계의 판단 결과, S110 단계 및 S120 단계가 반복되어 패킷 버퍼부(300)에 쌓인 패킷의 개수가 소정개수 이상인 경우, 타임아웃 관리모듈(400)의 전송 타이머를 초기화하고(S140), 하이퍼바이저에 패킷의 전송을 통지한다(S150).If it is determined in step S130 that the number of packets accumulated in the packet buffer unit 300 is equal to or greater than the predetermined number, the transmission timer of the timeout management module 400 is initialized (S140) (S150).

S130 단계의 판단 결과, 패킷 버퍼부(300)에 쌓인 패킷의 개수가 소정개수 미만인 경우, 패킷 버퍼부(300)에 패킷이 쌓이기 시작한 이후로 기 설정된 소정 시간이 초과되었는지를 판단한다(S160).If it is determined in step S130 that the number of packets accumulated in the packet buffer unit 300 is less than the predetermined number, it is determined in step S160 whether a predetermined time has elapsed since the start of packet accumulation in the packet buffer unit 300. FIG.

S160 단계의 판단 결과, 소정 시간이 초과된 경우, 타임아웃 관리모듈(400)의 전송 타이머를 초기화하고(S140), 하이퍼바이저에 패킷의 전송을 통지한다(S150).If it is determined in step S160 that the predetermined time has elapsed, the transmission timer of the timeout management module 400 is initialized (S140), and the transmission of the packet is notified to the hypervisor (S150).

패킷의 전송을 통지받은 하이퍼바이저는 패킷 버퍼부(300)에 패킷이 존재하는지를 판단한다(S170). 그리고, S170 단계의 판단 결과, 패킷 버퍼부(00)에 패킷이 존재하는 경우, 패킷 버퍼부(300)의 패킷을 큐의 대기행렬에서 해제한다(S180).The hypervisor notified of the transmission of the packet determines whether a packet exists in the packet buffer unit 300 (S170). If it is determined in step S170 that there is a packet in the packet buffer unit 00, the packet buffer unit 300 releases the packet from the queue queue in step S180.

그리고, 하이퍼바이저는 패킷을 외부 네트워크망으로의 전송을 위하여 NIC(500)에 전송할 수 있다(S190).
Then, the hypervisor can transmit the packet to the NIC 500 for transmission to the external network (S190).

상기와 같이 동작할 경우 VMX 모드 전환 횟수가 줄어들어 VMX 모드 전환에 따른 성능 저하가 줄어든다. 특히 방화벽 가상머신과 같이 패킷처리가 주요 기능인 가상머신의 경우 큰 성능 향상을 기대할 수 있다. 방화벽 가상머신과 같이 대량의 패킷 처리를 해야 하는 경우 VMX 모드 전환에 따른 성능 저하가 줄어들기 때문에 평균 latency가 좋아지고, 패킷 처리 용량도 증가할 수 있다. When the above operation is performed, the number of times of switching the VMX mode is reduced and the performance degradation due to the switching of the VMX mode is reduced. In particular, a virtual machine, which is a main function of packet processing such as a firewall virtual machine, can be expected to greatly improve performance. When a large number of packets are processed like a firewall virtual machine, the performance degradation due to the switching of the VMX mode is reduced, so that the average latency can be improved and the packet processing capacity can be increased.

또한 벌크하게 패킷을 처리하는 이러한 방식은 가상머신의 동작 방식에 따라서 해당 기능을 ON/OFF 하거나, 또는 현재 패킷 송수신 양에 따라서 동적으로 해당 기능을 ON/OFF 함으로써 성능 최적화를 할 수 있다.
This method of bulk packet processing can optimize performance by turning on / off the corresponding function according to the operation method of the virtual machine, or dynamically turning on / off the corresponding function according to the current packet transmission / reception amount.

앞에서는 가상머신에서 패킷을 송신하는 경우에 한하여 설명했지만, 본 발명은 가상머신이 하이퍼바이저로부터 패킷을 수신하는 경우에도 동일한 방식으로 적용이 가능하다.
Although the above description has been given only for the case of transmitting a packet in a virtual machine, the present invention can be applied in the same manner when a virtual machine receives a packet from the hypervisor.

본 발명에 따른 가상실행 환경에서의 패킷 처리 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 모든 형태의 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The packet processing method in the virtual execution environment according to the present invention can be implemented in the form of a program command which can be executed through various computer means and recorded in a computer readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Includes all types of hardware devices that are specially configured to store and execute magneto-optical media and program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions may include machine language code such as those generated by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. Such a hardware device may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

본 발명의 원리들의 교시들은 하드웨어와 소프트웨어의 조합으로서 구현될 수 있다. 또한, 소프트웨어는 프로그램 저장부 상에서 실재로 구현되는 응용 프로그램으로서 구현될 수 있다. 응용 프로그램은 임의의 적절한 아키텍쳐를 포함하는 머신에 업로드되고 머신에 의해 실행될 수 있다. 바람직하게는, 머신은 하나 이상의 중앙 처리 장치들(CPU), 컴퓨터 프로세서, 랜덤 액세스 메모리(RAM), 및 입/출력(I/O) 인터페이스들과 같은 하드웨어를 갖는 컴퓨터 플랫폼 상에 구현될 수 있다. 또한, 컴퓨터 플랫폼은 운영 체제 및 마이크로 명령 코드를 포함할 수 있다. 여기서 설명된 다양한 프로세스들 및 기능들은 마이크로 명령 코드의 일부 또는 응용 프로그램의 일부, 또는 이들의 임의의 조합일 수 있고, 이들은 CPU를 포함하는 다양한 처리 장치에 의해 실행될 수 있다. 추가로, 추가 데이터 저장부 및 프린터와 같은 다양한 다른 주변 장치들이 컴퓨터 플랫폼에 접속될 수 있다.The teachings of the principles of the present invention may be implemented as a combination of hardware and software. In addition, the software can be implemented as an application program that is actually implemented on the program storage unit. The application program can be uploaded to and executed by a machine that includes any suitable architecture. Advantageously, the machine may be implemented on a computer platform having hardware such as one or more central processing units (CPUs), a computer processor, a random access memory (RAM), and input / output (I / . In addition, the computer platform may include an operating system and microinstruction code. The various processes and functions described herein may be part of microcommand codes or a portion of an application program, or any combination thereof, and they may be executed by various processing devices including a CPU. In addition, various other peripheral devices such as additional data storage and printers may be connected to the computer platform.

첨부 도면들에서 도시된 구성 시스템 컴포넌트들 및 방법들의 일부가 바람직하게는 소프트웨어로 구현되므로, 시스템 컴포넌트들 또는 프로세스 기능 블록들 사이의 실제 접속들은 본 발명의 원리들이 프로그래밍되는 방식에 따라 달라질 수 있다는 점이 추가로 이해되어야 한다. 여기서의 교시들이 주어지면, 관련 기술분야의 당업자는 본 발명의 원리들의 이들 및 유사한 구현예들 또는 구성들을 참작할 수 있을 것이다.
It is to be understood that the actual connections between system components or process functional blocks may vary depending on how the principles of the present invention are programmed, as some of the constituent system components and methods illustrated in the accompanying drawings are preferably implemented in software It should be further understood. Given the teachings herein, those skilled in the relevant art (s) will be able to contemplate these and similar implementations or configurations of the principles of the invention.

이상에서와 같이 본 발명에 따른 가상실행 환경에서의 패킷 처리 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the apparatus and method for processing packets in the virtual execution environment according to the present invention can be applied to the configurations and methods of the embodiments described above in a limited manner, All or some of the embodiments may be selectively combined.

100; 가상머신
200; 하이퍼바이저
300; 패킷 버퍼부
400; 타임아웃 관리모듈
100; Virtual machine
200; Hypervisor
300; The packet buffer unit
400; Timeout management module

Claims (14)

유저 영역에서 동작하는 가상머신에서, 커널 영역에서 동작하는 하이퍼바이저로 전송할 패킷을 패킷 버퍼부에 쌓는 단계;
상기 패킷 버퍼부에 쌓인 패킷들의 수가 소정 개수 이상인지를 판단하는 단계; 및
상기 패킷 버퍼부에 쌓인 패킷들의 수가 상기 소정 개수 이상인 경우, 상기 패킷들을 한 번의 VMX(Virtual Machine Extensions) 모드 전환에 의해 상기 하이퍼바이저로 전송하는 단계를 포함하는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 방법.
Stacking, in a packet buffer, a packet to be transmitted to a hypervisor operating in a kernel area in a virtual machine operating in a user area;
Determining whether the number of packets accumulated in the packet buffer unit is equal to or greater than a predetermined number; And
And when the number of packets accumulated in the packet buffer unit is equal to or greater than the predetermined number, transmitting the packets to the hypervisor by switching to one VMX (Virtual Machine Extensions) mode. Processing method.
청구항 1에 있어서,
상기 패킷 버퍼부에 패킷이 쌓이기 시작한 이후로 기 설정된 소정 시간이 초과되었는지를 판단하는 단계; 및
상기 소정 시간이 초과된 경우, 상기 패킷 버퍼부에 쌓인 패킷들을 상기 하이퍼바이저로 전송하는 단계를 더 포함하는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 방법.
The method according to claim 1,
Determining whether a predetermined period of time has elapsed since the start of accumulation of packets in the packet buffer unit; And
And transmitting the packets accumulated in the packet buffer unit to the hypervisor when the predetermined time is exceeded.
청구항 2에 있어서,
상기 패킷 버퍼부에 쌓인 패킷들을 상기 하이퍼바이저로 전송하는 단계 이후에, 상기 소정 시간을 체크하는 타이머를 초기화하는 단계를 더 포함하는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 방법.
The method of claim 2,
Further comprising the step of initializing a timer for checking the predetermined time after transmitting the packets accumulated in the packet buffer unit to the hypervisor.
청구항 2에 있어서,
상기 패킷 버퍼부에 쌓인 패킷들의 수가 상기 소정 개수 미만이더라도 상기 소정 시간이 초과된 경우, 상기 패킷 버퍼부에 쌓인 패킷들을 상기 하이퍼바이저로 전송하는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 방법.
The method of claim 2,
Wherein when the predetermined time is exceeded even if the number of packets accumulated in the packet buffer unit is less than the predetermined number, packets accumulated in the packet buffer unit are transmitted to the hypervisor.
청구항 1에 있어서,
상기 패킷 버퍼부에 쌓는 단계에서는,
상기 하이퍼바이저로 전송할 패킷을 순차적으로 상기 패킷 버퍼부의 큐에 쌓는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 방법.
The method according to claim 1,
In the stacking step in the packet buffer unit,
Wherein the packets to be transmitted to the hypervisor are sequentially stacked in a queue of the packet buffer unit.
청구항 1에 있어서,
상기 하이퍼바이저에서 상기 패킷들을 외부 네트워크망으로 전송하는 단계를 더 포함하는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 방법.
The method according to claim 1,
And transmitting the packets to an external network in the hypervisor.
커널 영역에서 동작하는 하이퍼바이저에서, 유저 영역에서 동작하는 가상머신으로 전송할 패킷을 패킷 버퍼부에 쌓는 단계;
상기 패킷 버퍼부에 쌓인 패킷들의 수가 소정 개수 이상인지를 판단하는 단계; 및
상기 패킷 버퍼부에 쌓인 패킷들의 수가 상기 소정 개수 이상인 경우, 상기 패킷들을 한 번의 VMX(Virtual Machine Extensions) 모드 전환에 의해 상기 가상머신으로 전송하는 단계를 포함하는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 방법.
Stacking, in a packet buffer unit, a packet to be transmitted to a virtual machine operating in a user area in a hypervisor operating in a kernel area;
Determining whether the number of packets accumulated in the packet buffer unit is equal to or greater than a predetermined number; And
When the number of packets accumulated in the packet buffer unit is equal to or greater than the predetermined number, transmitting the packets to the virtual machine by switching to a single VMX (Virtual Machine Extensions) mode. Processing method.
청구항 7에 있어서,
상기 패킷 버퍼부에 패킷이 쌓이기 시작한 이후로 기 설정된 소정 시간이 초과되었는지를 판단하는 단계; 및
상기 소정 시간이 초과된 경우, 상기 패킷 버퍼부에 쌓인 패킷들을 상기 가상머신으로 전송하는 단계를 더 포함하는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 방법.
The method of claim 7,
Determining whether a predetermined period of time has elapsed since the start of accumulation of packets in the packet buffer unit; And
And transmitting the packets accumulated in the packet buffer unit to the virtual machine when the predetermined time is exceeded.
청구항 8에 있어서,
상기 패킷 버퍼부에 쌓인 패킷들의 수가 상기 소정 개수 미만이더라도 상기 소정 시간이 초과된 경우, 상기 패킷 버퍼부에 쌓인 패킷들을 상기 가상머신으로 전송하는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 방법.
The method of claim 8,
Wherein when the predetermined time is exceeded even if the number of packets accumulated in the packet buffer unit is less than the predetermined number, packets accumulated in the packet buffer unit are transmitted to the virtual machine.
청구항 7에 있어서,
상기 패킷 버퍼부에 쌓는 단계에서는,
상기 가상머신으로 전송할 패킷을 순차적으로 상기 패킷 버퍼부의 큐에 쌓는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 방법.
The method of claim 7,
In the stacking step in the packet buffer unit,
And the packets to be transmitted to the virtual machine are sequentially stacked in a queue of the packet buffer unit.
가상 실행 환경에서 소정 기능을 수행하기 위하여 유저 영역에서 동작하는 적어도 하나의 가상 머신;
커널 영역에서 동작하며, 상기 적어도 하나의 가상 머신을 외부 네트워크망과 연결하고 상기 적어도 하나의 가상 머신 간의 패킷을 교환하는 가상 스위치를 포함하는 하이퍼바이저; 및
상기 가상머신과 상기 하이퍼바이저 사이에 송수신되는 패킷들을 소정 개수 단위로 큐에 쌓은 후에 한 번의 VMX(Virtual Machine Extensions) 모드 전환에 의해 전송하는 패킷 버퍼부를 포함하는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 장치.
At least one virtual machine operating in a user area to perform a predetermined function in a virtual execution environment;
A hypervisor operative in the kernel domain, the hypervisor comprising a virtual switch for connecting the at least one virtual machine with an external network and exchanging packets between the at least one virtual machine; And
And a packet buffer unit for stacking packets transmitted and received between the virtual machine and the hypervisor in a predetermined number of units in a queue and then transmitting the packets by one VMM (Virtual Machine Extensions) mode switching. Processing device.
청구항 11에 있어서,
상기 패킷 버퍼부의 큐에 패킷이 쌓이기 시작한 이후로 기 설정된 소정 시간이 초과된 경우, 상기 패킷 버퍼부의 큐에 쌓인 패킷들이 상기 가상머신 또는 상기 하이퍼바이저로 전송되도록 제어하는 타임아웃 관리모듈을 더 포함하는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 장치.
The method of claim 11,
And a timeout management module for controlling the packets in the queue of the packet buffer unit to be transmitted to the virtual machine or the hypervisor when a predetermined time has elapsed since the start of accumulating packets in the queue of the packet buffer unit Wherein the packet processing apparatus is a virtual execution environment.
청구항 12에 있어서,
상기 타임아웃 관리모듈은,
상기 패킷들을 상기 가상머신 또는 상기 하이퍼바이저로 전송한 이후, 상기 소정 시간을 체크하는 타이머를 초기화하는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 장치.
The method of claim 12,
Wherein the timeout management module comprises:
And after the packets are transmitted to the virtual machine or the hypervisor, a timer for checking the predetermined time is initialized.
청구항 12에 있어서,
상기 패킷 버퍼부에 쌓인 패킷들의 수가 상기 소정 개수 미만이더라도 상기 소정 시간이 초과된 경우, 상기 타임아웃 관리모듈은 상기 패킷 버퍼부의 큐에 쌓인 패킷들이 상기 가상머신 또는 상기 하이퍼바이저로 전송되도록 제어하는 것을 특징으로 하는 가상실행 환경에서의 패킷 처리 장치.
The method of claim 12,
When the predetermined time is exceeded even though the number of packets stacked in the packet buffer unit is less than the predetermined number, the timeout management module controls the packets accumulated in the queue of the packet buffer unit to be transmitted to the virtual machine or the hypervisor Wherein the packet processing apparatus is a virtual execution environment.
KR1020140187198A 2014-12-23 2014-12-23 Method and apparatus for processing packet in virtual execution environment KR101620995B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140187198A KR101620995B1 (en) 2014-12-23 2014-12-23 Method and apparatus for processing packet in virtual execution environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140187198A KR101620995B1 (en) 2014-12-23 2014-12-23 Method and apparatus for processing packet in virtual execution environment

Publications (1)

Publication Number Publication Date
KR101620995B1 true KR101620995B1 (en) 2016-05-16

Family

ID=56109201

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140187198A KR101620995B1 (en) 2014-12-23 2014-12-23 Method and apparatus for processing packet in virtual execution environment

Country Status (1)

Country Link
KR (1) KR101620995B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001292166A (en) * 2000-04-07 2001-10-19 Ntt Docomo Inc Packet multiplexing method, multiplex controller and communication system
US20140269750A1 (en) * 2013-03-14 2014-09-18 Red Hat Israel, Ltd. Implicit and dynamic receive queue assignment in virtualized systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001292166A (en) * 2000-04-07 2001-10-19 Ntt Docomo Inc Packet multiplexing method, multiplex controller and communication system
US20140269750A1 (en) * 2013-03-14 2014-09-18 Red Hat Israel, Ltd. Implicit and dynamic receive queue assignment in virtualized systems

Similar Documents

Publication Publication Date Title
US11683256B2 (en) Specializing virtual network device processing to avoid interrupt processing for high packet rate applications
US11736402B2 (en) Fast data center congestion response based on QoS of VL
US10454850B2 (en) Apparatus and method for buffering data in a switch
US10223314B2 (en) PCI express connected network switch
US9459904B2 (en) NUMA I/O aware network queue assignments
US11048569B1 (en) Adaptive timeout mechanism
JP5689526B2 (en) Resource affinity through dynamic reconfiguration of multiqueue network adapters
US8761187B2 (en) System and method for an in-server virtual switch
CN107431666B (en) Method, apparatus, and medium for implementing low latency in a data center environment
EP2256640A1 (en) Managing traffic on virtualized lanes between a network switch and a virtual machine
US20140219287A1 (en) Virtual switching based flow control
US10320921B2 (en) Specializing virtual network device processing to bypass forwarding elements for high packet rate applications
CN110636139B (en) Optimization method and system for cloud load balancing
CN109983741B (en) Transferring packets between virtual machines via direct memory access devices
Zhang et al. Justitia: Software {Multi-Tenancy} in Hardware {Kernel-Bypass} Networks
US20170195226A1 (en) Apparatus and method for high-speed data transmission between virtual desktops
US20170366460A1 (en) Rdma-over-ethernet storage system with congestion avoidance without ethernet flow control
WO2012164419A1 (en) Facilitating routing by selectively aggregating contiguous data units
KR101620995B1 (en) Method and apparatus for processing packet in virtual execution environment
US9619269B2 (en) Device and method for dynamically mapping processor based on tenant
KR101499668B1 (en) Device and method for fowarding network frame in virtual execution environment
Suzuki et al. Device-level IoT with virtual I/O device interconnection
CN103353848A (en) Multiple-queue or device selection method and computing node
US11089066B2 (en) System and method for dynamic medium access control (MAC) relating to a virtualization environment
WO2023186046A1 (en) Method and apparatus for transmitting message

Legal Events

Date Code Title Description
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190502

Year of fee payment: 4