KR20110103889A - Apparatus and method for virtualizing of network device - Google Patents

Apparatus and method for virtualizing of network device Download PDF

Info

Publication number
KR20110103889A
KR20110103889A KR1020110022732A KR20110022732A KR20110103889A KR 20110103889 A KR20110103889 A KR 20110103889A KR 1020110022732 A KR1020110022732 A KR 1020110022732A KR 20110022732 A KR20110022732 A KR 20110022732A KR 20110103889 A KR20110103889 A KR 20110103889A
Authority
KR
South Korea
Prior art keywords
packet
network
virtualization
network device
network equipment
Prior art date
Application number
KR1020110022732A
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 US13/048,654 priority Critical patent/US8862714B2/en
Publication of KR20110103889A publication Critical patent/KR20110103889A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • H04L12/413Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/437Ring fault isolation or reconfiguration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

네트워크 장비의 가상화 장치는 상기 네트워크 장비를 가상화하여 적어도 하나의 가상화된 네트워크 장비를 제공하며, 이들 가상화된 네트워크 장비를 스케줄링하여 해당 프로그램을 실행시킨다. 이때, 가상화 장치는 스케줄링에 따라서 컨텍스트 스위칭의 시간 단위로 컨텍스트 스위칭을 수행하고 다른 프로그램으로 전환한다. The virtualization apparatus of the network equipment virtualizes the network equipment to provide at least one virtualized network equipment, and schedules the virtualized network equipment to execute the corresponding program. At this time, the virtualization apparatus performs context switching on a time basis of context switching according to the scheduling and switches to another program.

Description

네트워크 장비의 가상화 장치 및 방법{APPARATUS AND METHOD FOR VIRTUALIZING OF NETWORK DEVICE} APAPATUS AND METHOD FOR VIRTUALIZING OF NETWORK DEVICE}

본 발명은 네트워크 장비의 가상화 장치 및 방법에 관한 것으로, 특히 고속의 패킷 처리를 하는 네트워크 장비를 가상화하여 네트워크 가상화를 지원하는 방법에 관한 것이다. The present invention relates to an apparatus and method for virtualizing network equipment, and more particularly, to a method for supporting network virtualization by virtualizing network equipment that performs high-speed packet processing.

네트워크 가상화는 네트워크를 구성하는 각 요소들을 가상화시켜 여러 개의 가상 네트워크를 지원하는 기술이다. 네트워크 가상화를 위해서는 네트워크를 구성하는 요소인 네트워크 장비의 가상화가 필요하다. Network virtualization is a technology that supports multiple virtual networks by virtualizing each element of the network. Network virtualization requires virtualization of network equipment, which constitutes a network.

네트워크 장비의 가상화는 라우터와 같이 고속으로 패킷을 처리하는 장치를 가상화시켜 여러 개의 가상 라우터를 지원하는 기술이며, 서로 연결되어 있는 가상 라우터의 집합으로 가상 네트워크를 구성할 수 있다. Virtualization of network equipment is a technology that supports multiple virtual routers by virtualizing a device that processes packets at high speed such as a router. A virtual network may be composed of a set of virtual routers connected to each other.

네트워크 장비를 가상화시키는 방법은 크게 하드웨어 기반의 가상화 기술과 소프트웨어 기반의 라우터 가상화 기술로 나눌 수 있다. The virtualization of network equipment can be divided into hardware-based virtualization technology and software-based router virtualization technology.

하드웨어 기반의 가상 라우터는 오픈플로우(OpenFlow Switch) 기반의 라우터가 대표적이다. 오픈플로우 기반의 라우터는 플로우 테이블에 기반하여 패킷을 포워딩해주는 오픈플로우 스위치와 플로우 테이블을 제어하는 제어부로 구성된다. 플로우 테이블은 제어부에 의해 변경될 수 있고, 플로우 테이블에 의해 결정된 경로에 따라 가상 네트워크들의 트래픽이 물리적으로 분리되어 가상의 네트워크들을 운영할 수 있게 된다. The hardware based virtual router is typically an OpenFlow Switch based router. Openflow-based routers consist of an openflow switch that forwards packets based on a flow table, and a controller that controls the flow table. The flow table may be changed by the controller, and traffic of the virtual networks may be physically separated according to a path determined by the flow table to operate the virtual networks.

오픈 플로우와 같은 하드웨어 기반의 가상 라우터는 포워딩 전용 하드웨어의 도움으로 트래픽을 빠르게 처리할 수 있어서 기존의 라우터와 비교하여 성능 저하가 거의 없다는 장점이 있다. 하지만, 필요한 기능들이 하드웨어적으로 모두 구현이 되어야 하기 때문에 유연성이 떨어져 가상 라우터의 기능적인 측면에서 볼 때 미래 인터넷에서 요구되는 새로운 네트워크 구조나 네트워크마다 서로 다를 수 있는 프로토콜의 지원, 새로운 패킷 헤더의 추가, 다양한 네트워크 정책의 적용, 사용자 요구에 대한 빠른 대처 등이 어렵다는 문제점이 있다. Hardware-based virtual routers, such as open flow, can handle traffic quickly with the help of dedicated forwarding hardware, so there is little performance degradation compared to conventional routers. However, since all necessary functions must be implemented in hardware, it is inflexible and, in terms of the function of virtual router, supports new network structure or protocol that may be different for each network, and new packet header is added. In other words, it is difficult to apply various network policies and quickly cope with user demands.

반면, 소프트웨어 기반의 가상 라우터는 하드웨어 상위 단계에서 가상화 소프트웨어를 통하여 라우터 소프트웨어의 가상화를 제공한다. 가상화 소프트웨어는 각자 하나의 온전한 기계처럼 동작할 수 있는 다수의 가상 머신(virtual machine)들을 생성하여 관리할 수 있는 소프트웨어이다. 소프트웨어 기반의 가상 라우터는 하드웨어 기반의 가상 라우터에서 지원하기 힘들었던 여러 기능적 요구들을 프로그래밍을 통해 보다 손쉽게 지원할 수 있는 장점이 있으나, 가상화 소프트웨어 및 가상 머신의 오버헤드로 인해 패킷 처리 성능에 한계가 있다. 또한 현재 지원되는 가상화 소프트웨어는 물리적 자원에 대한 모니터링 기능 및 동적 제어 및 할당에 대한 지원이 미흡한 실정으로서 물리적 자원을 각 가상 네트워크에 동적으로 할당하고 제어하는 데 한계가 있다. Software-based virtual routers, on the other hand, provide virtualization of router software through virtualization software at higher hardware levels. Virtualization software is software that creates and manages a number of virtual machines, each of which can act as a complete machine. Software-based virtual routers have the advantage of being able to programmatically support many functional requirements that were difficult to support in hardware-based virtual routers, but the packet processing performance is limited due to the overhead of virtualization software and virtual machines. In addition, currently supported virtualization software has insufficient support for monitoring and dynamic control and allocation of physical resources, and has limitations in dynamically allocating and controlling physical resources to each virtual network.

한편, 옥테온(Octeon)과 같은 NP(Network processor)와 같이 하드웨어 기반의 라우터와 소프트 기반의 라우터의 장점을 적절히 혼합한 형태의 장치가 있다. On the other hand, there is a type of device that properly combines the advantages of hardware-based routers and soft-based routers, such as NP (Network processor) such as Octeon.

옥테온과 같은 NP의 경우 라우터 프로그램을 CPU 상에서 O/S 없이 바로 동작하게 함으로써 고속으로 프로그램을 구동시킴과 동시에, 다수의 코어를 사용한 병렬 처리를 지원 함으로써 대용량의 패킷을 고속으로 처리할 수 있다. 또한 옥테온 II의 경우 EM 바이저를 통해 옥테온 NP를 가상화할 수 있는 기술을 제공한다. In the case of NP such as Octeon, the router program can be run directly on the CPU without O / S to run the program at high speed, and parallel processing using multiple cores can be processed at high speed. Octeon II also offers technology to virtualize Octeon NP through the EM visor.

그러나 EM 바이저를 사용할 경우 다수의 코어에 사용자가 원하는 프로그램을 동적으로 로딩/실행 할 수 있지만, 사용자 프로그램이 바이너리 수준에서 플랫폼 간 독립성을 지원하지 않아 사용자 프로그램을 다른 종류의 NP에 동작 시키는 것이 쉽지 않으며, 프로그램 간 완벽한 격리가 불가능해 하나의 프로그램의 오류 또는 비정상인 동작이 다른 프로그램에 영향을 줄 수 있다는 단점이 있다. However, with the EM visor, you can dynamically load / run a program of your choice on multiple cores.However, since the user program does not support cross-platform independence at the binary level, it is not easy to run the user program on other types of NPs. However, there is a disadvantage that complete isolation between programs is impossible, so that an error or abnormal operation of one program may affect other programs.

본 발명이 해결하고자 하는 기술적 과제는 가상화된 상태에서 고속의 패킷 처리를 지원할 수 있으며, 서로 다른 사용자 프로그램간 격리를 보장하고 사용자 프로그램에 대한 플랫폼간 독립성을 지원할 수 있는 네트워크 장비의 가상화 장치 및 방법을 제공하는 것이다. The technical problem to be solved by the present invention is to provide a virtualization apparatus and method for network equipment that can support high-speed packet processing in a virtualized state, ensure isolation between different user programs and support platform independence for user programs. To provide.

본 발명의 한 실시 예에 따른 가상화 장치는 네트워크 장비, 그리고 네트워크 가상화 관리 모듈을 포함한다. 네트워크 가상화 관리 모듈은 상기 네트워크 장비를 가상화하여 적어도 하나의 가상화된 네트워크 장비를 제공하며, 가상화되지 않은 네트워크 장비가 상기 가상화된 네트워크 장비와 패킷의 목적지 사이에 있는 경우에 상기 패킷을 인캡슐레이션하여 전송한다. The virtualization apparatus according to an embodiment of the present invention includes network equipment and a network virtualization management module. The network virtualization management module virtualizes the network equipment to provide at least one virtualized network equipment, and encapsulates and transmits the packet when the non-virtualized network equipment is between the virtualized network equipment and a packet destination. do.

본 발명의 다른 실시 예에 따르면, 가상화 장치에서 네트워크 장비를 가상화하는 방법이 제공된다. 가상화 방법은, 상기 네트워크 장비를 가상화하여 적어도 하나의 가상화된 네트워크 장비를 제공하는 단계, 상기 적어도 하나의 가상화된 네트워크 장비를 스케줄링하는 단계, 상기 스케줄링에 따라서 상기 적어도 하나의 가상화된 네트워크 장비의 프로그램을 실행시키는 단계, 그리고 설정된 시간 단위로 컨텍스트 스위칭을 수행하는 단계를 포함한다. According to another embodiment of the present invention, a method for virtualizing network equipment in a virtualization apparatus is provided. The virtualization method may further include: virtualizing the network equipment to provide at least one virtualized network equipment, scheduling the at least one virtualized network equipment, and programming the at least one virtualized network equipment according to the scheduling. Executing and performing context switching on a predetermined time basis.

본 발명의 실시 예에 의하면, 패킷 처리를 주로 하는 네트워크 장비의 특성을 이용하여 컨텍스트 스위칭 비용을 줄일 수 있으며, 원격지의 네트워크 장비간 가상 네트워크를 구성할 수 있다.According to an embodiment of the present invention, the context switching cost can be reduced by using the characteristics of the network equipment mainly for packet processing, and a virtual network between the network devices in a remote location can be configured.

또한, 본 발명의 실시 예에 의하면, 플랫폼 독립적인 고수준 기계어를 사용하여 네트워크 장비를 가상화함으로써, 사용자 프로그램별로 메모리 영역을 나누고 패킷 데이터를 그 영역으로 복사하는 과정을 생략할 수 있어서 패킷 처리 효율을 높일 수 있다. 또한, 하나의 코어를 나누어 다수의 사용자 프로그램이 공유할 경우 메모리 보호를 위한 하드웨어를 사용하지 않아도 되므로 컨텍스트 스위칭 시 필요한 정보를 줄일 수 있다. 또한, 가상화된 네트워크 장비에서 동일한 고수준 기계어를 처리할 경우 사용자 프로그램을 다양한 플랫폼에서 구동시킬 수 있고, 사용자 프로그램을 컴파일된 상태로 배포하기 때문에 사용자 프로그램의 소스 코드 등 주요 정보를 보호할 수 있다. 또한, 사용자 컴퓨터(Personal Computer)와 같이 사용자가 직접 접근 가능한 네트워크 장비에서 사용자 프로그램을 구동시킬 수 있기 때문에 개발 및 테스트가 용이하고 사용자 컴퓨터와 같은 단말 네트워크 장비에서도 구동이 가능하기 때문에 단말에서도 사용자가 원하는 형태의 패킷을 생성해 전송할 수 있다. In addition, according to an embodiment of the present invention, by virtualizing the network equipment using a platform-independent high-level machine language, the process of dividing the memory area for each user program and copying the packet data to the area can be omitted, thereby improving packet processing efficiency. Can be. In addition, when a plurality of user programs are shared by dividing one core, the hardware for memory protection may not be used, thereby reducing information required for context switching. In addition, when the same high-level machine language is processed in the virtualized network equipment, the user program can be run on various platforms, and since the user program is distributed in a compiled state, key information such as source code of the user program can be protected. In addition, since the user program can be run on a network device that is directly accessible to the user, such as a personal computer, it is easy to develop and test and can also be run on a terminal network device such as a user computer. You can create a packet of type and send it.

도 1은 본 발명의 실시 예에 따른 네트워크 장비의 가상화 구조를 개략적으로 나타낸 도면이다.
도 2는 도 1에 도시된 하이퍼바이저를 나타낸 도면이다. 도 3은 본 발명의 실시 예에 따른 가상화된 프로세서 동작의 일 예를 나타낸 도면이다.
도 4는 옥테온의 패킷 처리 모델을 나타낸 도면이다.
도 5 및 도 6은 각각 본 발명의 실시 예에 따른 메모리 가상화 방법의 일 예를 나타낸 도면이다.
도 7은 본 발명의 실시 예에 따른 가상 네트워크 구성 방법의 일 예를 나타낸 도면이다.
도 8은 본 발명의 다른 실시 예에 따른 네트워크 장비의 가상화 장치의 개략적인 도면이다.
1 is a diagram schematically illustrating a virtualization structure of network equipment according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating the hypervisor illustrated in FIG. 1. 3 is a diagram illustrating an example of a virtualized processor operation according to an embodiment of the present invention.
4 is a diagram illustrating a packet processing model of octeon.
5 and 6 are diagrams illustrating an example of a memory virtualization method according to an embodiment of the present invention.
7 is a diagram illustrating an example of a virtual network configuration method according to an embodiment of the present invention.
8 is a schematic diagram of a virtualization apparatus of network equipment according to another embodiment of the present invention.

아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. In the drawings, parts irrelevant to the description are omitted in order to clearly describe the present invention, and like reference numerals designate like parts throughout the specification.

명세서 및 청구범위 전체에서, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. Throughout the specification and claims, when a part is said to "include" a certain component, it means that it can further include other components, without excluding other components unless specifically stated otherwise.

이제 본 발명의 실시 예에 따른 네트워크 장비의 가상화 장치 및 방법에 대하여 도면을 참고로 하여 상세하게 설명한다. A virtual device and method for network equipment according to an embodiment of the present invention will now be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시 예에 따른 네트워크 장비의 가상화 구조를 개략적으로 나타낸 도면이다. 1 is a diagram schematically illustrating a virtualization structure of network equipment according to an embodiment of the present invention.

도 1을 참조하면, 네트워크 장비의 가상화 장치는 네트워크 장비(100) 및 네트워크 가상화 관리 모듈인 하이퍼바이저(200)를 포함한다. Referring to FIG. 1, a virtual device of a network device includes a network device 100 and a hypervisor 200 that is a network virtualization management module.

하이퍼바이저(200)는 네트워크 장비(100)의 상위에서 네트워크 장비(100)를 가상화하여 다수의 가상 머신(VM0~VMn)을 생성하고 관리하며, 가상 머신(VM0~VMn) 상에 하이퍼바이저 매니저(HM)와 다수의 사용자 프로그램을 탑재하여 가상 머신(VM0~VMn) 상에서 하이퍼바이저 매니저(HM)와 다수의 사용자 프로그램(UP1~UPn)을 구동시킬 수 있다. 이들 사용자 프로그램(UP1~UPn)은 네트워크 장비(100)의 기능을 수행한다. 예를 들어, 네트워크 장비(100)가 패킷 처리를 수행하는 장비인 경우에 사용자 프로그램(UP1~UPn) 중 적어도 하나는 패킷의 생성 및 처리를 수행하는 기능을 가진다. The hypervisor 200 creates and manages a plurality of virtual machines VM0 to VMn by virtualizing the network device 100 on the upper part of the network device 100, and hypervisor managers on the virtual machines VM0 to VMn. HM) and a plurality of user programs can be mounted to drive the hypervisor manager HM and a plurality of user programs UP1 to UPn on the virtual machines VM0 to VMn. These user programs UP1 to UPn perform the functions of the network equipment 100. For example, when the network device 100 is a device that performs packet processing, at least one of the user programs UP1 to UPn has a function of generating and processing a packet.

네트워크 장비(100)는 프로세서(110), 메모리(120) 및 네트워크 인터페이스(130)를 포함할 수 있다. 프로세서(110)는 중앙 처리 유닛(central processing unit, CPU)이나 기타 칩셋, 마이크로프로세서 등으로 구현될 수 있으며, 메모리(120)는 동적 랜덤 액세스 메모리(dynamic random access memory, DRAM), 램버스 DRAM(rambus DRAM, RDRAM), 동기식 DRAM(synchronous DRAM, SDRAM), 정적 RAM(static RAM, SRAM) 등의 RAM과 같은 매체로 구현될 수 있다. 네트워크 인터페이스(130)는 프로세서(110) 및/또는 메모리(120)가 네트워크에 접근할 수 있도록 한다.The network equipment 100 may include a processor 110, a memory 120, and a network interface 130. The processor 110 may be implemented as a central processing unit (CPU) or other chipset, microprocessor, or the like, and the memory 120 may include dynamic random access memory (DRAM) and rambus DRAM (rambus DRAM). DRAM, RDRAM), synchronous DRAM (synchronous DRAM, SDRAM), static RAM (RAM, etc.) may be implemented as a medium such as RAM. The network interface 130 allows the processor 110 and / or the memory 120 to access the network.

하이퍼바이저(200)는 가상 머신(VM0~VMn)이 하나의 CPU 코어를 공유하게 하기 위해 가상 머신(VM0~VMn)을 스케줄링하며, 사용자 프로그램(UP1~UPn)이 각각 할당된 메모리 영역에만 접근하도록 메모리(120)를 관리하며, 가상 네트워크 인터페이스를 통해 입출력되는 패킷을 물리 네트워크 인터페이스를 통해 처리하는 역할을 한다. The hypervisor 200 schedules the virtual machines VM0 to VMn so that the virtual machines VM0 to VMn share one CPU core, and the user programs UP1 to UPn each access only the allocated memory areas. It manages the memory 120 and processes the packets inputted and outputted through the virtual network interface through the physical network interface.

가상 머신(VM0~VMn)은 하이퍼바이저(200)가 가상화시킨 네트워크 장비이며, 가상 프로세서, 가상 메모리, 가상 네트워크 인터페이스 등으로 구성될 수 있다. 가상 머신(VM0~VMn)은 자신이 할당 받은 자원 외 다른 자원에는 접근할 수 없다. 이는 하이퍼바이저(200)가 자원에 대한 격리를 지원하기 때문이다. The virtual machines VM0 to VMn are network devices virtualized by the hypervisor 200, and may include virtual processors, virtual memories, virtual network interfaces, and the like. Virtual machines (VM0 ~ VMn) cannot access resources other than the resources allocated to them. This is because the hypervisor 200 supports isolation of resources.

하이퍼바이저 매니저(HM)는 가상 머신(VM0) 상에서 구동 되는 관리 프로그램으로, 하이퍼바이저(200)를 제어할 수 있는 인터페이스를 제공한다. 모니터와 키보드가 달려 있는 경우 키보드 입력과 모니터 출력을 통해, 키보드/모니터가 달려 있지 않은 경우 패킷 통신을 통해 하이퍼바이저(200)를 제어할 수 있다. The hypervisor manager HM is a management program that runs on the virtual machine VM0 and provides an interface for controlling the hypervisor 200. When the monitor and the keyboard is attached, the hypervisor 200 may be controlled through the keyboard input and the monitor output, and the packet communication when the keyboard / monitor is not attached.

사용자 프로그램(UP1~UPn)은 각각 가상 머신(VM1~VMn) 상에서 구동 되는 프로그램으로, 플랫폼 간 독립성이 제공된다. 예를 들어, 가상화된 네트워크 장비가 동일한 종류의 고수준 기계어를 지원하는 경우 사용자는 사용자 프로그램을 다시 컴파일 할 필요 없이, 한 번의 컴파일 만으로 다수의 플랫폼 상에서 구동시킬 수 있다. 또한, 사용자 프로그램(UP1~UPn)은 하이퍼바이저(200)가 제공하는 API(Application Programming Interface)를 통해 가상 머신(VM0~VMn)에 할당된 가상 자원에 접근할 수 있다. The user programs UP1 to UPn are programs running on the virtual machines VM1 to VMn, respectively, and provide platform independence. For example, if a virtualized network device supports the same kind of high-level machine language, users can run it on multiple platforms with just one compilation, without having to recompile the user program. In addition, the user programs UP1 to UPn may access virtual resources allocated to the virtual machines VM0 to VMn through an application programming interface (API) provided by the hypervisor 200.

도 2는 도 1에 도시된 하이퍼바이저를 나타낸 도면이다. FIG. 2 is a diagram illustrating the hypervisor illustrated in FIG. 1.

도 2를 참조하면, 하이퍼바이저(200)는 가상화부(210) 및 제어부(220)를 포함한다. Referring to FIG. 2, the hypervisor 200 includes a virtualization unit 210 and a control unit 220.

가상화부(210)는 네트워크 장비(100)의 프로세서(110), 메모리(120) 및 네트워크 인터페이스(130)를 가상화하여 가상 머신(VM0~VMn)을 생성하여서 가상화된 네트워크 장비를 제공한다. The virtualization unit 210 provides a virtualized network device by generating virtual machines VM0 to VMn by virtualizing the processor 110, the memory 120, and the network interface 130 of the network device 100.

제어부(220)는 가상화부(210)를 제어하며, 가상화된 네트워크 장비간 또는 가상화되지 않은 네트워크 장비간 연결을 제어하여 가상 네트워크를 구성한다. The controller 220 controls the virtualization unit 210 and controls the connection between the virtualized network equipment or the non-virtualized network equipment to configure the virtual network.

가상화부(210)는 하드웨어인 네트워크 장비(100) 바로 위에서 가상 머신(VM0~VMn)에게 완벽하게 분리된 가상의 하드웨어를 제공하여 가상화를 이루어준다. 따라서, 가상 머신(VM0~VMn)은 서로에게 영향을 미치지 않고 완벽하게 분리된 가상화 환경에서 자신만의 서비스를 제공할 수 있다.  The virtualization unit 210 performs virtualization by providing virtually isolated virtual hardware to the virtual machines VM0 to VMn directly on the network device 100 that is hardware. Therefore, the virtual machines VM0 to VMn can provide their own services in a completely separated virtualization environment without affecting each other.

또한 온전히 분리된 가상화 환경을 제공하기 때문에 서로 다른 사용자 프로그램을 가상 머신에서 사용할 수 있고 서로 다른 정책이나 다양한 네트워크 프로토콜을 제공할 수 있다. It also provides a completely separate virtualization environment, allowing different user programs to be used on virtual machines and providing different policies or different network protocols.

도 3은 본 발명의 실시 예에 따른 가상화된 프로세서 동작의 일 예를 나타낸 도면이다.3 is a diagram illustrating an example of a virtualized processor operation according to an embodiment of the present invention.

도 3을 참조하면, 가상화부(210)는 가상 머신(VM0~VMn)의 사용자 프로그램(UP1~UPn)에 대한 프로세스 스케줄링을 수행한다. 가상 머신(VM0~VMn)의 프로세서는 한 프로세스를 실행하다가 실행하던 프로세스의 상태를 저장하고, 또 다른 프로세스로 순간적으로 전환해서 실행할 수 있다. Referring to FIG. 3, the virtualization unit 210 performs process scheduling for the user programs UP1 to UPn of the virtual machines VM0 to VMn. The processors of the virtual machines (VM0 to VMn) can execute one process, save the state of the running process, and instantly switch to another process for execution.

가상화부(210)는 하나의 프로세서를 공유하여 다수의 사용자 프로그램(UP1~UPn)이 구동되는 경우에 사용자 프로그램(UP1~UPn)을 일정 시간 단위(M)로 전환하며, 사용자 프로그램(UP1~UPn)을 전환할 때 컨텍스트 스위칭(context switching)을 수행한다. 가상 머신(VM0~VMn)의 프로세서가 프로세스를 전환하는 순간에 실행 중인 프로세스의 상태 정보를 저장하고 전환할 프로세스의 상태 정보를 복구하는 것을 컨텍스트 스위칭(Context switching)이라 한다. 이때, 저장해야 할 상태 정보의 양이 줄어들수록 컨텍스트 스위칭의 비용은 이에 비례해 줄어든다. When the plurality of user programs UP1 to UPn are driven by sharing one processor, the virtualization unit 210 converts the user programs UP1 to UPn into a predetermined time unit M, and the user programs UP1 to UPn. ), Context switching is performed. At the moment when a processor of the virtual machines VM0 to VMn switches a process, storing the state information of the running process and restoring the state information of the process to be switched is called context switching. In this case, as the amount of state information to be stored decreases, the cost of context switching decreases in proportion to it.

예를 들어서, 사용자 프로그램(UP1)이 시간 단위(M) 내에 패킷 처리가 종료되는 경우에는 저비용으로 컨텍스트 스위칭을 수행할 수 있으며, 사용자 프로그램(UP2)이 시간 단위(M) 내에 패킷 처리가 종료되지 않는 경우에는 고비용의 컨텍스트 스위칭이 수행될 수 있다. For example, when the user program UP1 ends packet processing in the time unit M, context switching can be performed at low cost, and the user program UP2 does not end packet processing in the time unit M. If not, expensive context switching can be performed.

패킷 처리를 주로 하는 네트워크 장비의 경우 트랜젝션(Transaction)의 단위가 패킷 단위가 될 경우가 많다. 예를 들어, UDP 패킷 처리의 경우 네트워크 장비는 UDP 패킷이 들어올 때마다 해당 패킷을 수정한 다음 전송하며, 패킷 처리 이후엔 상태 정보를 저장할 필요가 없다. 반면 TCP 패킷의 경우 하나의 패킷을 처리한 이후에도 유지해야 할 상태 정보가 있지만, 패킷 처리 중 저장해야 할 상태 정보보다는 패킷 처리 이후에 저장해야 할 상태 정보가 줄어드는 것은 마찬가지이다. 즉, 네트워크 장비의 경우 패킷 단위로 컨텍스트 스위칭을 저비용으로 수행할 수 있는 시점이 있다. 따라서, 가상화부(210)는 패킷 단위를 이용하여 컨텍스트 스위칭을 위한 시간 단위를 패킷 단위로 설정하여 저비용의 컨텍스트 스위칭을 수행할 수 있도록 한다.In the case of network equipment mainly for packet processing, a transaction unit is often a packet unit. For example, in the case of UDP packet processing, the network equipment modifies and transmits the packet every time the UDP packet comes in, and there is no need to store state information after the packet processing. On the other hand, in the case of TCP packets, there is state information to be maintained even after processing one packet, but the same is true of state information to be stored after packet processing rather than state information to be stored during packet processing. That is, in the case of network equipment, there is a point where context switching can be performed at a low cost on a packet basis. Accordingly, the virtualization unit 210 may set a time unit for context switching using a packet unit to perform a low cost context switching.

도 4는 옥테온의 패킷 처리 모델을 나타낸 도면이다. 4 is a diagram illustrating a packet processing model of octeon.

도 4를 참조하면, 옥테온 네트워크 프로세서의 경우, 고속의 패킷 처리를 위해 메모리 상에서 패킷 큐(Q0~Qn)를 관리한다. 매 패킷 데이터의 입출력마다 네트워크 인터페이스로부터 패킷 데이터를 복사하는 방법은 비효율적이기 때문에 패킷 데이터의 입출력 시 네트워크 인터페이스는 패킷 데이터를 프로세서 즉, CPU에서 접근 가능한 메모리(Kernel space) 상에 바로 저장함으로써 패킷 데이터의 입출력 시간을 줄이고 있다. Referring to FIG. 4, the Octeon network processor manages packet queues Q0 to Qn in memory for high speed packet processing. Since the method of copying packet data from the network interface for each input / output of the packet data is inefficient, the network interface stores the packet data directly in the processor, ie, the kernel space accessible from the CPU. I / O time is reduced.

이러한 옥테온 네트워크 프로세서에서는 하나의 CPU에서 하나의 사용자 프로그램만 구동되기 때문에 사용자 프로그램은 메모리의 전 영역에 접근이 가능하며, 옥테온 네트워크 프로세서 가 저장해 놓은 패킷 데이터에 접근이 가능하다. In such an Octeon network processor, only one user program is run on one CPU, so the user program can access the entire area of the memory and access the packet data stored in the Octeon network processor.

옥테온 네트워크 프로세서와 달리, 도 1에 도시한 바와 같이, 하나의 CPU에서 여러 사용자 프로그램을 구동시킬 경우에 사용자 프로그램별로 패킷을 보호할 방법이 필요하다. Unlike the Octeon network processor, as shown in FIG. 1, there is a need for a method of protecting a packet for each user program when a plurality of user programs are driven by one CPU.

도 5 및 도 6은 각각 본 발명의 실시 예에 따른 메모리 가상화 방법의 일 예를 나타낸 도면이다. 5 and 6 are diagrams illustrating an example of a memory virtualization method according to an embodiment of the present invention.

도 5는 일반적인 운영체제에서 사용하는 방법으로, 가상화부(210)는 메모리(120)를 가상화하여 가상 메모리를 생성한다. 가상화부(210)는 가상 메모리의 영역을 패킷 데이터가 저장되는 메모리 영역(Kernel space)과 사용자 프로그램(UP1, UP2)이 사용하는 영역(User space)으로 나눌 수 있다. 또한, 영역(User space)은 사용자 프로그램(UP1)의 영역과 사용자 프로그램(UP2)의 영역으로 나눌 수 있다. 이때, 영역(User space)에서 패킷 데이터의 복사는 필수적이다. 1500 옥텟 크기의 패킷 데이터를 복사할 경우 750MHz로 동작하는 옥테온 5860 네트워크 프로세서에서 9.26us가 소진되는데, 동일한 패킷 데이터를 단순 포워딩할 경우 4.3us가 소진되기 때문에 1 번의 메모리 복사는 패킷 처리의 효율성을 315% 정도 감소시킨다.5 is a method used in a general operating system, the virtualization unit 210 generates a virtual memory by virtualizing the memory 120. The virtualization unit 210 may divide the virtual memory area into a memory area (Kernel space) where packet data is stored and an area (User space) used by the user programs UP1 and UP2. In addition, the user space may be divided into an area of the user program UP1 and an area of the user program UP2. In this case, copying of packet data is essential in the user space. Copying 1500 octets of packet data consumes 9.26us on an Octeon 5860 network processor operating at 750MHz, and one memory copy reduces packet processing efficiency because 4.3us is consumed when simple forwarding the same packet data. Reduce by 315%.

특히, 사용자 프로그램(UP1, UP2)을 C나 어셈블러와 같은 언어로 작성하면 사용자가 포인터를 사용해 하드웨어의 다양한 영역에 접근이 가능하기 때문에 사용자 프로그램(UP1, UP2) 별로 영역을 나누어 보호하는 것이 필수적이다. 하지만, 사용자 프로그램(UP1, UP2)을 자바(Java), 씨샵(C#)과 같이 포인터를 사용하지 않는 언어로 작성한 경우 사용자 프로그램(UP1, UP2)은 할당 된 메모리만 접근할 수 있게 된다. 따라서, 도 6에 도시한 바와 같이, 포인터를 사용하지 않는 언어로 작성된 사용자 프로그램(UP1, UP2)은 포인터가 없기 때문에 할당된 영역 외의 메모리에 접근하는 것이 원천적으로 불가능하며, 따라서 가상화부(210)는 메모리 영역을 나누어 보호할 필요도 없게 된다. In particular, if the user programs UP1 and UP2 are written in a language such as C or assembler, it is essential to protect the area by user programs UP1 and UP2 because the user can access various areas of the hardware using a pointer. . However, if the user programs UP1 and UP2 are written in a language that does not use pointers such as Java and C #, the user programs UP1 and UP2 can access only the allocated memory. Therefore, as shown in FIG. 6, since the user programs UP1 and UP2 written in a language that does not use a pointer do not have a pointer, it is not possible to access a memory outside the allocated area, and thus the virtualization unit 210 may not be used. There is no need to protect the memory area.

포인터를 사용하지 않는 언어의 특징은 고수준 기계어를 제공한다는 것이다. 바이트코드, 중간코드라고도 불리는 이 고수준 기계어는 보통 플랫폼 독립적이기 때문에 사용자 프로그램(UP1~UPm)은 바이너리 수준에서 플랫폼 간 독립성을 갖는다. A feature of languages that do not use pointers is that they provide high-level machine language. This high-level machine language, also called bytecode and intermediate code, is usually platform-independent, so user programs (UP1-UPm) are platform-independent at the binary level.

이와 같이, 사용자 프로그램(UP1~UPm)은 플랫폼 독립적이기 때문에 단말 네트워크 장비의 하나인 사용자 컴퓨터(Personal Computer, PC)에서 동일한 종류의 고수준 기계어를 지원할 경우 사용자 프로그램은 PC에서도 구동이 가능하다. 따라서, 사용자는 개발 툴을 이용해 사용자 프로그램을 컴파일 하고, PC 상에서 구동 중인 하이퍼바이저에 로딩해 수행시켜볼 수 있다. PC는 네트워크 프로세서와는 다르게 고속의 패킷 처리가 어렵기 때문에 사용자 프로그램을 이용해 PC 상에서 고속 패킷 처리는 쉽지 않지만, PC 상에서 사용자 프로그램이 제대로 동작하는지 디버그 및 테스트를 한 후 컴파일 된 사용자 프로그램을 변환 없이 네트워크 프로세서에 로딩 시켜 고속 패킷 처리를 할 수 있다. As described above, since the user programs UP1 to UPm are platform independent, the user program can be driven on a PC if the same type of high-level machine language is supported by a personal computer (PC) which is one of the terminal network equipment. Therefore, the user can compile the user program using the development tool, load it into the hypervisor running on the PC, and execute it. Unlike a network processor, a PC is difficult to process high-speed packets, so it is not easy to process a high-speed packet on a PC using a user program.However, after debugging and testing that a user program works properly on a PC, the compiled user program is not converted into a network. Can be loaded on the processor for high-speed packet processing.

PC 상에서 구동되는 하이퍼바이저는 단말 네트워크 장치로써도 사용할 수 있다. PC의 경우 기본적으로 TCP/IP, UDP/IP 등과 같이 표준화된 패킷만을 전송할 수 있지만, 본 발명의 실시 예에 따른 하이퍼바이저를 사용할 경우 사용자의 PC에서 손쉽게 사용자가 원하는 형태의 패킷을 전송 하는 것이 가능해진다. A hypervisor running on a PC can also be used as a terminal network device. In the case of a PC, only standardized packets such as TCP / IP and UDP / IP can be transmitted by default, but when using a hypervisor according to an exemplary embodiment of the present invention, it is possible to easily transmit a packet of a desired type from a user's PC. Become.

또한, 사용자는 배포 툴을 이용해서 네트워크 프로세서 상에서 구동 중인 하이퍼바이저에 사용자 프로그램을 배포할 수도 있다. 사용자는 사용자 프로그램을 네트워크 프로세서 상에서 동작케 함으로써 고속으로 패킷 처리를 하는 가상의 네트워크를 구성할 수 있다. 예를 들어서, 서로 다른 사용자가 사용자 프로그램(UP1, UP2)를 각각의 네트워크 장비에 배치하였을 경우에, 각 사용자는 물리적인 네트워크 자원을 공유하지만 논리적으로 분리되어 있는 가상 네트워크를 구성할 수 있다. The user can also distribute the user program to a hypervisor running on a network processor using a deployment tool. A user can configure a virtual network that performs packet processing at high speed by allowing a user program to run on a network processor. For example, when different users have placed user programs UP1 and UP2 in their respective network equipment, each user can configure a virtual network that shares physical network resources but is logically separated.

일반적으로, 가상 네트워크를 구성하기 위해서는 네트워크를 구성하고 있는 모든 네트워크 장비가 가상화되어 있어야 한다. 예를 들어, A 네트워크 장비와 B 네트워크 장비가 연결되어 있고, B 네트워크 장비와 C 네트워크 장비가 연결되어 있는 네트워크에서 B 네트워크 장비가 가상화되어 있지 않을 경우, A 네트워크 장비와 C 네트워크 장비는 통신이 불가능하다. 대표적인 경우가 가상 네트워크 안에서 비표준 패킷을 생성하여 전송하는 경우가 있다. A 네트워크 장비와 C 네트워크 장비는 비표준 패킷을 처리할 수 있는 사용자 프로그램이 구동 중인 반면에 B 네트워크 장비는 비표준 패킷을 처리할 수 없기 때문에 A, B, C 네트워크 장비간 가상 네트워크의 구성이 불가능해진다. In general, in order to construct a virtual network, all network equipment constituting the network must be virtualized. For example, if network A and network B are connected, and network B is not virtualized in the network where network B and network C are connected, network A and network C cannot communicate. Do. A typical case is to generate and transmit a nonstandard packet in a virtual network. A network device and C network device are running a user program capable of processing non-standard packets, while the B network device cannot process non-standard packets, making it impossible to construct a virtual network between A, B, and C network devices.

도 7은 본 발명의 실시 예에 따른 가상 네트워크 구성 방법의 일 예를 나타낸 도면이다. 7 is a diagram illustrating an example of a virtual network configuration method according to an embodiment of the present invention.

도 7을 참조하면, 인접해 있는 두 개의 가상화된 네트워크 장비(10, 20)에 사용자 프로그램을 탑재한 후 표준이 아닌 다른 형태의 패킷을 전송하고자 한다면 두 가상 네트워크 장비(10, 20) 간에는 이더넷 통신만을 하기 때문에 패킷을 주고 받는데 전혀 문제가 되지 않는다. 하지만, 가상화 되지 않고 표준화된 패킷만을 전송할 수 있는 네트워크 장비(30)를 사이에 두고 있을 경우 비표준 패킷을 직접 전송할 수 없게 된다. 이러한 경우, 제어부(220)는 터널을 사용함으로써 표준 패킷 속에 비표준 패킷을 담아 전송하는 방법을 사용한다. Referring to FIG. 7, if a user program is mounted on two adjacent virtualized network devices 10 and 20 and then a packet other than the standard is to be transmitted, Ethernet communication between the two virtual network devices 10 and 20 may be performed. It does nothing to send and receive packets at all. However, non-virtualized non-virtualized packets can be sent directly to non-standard packets if there is a network device 30 between them. In this case, the controller 220 uses a method of transmitting a non-standard packet in a standard packet by using a tunnel.

즉, 가상화된 네트워크 장비(20)의 제어부(220)는 인접해 있는 가상화된 네트워크 장비(10)로 비표준 패킷을 전송할 경우는 비표준 패킷을 그대로 전송하고, 네트워크 장비(30) 또는 네트워크 장비(30)를 사이에 두고 원격의 가상화된 네트워크 장비(40)와 통신을 하는 경우에 IP(Internet Protocol)와 같은 표준 패킷에 사용자의 비표준 패킷을 인캡슐레이션(encapsulation)하여 전송한다. That is, the controller 220 of the virtualized network device 20 transmits the non-standard packet as it is, and transmits the non-standard packet as it is to the adjacent virtualized network device 10, and the network device 30 or the network device 30. In the case of communicating with the remote virtualized network device 40 in between, the user's non-standard packet is encapsulated in a standard packet such as IP (Internet Protocol) and transmitted.

반면, 가상화된 네트워크 장비(20)의 제어부(220)는 인캡슐레이션된 패킷을 수신한 경우에 디캡슐레이션(decapsulation)하여 표준 패킷 안에 있는 비표준 패킷 부분만을 해당 사용자 프로그램으로 전달한다. 이렇게 하면, 사용자 프로그램의 수정 없이 인접 및 원격의 프로그램들간 통신이 가능해진다. On the other hand, the control unit 220 of the virtualized network equipment 20, when receiving the encapsulated packet decapsulation (delivery) and delivers only the non-standard packet portion in the standard packet to the user program. This enables communication between adjacent and remote programs without modification of the user program.

이상에서 설명한 본 발명의 실시 예에 따른 하이퍼바이저의 적어도 일부 기능은 하드웨어로 구현되거나 하드웨어에 결합된 소프트웨어로 구현될 수 있다. 아래에서는 하이퍼바이저가 네트워크 장비에 결합된 실시 예에 대해서 도 8을 참고로 하여 상세하게 설명한다. At least some of the functions of the hypervisor according to the embodiment of the present invention described above may be implemented in hardware or software coupled to the hardware. Hereinafter, an embodiment in which a hypervisor is coupled to a network device will be described in detail with reference to FIG. 8.

도 8은 본 발명의 다른 실시 예에 따른 네트워크 장비의 가상화 장치의 개략적인 도면으로, 도 2 내지 도 7을 참고로 하여 설명한 가상화부(210) 및 제어부(220)의 기능 중 적어도 일부를 수행하는 데 사용할 수 있는 시스템을 나타낸다. 또한, 이 시스템은 도 1의 네트워크 장비(100)일 수도 있다.FIG. 8 is a schematic diagram of a virtualization apparatus of network equipment according to another embodiment of the present disclosure, which performs at least some of the functions of the virtualization unit 210 and the control unit 220 described with reference to FIGS. 2 to 7. Represents a system that can be used to The system may also be the network equipment 100 of FIG. 1.

도 8을 참고하면, 가상화 장치는 프로세서(810), 메모리(820), 저장 장치(830), 입출력(input/output, I/O) 인터페이스(840) 및 네트워크 인터페이스(850)를 포함한다. Referring to FIG. 8, the virtualization apparatus includes a processor 810, a memory 820, a storage device 830, an input / output (I / O) interface 840, and a network interface 850.

프로세서(810)는 CPU나 기타 칩셋, 마이크로프로세서 등으로 구현될 수 있으며, 메모리(820)는 DRAM, RDRAM, SDRAM, SRAM 등의 RAM과 같은 매체로 구현될 수 있다. 저장 장치(830)는 하드 디스크(hard disk), CD-ROM(compact disk read only memory), CD-RW(CD rewritable), DVD-ROM(digital video disk ROM), DVD-RAM, DVD-RW 디스크, 블루레이(blu-ray) 디스크 등의 광학 디스크, 플래시 메모리, 다양한 형태의 RAM과 같은 영구 또는 휘발성 저장 장치로 구현될 수 있다. 또한, I/O 인터페이스(840)는 프로세서(810) 및/또는 메모리(820)가 저장 장치(830)에 접근할 수 있도록 하며, 네트워크 인터페이스(850)는 프로세서(810) 및/또는 메모리(820)가 네트워크에 접근할 수 있도록 한다. The processor 810 may be implemented as a CPU or other chipset, a microprocessor, or the like, and the memory 820 may be implemented as a medium such as RAM such as DRAM, RDRAM, SDRAM, or SRAM. The storage device 830 may include a hard disk, a compact disk read only memory (CD-ROM), a CD rewritable (CD-RW), a digital video disk ROM (DVD-ROM), a DVD-RAM, and a DVD-RW disk. The optical disk may be implemented as a permanent or volatile storage device such as an optical disk such as a blu-ray disk, a flash memory, or various types of RAM. In addition, I / O interface 840 allows processor 810 and / or memory 820 to access storage 830, and network interface 850 provides processor 810 and / or memory 820. ) Can access the network.

이 경우, 프로세서(810)는 가상화부(210) 및 제어부(220)의 기능의 적어도 일부 기능을 구현하기 위한 프로그램 명령을 메모리(820)에 로드시켜서 도 1 내지 도 7을 참고로 하여 설명한 동작이 수행되도록 제어할 수 있다. 그리고 이러한 프로그램 명령은 저장 장치(830)에 저장되어 있을 수 있으며, 또는 네트워크로 연결되어 있는 다른 시스템에 저장되어 있을 수 있다.In this case, the processor 810 loads a program command for implementing at least some functions of the functions of the virtualization unit 210 and the control unit 220 into the memory 820 to perform the operation described with reference to FIGS. 1 to 7. Can be controlled to be performed. The program command may be stored in the storage device 830 or may be stored in another system connected to a network.

본 발명의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현되는 것은 아니며, 본 발명의 실시 예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시 예의 기재로부터 본 발명이 속하는 기술 분야의 전문가라면 쉽게 구현할 수 있는 것이다. An embodiment of the present invention is not implemented only through the above-described apparatus and / or method, but may be implemented through a program for realizing a function corresponding to the configuration of the embodiment of the present invention or a recording medium on which the program is recorded. Such an implementation can be easily implemented by those skilled in the art to which the present invention pertains based on the description of the above-described embodiments.

이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리 범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리 범위에 속하는 것이다.Although the embodiments of the present invention have been described in detail above, the scope of the present invention is not limited thereto, and various modifications and improvements of those skilled in the art using the basic concepts of the present invention defined in the following claims are also provided. It belongs to the scope of rights.

Claims (10)

네트워크 장비, 그리고
상기 네트워크 장비를 가상화하여 적어도 하나의 가상화된 네트워크 장비를 제공하며, 가상화되지 않은 네트워크 장비가 상기 가상화된 네트워크 장비와 패킷의 목적지 사이에 있는 경우에 상기 패킷을 인캡슐레이션하여 전송하는 네트워크 가상화 관리 모듈
을 포함하는 가상화 장치.
Network equipment, and
A network virtualization management module for providing at least one virtualized network device by virtualizing the network device, and encapsulating and transmitting the packet when a non-virtualized network device is between the virtualized network device and a destination of a packet.
Virtualization device comprising a.
제1항에 있어서,
상기 가상화된 네트워크 장비는 포인터를 사용하지 않는 언어로 작성되고 기계어로 컴파일된 사용자 프로그램을 포함하는 가상화 장치.
The method of claim 1,
The virtualized network device includes a user program written in a language that does not use a pointer and compiled in machine language.
제1항에 있어서,
상기 네트워크 가상화 관리 모듈은 정해진 시간 단위로 컨텍스트 스위칭을 수행하고, 상기 시간 단위를 패킷 단위로 설정하는 가상화 장치.
The method of claim 1,
The network virtualization management module performs context switching on a predetermined time unit, and sets the time unit on a packet basis.
제1항 내지 제3항 중 어느 한 항에 있어서,
상기 네트워크 장비는 패킷 처리를 하는 라우터를 포함하는 가상화 장치.
4. The method according to any one of claims 1 to 3,
The network device includes a router for packet processing.
가상화 장치에서 네트워크 장비를 가상화하는 방법에 있어서,
상기 네트워크 장비를 가상화하여 적어도 하나의 가상화된 네트워크 장비를 제공하는 단계,
상기 적어도 하나의 가상화된 네트워크 장비를 스케줄링하는 단계,
상기 스케줄링에 따라서 상기 적어도 하나의 가상화된 네트워크 장비의 프로그램을 실행시키는 단계, 그리고
설정된 시간 단위로 컨텍스트 스위칭을 수행하는 단계를 포함하는 가상화 방법.
In a method for virtualizing network equipment in a virtualization device,
Virtualizing the network equipment to provide at least one virtualized network equipment;
Scheduling the at least one virtualized network device,
Executing a program of the at least one virtualized network device in accordance with the scheduling, and
Virtualization method comprising the step of performing context switching in a set time unit.
제5항에 있어서,
상기 프로그램은 패킷 처리를 수행하며,
상기 수행하는 단계는,
상기 시간 단위를 패킷 단위로 설정하는 단계를 포함하는 가상화 방법.
The method of claim 5,
The program performs packet processing,
The step of performing,
And setting the time unit in packet units.
제5항에 있어서,
상기 프로그램은 포인터를 사용하지 않는 언어로 작성되고 기계어로 컴파일된 것인 가상화 방법.
The method of claim 5,
Wherein said program is written in a language that does not use pointers and is compiled in machine language.
제5항에 있어서,
상기 프로그램은 패킷 처리를 수행하며,
처리된 패킷을 인캡슐레이션하여 전송하는 단계
를 더 포함하는 가상화 방법.
The method of claim 5,
The program performs packet processing,
Encapsulating the processed packet and transmitting it
Virtualization method further comprising.
제8항에 있어서,
상기 전송하는 단계는,
가상화되지 않은 네트워크 장비와 통신하는 경우에 상기 패킷을 인캡슐레이션하는 단계를 포함하는 가상화 방법.
The method of claim 8,
The transmitting step,
Encapsulating the packet when communicating with a non-virtualized network device.
제8항에 있어서,
인캡슐레이션된 패킷을 수신한 경우에 수신한 패킷을 디캡슐레이션하여 상기 프로그램으로 전달하는 단계
를 더 포함하는 가상화 방법.
The method of claim 8,
Decapsulating the received packet and forwarding the received packet to the program when the encapsulated packet is received.
Virtualization method further comprising.
KR1020110022732A 2010-03-15 2011-03-15 Apparatus and method for virtualizing of network device KR20110103889A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/048,654 US8862714B2 (en) 2010-03-15 2011-03-15 Apparatus and method for virtualizing of network device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020100022813 2010-03-15
KR20100022813 2010-03-15

Publications (1)

Publication Number Publication Date
KR20110103889A true KR20110103889A (en) 2011-09-21

Family

ID=44954934

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110022732A KR20110103889A (en) 2010-03-15 2011-03-15 Apparatus and method for virtualizing of network device

Country Status (1)

Country Link
KR (1) KR20110103889A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101481757B1 (en) * 2014-07-30 2015-01-21 주식회사 파이오링크 Method, apparatus and computer-readable recording medium for processing flow using dynamic flow distriburion
US10789083B2 (en) 2015-11-17 2020-09-29 Electronics And Telecommunications Research Institute Providing a virtual desktop service based on physical distance on network from the user terminal and improving network I/O performance based on power consumption

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101481757B1 (en) * 2014-07-30 2015-01-21 주식회사 파이오링크 Method, apparatus and computer-readable recording medium for processing flow using dynamic flow distriburion
US10789083B2 (en) 2015-11-17 2020-09-29 Electronics And Telecommunications Research Institute Providing a virtual desktop service based on physical distance on network from the user terminal and improving network I/O performance based on power consumption

Similar Documents

Publication Publication Date Title
US8862714B2 (en) Apparatus and method for virtualizing of network device
Zhuo et al. Slim:{OS} Kernel Support for a {Low-Overhead} Container Overlay Network
Bratterud et al. IncludeOS: A minimal, resource efficient unikernel for cloud services
EP3857364B1 (en) Multi-tenant support on virtual machines in cloud computing networks
Ge et al. OpenANFV: Accelerating network function virtualization with a consolidated framework in openstack
CN102291428B (en) Method for network interface sharing among multiple virtual machines
US7840398B2 (en) Techniques for unified management communication for virtualization systems
RU2406113C2 (en) Systems and methods for dual-mode virtualisation of real and idealised hardware devices
US8635614B2 (en) Method for providing location independent dynamic port mirroring on distributed virtual switches
US8381209B2 (en) Moveable access control list (ACL) mechanisms for hypervisors and virtual machines and virtual port firewalls
CN112671578B (en) SRIOV virtual network configuration method and related device
US11301562B2 (en) Function execution based on data locality and securing integration flows
JP2015062282A (en) Detection and handling of virtual network appliance failures
US20150370582A1 (en) At least one user space resident interface between at least one user space resident virtual appliance and at least one virtual data plane
Yasukata et al. HyperNF: Building a high performance, high utilization and fair NFV platform
Mbongue et al. Fpgavirt: A novel virtualization framework for fpgas in the cloud
US20230094120A1 (en) Runtime customization of nodes for network function deployment
EP4199457A1 (en) Packet drop monitoring in a virtual router
Tarafdar et al. Building the infrastructure for deploying FPGAs in the cloud
Ren et al. Residency-aware virtual machine communication optimization: Design choices and techniques
CN111522624B (en) Message forwarding performance elastic expansion system and expansion method based on virtualization technology
KR20110103889A (en) Apparatus and method for virtualizing of network device
Ribiere Emulation of obsolete hardware in open source virtualization software
KR20220104241A (en) Network working methods, devices, equipment and storage media
CN115033348A (en) Method, system, equipment and medium for unified management of virtual machines and containers

Legal Events

Date Code Title Description
A201 Request for examination