KR20180107706A - 계층적 네트워크에서 다중코어를 이용한 패킷 처리 방법 및 그 장치 - Google Patents

계층적 네트워크에서 다중코어를 이용한 패킷 처리 방법 및 그 장치 Download PDF

Info

Publication number
KR20180107706A
KR20180107706A KR1020170182594A KR20170182594A KR20180107706A KR 20180107706 A KR20180107706 A KR 20180107706A KR 1020170182594 A KR1020170182594 A KR 1020170182594A KR 20170182594 A KR20170182594 A KR 20170182594A KR 20180107706 A KR20180107706 A KR 20180107706A
Authority
KR
South Korea
Prior art keywords
network
packet
overlay
nic
flow
Prior art date
Application number
KR1020170182594A
Other languages
English (en)
Other versions
KR102091152B1 (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 정기웅
Publication of KR20180107706A publication Critical patent/KR20180107706A/ko
Application granted granted Critical
Publication of KR102091152B1 publication Critical patent/KR102091152B1/ko

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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Landscapes

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

Abstract

계층적 네트워크에서 다중코어를 이용한 패킷 처리 방법 및 그 장치가 개시된다. 패킷 처리 장치는 제1 네트워크로부터 패킷을 수신하면, 패킷에 인캡슐레이션된 적어도 하나 이상의 제2 네트워크의 계층정보를 파악하고, 계층정보를 이용하여 오버레이 플로우를 식별하고, 각 네트워크별로 버레이 플로우 단위로 스케줄링한다.

Description

계층적 네트워크에서 다중코어를 이용한 패킷 처리 방법 및 그 장치{Method and apparatus for processing packet using multi-core in hierarchical networks}
본 발명은 복수의 네트워크가 계층적으로 존재하는 환경에서 다중 코어를 이용하여 패킷을 병렬 처리하는 방법 및 그 장치에 관한 것이다.
최근 인터넷을 통하는 통신량이 급증하고, 이에 따라 서버의 대용량화, 고속화가 빠르게 진행되고 있다. 한편, 서버의 대용량화에 따르는 물리적 부피 증가를 해소하고 비용 절감 등을 꾀하기 위하여 서버의 가상화가 가속되고 있다. 서버의 대용량화, 고속화, 가상화에 따라 물리적 네트워크로부터 수신되는 가상화 환경에서 생성된 데이터 패킷을 포함하는 대용량 데이터에 대한 병렬처리의 고효율화가 필수적으로 요구되고 있으며, 가상화 서버에서 가상스위치 기능이 수행될 때 서버의 부하 증가에 기인하는 성능 저하가 야기됨에 따라 가상스위치 기능에 따르는 서버의 부하를 물리적 네트워크 인터페이스 장치로 이전하는 기술 개념 실현이 요구되고 있다.
종래의 가상화 환경을 지원하는 네트워크 인터페이스 카드(NIC, Network Interface Card)의 경우, 가상 머신 단위로 큐를 생성 관리하여 NIC와 서버의 가상 스위치 사이의 병목 현상을 감소시키는 시도가 있다. 그러나 종래의 경우에는 수신된 데이터 패킷의 병렬처리를 위한 프로세서 할당 및 큐의 재분배 시 가상 머신 단위로만 이루어진다. 즉, 가상화 환경의 물리적 계층만이 고려된 프로세서 할당이 이루어진다. 따라서 특정 가상 머신에 대한 데이터 패킷이 많은 경우에 특정 프로세서의 부하가 가중되는 문제점이 있다.
특허공개번호 제2013-0108609호 특허공개번호 제2011-0070772호
본 발명이 이루고자 하는 기술적 과제는, 복수의 네트워크가 계층적으로 존재하는 환경에서 플로우 친화도(flow affinity)를 고려하여 패킷 병렬 처리의 효율을 향상시킬 수 있는 패킷 처리 방법 및 그 장치를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명의 실시 예에 따른 패킷 처리 방법의 일 예는, 제1 네트워크로부터 패킷을 수신하는 단계; 상기 패킷에 인캡슐레이션된 적어도 하나 이상의 제2 네트워크의 계층정보를 파악하는 단계; 상기 계층정보를 이용하여 오버레이 플로우를 식별하는 단계; 및 각 네트워크별로 상기 오버레이 플로우 단위로 스케줄링하는 단계;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 본 발명의 실시 예에 따른 패킷 처리 장치의 일 예는, 제1 네트워크로부터 패킷을 수신하는 패킷수신부; 상기 패킷에 인캡슐레이션된 적어도 하나 이상의 제2 네트워크의 계층정보를 파악하고, 상기 계층정보를 이용하여 오버레이 플로우를 식별하는 패킷분석부; 및 각 네트워크별로 상기 오버레이 플로우 단위로 스케줄링하는 스케줄러;를 포함한다.
본 발명에 따르면, 복수의 가상 머신을 포함하는 가상화 환경을 구비한 서버의 부하가 감소된다. 또한, 오버레이 플로우 단위로 패킷을 처리하므로 프로세서 친화도를 높여 병렬 프로세싱의 효율을 높인다. 또한, 가상스위치의 부하를 네트워크 인터페이스 카드로 분산시켜 오버레이 네트워크 프로세싱의 효율을 높일 수 있다. 또한, 오버레이 플로우 단위로 큐잉하여 처리하므로 가상 머신 종단간 오버레이 플로우 단위의 QoS(Quality of Service)가 보장되는 스케일러블한 통신 처리를 구현할 수 있다. 또한, 패킷을 오버레이 플로우 단위로 구분하므로 물리 네트워크와 오버레이 네트워크의 프로세서 할당을 한 번의 동작 구조로 실현하여 프로세싱 효율을 높일 수 있다.
도 1은 본 발명이 적용되는 계층적 네트워크의 일 예를 도시한 도면,
도 2는 본 발명의 실시 예에 따른 패킷 처리 장치를 포함하는 전체 시스템의 개략적인 구조를 도시한 도면,
도 3은 본 발명의 실시 예에 따른 NIC의 자원을 동적으로 설정하는 방법의 일 예를 도시한 도면,
도 4는 본 발명의 실시 예에 따른 NIC의 구성의 일 예를 도시한 도면,
도 5는 본 발명의 실시 예에 따른 NIC의 오버레이 플로우 기반 큐 할당의 일 예를 도시한 도면,
도 6은 본 발명에 따른 NIC의 오버레이 플로우 기반 큐 할당의 다른 일 예를 도시한 도면,
도 7 및 도 8은 본 발명에 사용되는 패킷의 일 예를 도시한 도면,
도 9는 본 발명의 실시 예에 따른 가상화 환경의 패킷 처리 방법의 일 예를 도시한 흐름도,
도 10은 본 발명의 실시 예에 따른 패킷 처리 장치의 일 예를 도시한 도면, 그리고,
도 11은 본 발명의 실시 예에 따른 패킷 처리 장치의 다른 예를 도시한 도면이다.
이하에서, 첨부된 도면들을 참조하여 본 발명의 실시 예에 따른 계층적 네트워크에서 다중코어를 이용한 패킷 처리 방법 및 그 장치에 대해 상세히 설명한다.
도 1은 본 발명이 적용되는 계층적 네트워크의 일 예를 도시한 도면이다.
도 1을 참조하면, 계층적 네트워크는 복수의 물리적 노드(102)로 구성된 제1 네트워크(100)와 복수의 논리적 노드(112,122)로 구성된 제2 내지 제 N 네트워크(110,120)를 포함한다. 제1 네트워크(100)는 물리적 서버로 구성된 물리 네트워크(physical network)이고, 제2 내지 제N 네트워크(110,120)는 가상화 환경(virtualization environment)을 구성하는 오버레이 네트워크(overlay network)일 수 있다. 예를 들어, 가상화 환경이 제2 네트워크(110)만으로 구성된 경우에, 제2 네트워크(110)는 제1 네트워크(100)의 각 노드(102)인 서버에 구현된 적어도 하나 이상의 가상 머신(Virtual Machine)으로 이루어진 오버레이 네트워크일 수 있다.
제N 네트워크(120)에 존재하는 노드(122) 사이에 전송되는 패킷에는 제N 네트워크(120)부터 제1 네트워크(100)의 계층정보가 순차적으로 인캡슐레이션(encapsulation)된다. 제1 네트워크(100)의 노드(102)는 제1 네트워크(100)의 계층 정보를 이용하여 상호 통신을 수행하고, 제2 네트워크(110)의 노드(112)는 제2 네트워크(110)의 계층정보, 제N 네트워크의 노드(122)는 제N 네트워크(122)의 계층정보를 이용하여 상호 통신을 수행한다. 각 네트워크 계층마다 각 네트워크의 계층정보를 이용하여 플로우를 식별할 경우에, 패킷이 각 네트워크 계층별로 서로 다른 플로우로 식별될 수 있다. 이에 본 실시 예는 패킷이 전송되는 전체 네트워크 계층의 계층정보를 이용하여 식별된 하나의 공통된 오버레이 플로우를 기초로 제1 네트워크(100)부터 제N 네트워크(120)까지 일관된 프로세서 할당을 하여 병렬 프로세싱 효율을 높인다.
도 2는 본 발명의 실시 예에 따른 패킷 처리 장치를 포함하는 전체 시스템의 개략적인 구조를 도시한 도면이다.
도 2를 참조하면, 패킷 처리 장치(200)는 네트워크 인터페이스 카드(NIC)로 구현될 수 있다. 다만, 패킷 처리 장치(200)는 네트워크 인터페이스 카드에 반드시 한정되는 것은 아니며, 서버(220) 내외에서 하드웨어 또는 소프트웨어 등의 다양한 형태로 구현될 수 있다. 예를 들어, 패킷 처리 장치(200)는 서버 내 하드웨어 모듈 또는 가상 머신과 같은 논리적 모듈로 구현될 수 있다. 또 다른 예로, 패킷 처리 장치(200)의 일부 구성은 NIC에 구현되고 나머지 일부는 서버 내 하드웨어 모듈 또는 논리적 모듈로 구현될 수 있다. 이하, 패킷 처리 장치(200)를 NIC로 표현한다.
서버(220)는 복수 개의 가상 머신(250,252,254)과 가상 스위치(240) 및 연결슬롯(230)을 포함한다. 서버(220) 내에 복수 개의 가상 머신(250,252,254)으로 이루어진 적어도 하나 이상의 오버레이 네트워크가 존재할 수 있다. 가상 스위치(240)는 NIC(200)를 통해 수신한 패킷을 목적지 가상 머신으로 전달한다. 연결슬롯(230)은 NIC(200)와 서버(220)를 연결하는 인터페이스이며, 일 예로 PCIe(Peripheral Component Interconnect Express)로 구현될 수 있다. 이 경우, NIC(200)는 PCIe에 탈부착될 수 있다.
NIC(200)는 물리 네트워크(210)로부터 수신한 패킷에 대해 가상화 환경의 적어도 하나 이상의 오버레이 네트워크의 계층 정보를 기초로 트래픽 특성을 분석하여 오버레이 플로우를 식별하고, 식별한 오버레이 플로우를 다중 프로세서를 통해 병렬 처리한다. 여기서 패킷은 종래의 다양한 터널링 기법 등을 이용하여 물리 네트워크의 패킷에 가상화 환경의 적어도 하나 이상의 오버레이 네트워크의 계층 정보를 인캡슐레이션한 패킷이다. 오버레이 플로우는 인캡슐레이션된 적어도 하나 이상의 오버레이 네트워크의 계층 정보를 이용하여 분류된 특정 트래픽을 의미한다. 오버레이 플로우는 실시 예에 따라 물리 네트워크의 계층 정보와 적어도 하나 이상의 오버레이 네트워크의 계층 정보를 함께 이용하여 식별될 수 있다. 오버레이 플로우는 기 설정된 여러 정책에 따라 분류되고 식별될 수 있다. 예를 들어, 오버레이 플로우는 가상 머신으로 구성된 오버레이 네트워크의 TCP(Transmission Control Protocol)를 기준으로 분류될 수 있다. 또한, 오버레이 네트워크가 복수의 계층으로 존재하는 경우, 즉, 하나의 오버레이 네트워크가 또 다른 오버레이 네트워크를 포함하는 경우에, 오버레이 플로우는 각 오버레이 네트워크의 계층 정보를 모두 고려하여 분류되고 식별될 수 있다.
NIC(200)는 수신한 패킷을 병렬 처리하기 위한 복수 개의 큐와 복수 개의 프로세서들을 포함하며, 큐의 크기와 개수 등은 고정되거나, 서버(200)의 가상화 환경이나 프로세서들의 부하 등에 따라 동적으로 변경될 수 있다.
본 실시 예는 NIC(200)가 물리 네트워크(210)와 연결된 경우를 설명하고 있으나, NIC(200)는 도 1에서 살핀 제2 내지 제N 네트워크의 어느 하나와 연결될 수 있다. 예를 들어, NIC(200)가 제2 네트워크의 패킷을 수신하면, NIC(200)는 해당 패킷에 인캡슐레이션된 제3 네트워크 등의 계층 정보를 파악하여 오버레이 플로우를 식별할 수 있다.
도 3은 본 발명의 실시 예에 따른 NIC의 자원을 동적으로 설정하는 방법의 일 예를 도시한 도면이다.
도 2 및 도 3을 함께 참조하면, NIC(200)가 서버(220)의 연결슬롯(230)에 부착되어 서버와 연결되는 경우(S300), NIC(200)는 서버(220)로부터 가상 머신(250,252,254)의 수를 포함한 가상화 환경 정보를 수신한다(S310). NIC(200)는 수신한 가상화 환경 정보에 따라 큐의 크기와 개수, 큐 그룹의 생성 등 자원을 동적으로 설정한다(S320).
예를 들어, NIC(200)가 서버(220)로부터 가상 머신(250,252,254)이 4개라는 가상화 환경 정보를 수신하는 경우, NIC(200)는 12개의 큐를 각 가상 머신별로 3개씩 할당할 수 있다. 가상 머신별로 할당되는 큐의 개수나 각 큐의 크기 등은 기 설정된 규칙에 따라 다양하게 변형될 수 있다.
도 4는 본 발명의 실시 예에 따른 NIC의 구성의 일 예를 도시한 도면이다.
도 4를 참조하면, NIC(200)는 패킷수신부(400), 패킷분석부(410), 메모리(420), 복수 개의 큐(430), 복수 개의 프로세서(440), 스케줄러(450), 모니터링부(460) 및 큐 관리부(480)를 포함한다. 패킷수신부(400) 등을 포함한 각 구성요소 사아의 연결선은 본 실시 예의 이해를 돕기 위한 하나의 예일 뿐이며, 큐 관리부(480)와 모니터링부(460) 사이의 연결, 스케줄러(450)와 복수 개의 큐(430) 사이의 연결 등 다양한 연결 관계가 설정될 수 있음은 물론이다.
패킷수신부(400)는 물리 네트워크(490)에서 일반적인 이더넷 프레임으로 인식되도록 종래의 다양한 터널링과 같은 방법 등을 통해 인캡슐레이션된 패킷을 수신하면, 이를 디캡슐레이션하여 물리 네트워크(490)에 해당하는 헤더 부분을 제거하고 가상화 환경의 적어도 하나 이상의 오버레이 네트워크(492)의 데이터 패킷 프레임을 복원한다. 예를 들어, 계층적 네트워크가 제1 내지 제3 네트워크로 구성된 경우에, 패킷수신부(400)는 패킷을 1차 디캡슐레이션하여 제2 네트워크의 데이터 패킷 프레임을 복원하고, 또한 제2 네트워크의 데이터 패킷 프레임을 2차 디캡슐레이션하여 제3 네크워크의 데이터 패킷 프레임을 복원할 수 있다.
패킷분석부(410)는 디캡슐레이션을 통해 파악한 가상화 환경의 계층 정보를 이용하여 오버레이 플로우를 식별하거나 물리 네트워크의 계층 정보와 가상화 환경의 계층 정보를 함께 고려하여 오버레이 플로우를 식별할 수 있다. 오버레이 플로우를 식별하기 위하여 가상화 환경에서의 데이터링크계층(vL2)만이 아니라 네트워크계층(vL3) 이상의 상위 계층까지 해석될 수 있다. 예를 들어, 패킷분석부(410)는 DPI(Deep Packet Inspection) 과정을 통해 디캡슐레이션된 패킷의 가상 환경의 데이터링크계층(vL2)부터 가상 환경의 애플리케이션계층(vL7)까지 분석하여, 오버레이 플로우를 식별하거나 물리 네트워크의 계층 정보까지 함께 고려하여 오버레이 플로우를 식별한다. 오버레이 플로우 식별을 위한 패킷 분석은 데이터링크계층(vL2)부터 애플리케이션계층(vL7) 모두를 분석하는 것으로 한정되는 것은 아니며, 오버레이 플로우 식별 정책에 따라 분석의 범위는 달라질 수 있다.
메모리(420)는 패킷과 패킷분석부(410)에 의해 식별된 오버레이 플로우 정보 등을 저장하고, 또한 오버레이 플로우와 큐 사이의 맵핑관계를 나타내는 플로우 테이블을 저장하고 관리한다.
일 실시 예로, 패킷수신부(400)는 디캡슐레이션된 패킷을 메모리(420)에 저장하고, 패킷의 저장 사실을 패킷분석부(410)에 통보한다. 그러면 패킷분석부(410)는 메모리(420)에 저장된 패킷의 오버레이 플로우를 식별한다. 즉 새로운 패킷의 수신 사실을 알게 된 패킷분석부(410)는 기 설정된 정책에 따라 해당 패킷의 오버레이 플로우 특성을 식별하여 그 정보를 메모리(420)에 저장하고 저장 사실을 스케줄러(450)에 알려준다.
스케줄러(450)는 식별된 오버레이 플로우를 해당 오버레이 플로우 큐(430)에 할당하며, 오버레이 플로우 큐(430)를 다중 프로세서(440)에 병렬 할당한다. 보다 구체적으로, 스케줄러(450)는 메모리(420)에 저장된 플로우 테이블을 참조하여 패킷의 오버레이 플로우와 맵핑된 큐를 검색하고, 메모리(420)에 저장된 패킷을 검색된 큐(430)에 전달한다. 만약 플로우 테이블에 해당 패킷의 오버레이 플로우가 존재하지 않는다면, 스케줄러(450)는 종래의 다양한 방법을 통해 오버레이 플로우를 특정 큐(430)에 할당하고, 오버레이 플로우와 큐(430) 사이의 맵핑관계를 플로우 테이블에 저장한다.
스케줄러(450)는 패킷을 오버레이 플로우 단위로 큐잉할 수 있다. 예를 들어, 오버레이 플로우와 큐(430) 사이의 맵핑 관계를 설정할 때, 제1 가상 머신과 제2 가상 머신을 향하는 동일한 성격(예를 들어, 동일한 QoS 우선순위)의 제1 플로우와 제2 플로우를 동일한 큐에 할당할 수 있다. 본 실시 예가 이러한 경우를 배제하는 것은 아니라 병렬 처리의 효율을 보다 높이기 위하여, 오버레이 플로우를 가상 머신별로 서로 다른 그룹의 큐에 할당하는 것이 바람직하다. 다시 말해, 스케줄러(450)는 도 6과 같이 가상 머신별로 큐들을 그룹핑하는 경우에, 제1 가상 머신에 대한 제1 플로우는 제1 그룹(620)의 큐에 오버레이 플로우 단위로 할당하고, 제2 가상 머신에 대한 제2 플로우는 제2 그룹(630)의 큐에 오버레이 플로우 단위로 할당한다.
예를 들어, 새로운 패킷이 메모리(420)에 적재되었다는 사실과 해당 패킷의 오버레이 플로우 정보를 수신하면, 스케줄러(450)는 플로우 테이블을 참조하여 오버레이 플로우가 어떤 오버레이 플로우 큐에 할당되는지 파악하고, 메모리(420)에 적재되어 있는 패킷을 해당 큐에 적재한다. 만약 식별된 오버레이 플로우에 대한 정보를 플로우 테이블에서 찾을 수 없는 경우, 스케줄러(450)는 해당 패킷을 기 설정된 정책에 따라 해당 가상 머신에 속한 큐 중 하나에 할당할 수 있다. 여기서 기 설정된 정책은 실시 예에 따라 다양할 수 있으며, 일 예로 플로우 친화도를 고려하여 오버레이 플로우 큐를 선택하는 정책, 패킷에 해당하는 가상 머신 내 큐 중 가장 부하가 적은 큐를 선택하는 정책, 사용률이 가장 낮은 프로세서에 할당되어 있는 큐를 선택하는 정책 등이 있다.
복수 개의 큐(430)는 각각 적어도 하나 이상의 오버레이 플로우와 맵핑된다. 오버레이 플로우 단위로 큐잉하는 경우 프로세서 친화도가 높아지며, 이에 따라 병렬 처리의 효율도 증가한다. 복수 개의 큐(430)는 가상 머신별로 적어도 하나 이상의 큐를 포함하는 그룹으로 분할될 수 있다. 또한, 복수 개의 큐(430)는 도 7과 같이 적어도 두 개 이상의 파티션으로 분할될 수 있다.
스케줄러(450)는 복수 개의 프로세서(470) 중에서 선택된 프로세서일 수 있다. 예를 들어, 전체 프로세서들(470) 중 특정 프로세서(450)를 스케줄러로 지정하거나, 각 프로세서들의 부하 정도를 모니터링부(460)를 통해 파악한 후 부하가 가장 적은 프로세서를 스케줄러(450)로 선택할 수 있다. 이 외에도 스케줄러를 선택하기 위한 다양한 방법이 적용될 수 있다. 프로세서(470) 중 스케줄러(450)가 지정되는 경우, 제어부(미도시)는 스케줄링이 필요할 때마다 인터럽트 신호를 발생하여 스케줄러(450)로 지정된 프로세서에 전송하고, 인터럽트 신호를 수신한 프로세서는 하던 작업을 중지하고 스케줄러(450)로서 동작을 완료한 후 다시 이전 작업을 수행한다.
복수 개의 프로세서들(440)은 각 큐(430)에 저장된 패킷을 병렬 처리하여 서버의 가상 머신으로 전송한다. 복수 개의 프로세서들(440)은 적어도 하나 이상의 큐(430)와 연결된다.
예를 들어, 복수 개의 프로세서들(440)은 플로우 친화도를 고려하여 큐(430)와 연결된다. 다시 말해, 동일하거나 유사한 오버레이 플로우 속성을 갖는 패킷을 저장하는 큐들을 묶어 프로세서와 연결한다.
또 다른 예로서, 복수 개의 프로세서들(440)은 가상 머신별로 큐(430)와 연결될 수 있다. 도 5를 참조하면, 제1 프로세서는 제1 가상머신에 할당된 제1 내지 제3 큐(500)와 연결되고, 제2 프로세서는 제2 가상머신에 할당된 제4 내지 제6 큐(510)와 연결되고, 제3 프로세서는 제3 가상머신에 할당된 제7 및 제8 큐(520)에 연결될 수 있다.
또 다른 예로서, 제1 프로세서는 제1 가상머신에 할당된 제1 내지 제3 큐와 함께 제2 가상머신에 할당된 제4 큐와 연결되고, 이 경우 제2 프로세서는 제2 가상머신에 할당된 제5 및 제6큐와 연결될 수 있다. 즉, 각 프로세서(440)는 적어도 둘 이상의 가상머신에 할당된 큐의 전부 또는 일부와 연결될 수도 있다.
모니터링부(460)는 프로세서(440)와 큐(430)의 부하 등을 포함한 각종 상태를 모니터링한다.
큐 관리부(480)는 모니터링 결과에 따라 큐들을 도 6과 같이 복수의 파티션으로 분할하고 각 파티션마다 스케줄러를 두어 처리하거나, 복수의 큐를 하나로 합치거나 분할하고, 또는 가상머신에 할당된 큐의 수를 늘리거나 줄이는 등 큐의 크기와 개수 등을 조정한다. 큐 관리부(480)는 앞서 살핀 도 3의 과정을 통해 파악된 서버의 가상화 환경에 따라 가상머신별로 큐의 개수나 크기 등을 동적으로 설정할 수 있다.
도 5는 본 발명의 실시 예에 따른 NIC의 오버레이 플로우 기반 큐 할당의 일 예를 도시한 도면이다.
도 5를 참조하면, 큐들(430)은 가상 머신별로 구분된다. 예를 들어, 제1 내지 제3 큐(500)는 제1 가상머신에 할당되고, 제4 내지 제6 큐(510)는 제2 가상머신에 할당되고, 제7 및 제8 큐(520)는 제3 가상머신에 할당된다. 스케줄러는 가상 머신별로 오버레이 플로우를 참조하여 큐잉을 수행한다.
예를 들어, 제1 가상머신으로 향하는 오버레이 플로우를 우선순위에 따라 식별하는 경우에, 스케줄러는 제1 가상머신에 할당된 제1 내지 제3 큐(400)에 우선순위를 기반으로 패킷을 분류하여 저장한다.
도 6은 본 발명에 따른 NIC의 오버레이 플로우 기반 큐 할당의 다른 일 예를 도시한 도면이다.
도 6을 참조하면, 큐들(430)은 적어도 둘 이상의 파티션(620,630)으로 구분된다. 각 파티션(620,630)마다 스케줄러(600,610)가 할당된다. 예를 들어, 제1 파티션(620)에 제1 스케줄러(600)가 할당되고, 제2 파티션(630)에 제2 스케줄러(610)가 할당된다. 각 스케줄러(600,610)는 할당된 파티션에 대하여 독립적으로 스케줄링 작업을 병렬 수행한다. 스케줄러는 앞서 설명한 바와 같이 복수 개의 프로세서들(470) 중 소정의 방법에 의해 선택된 프로세서일 수 있다.
예를 들어, 도 4와 같이 하나의 스케줄러에 의한 스케줄링 수행 중에, 모니터링부에서 측정한 큐의 부하분포가 기 설정된 임계치 이하로 떨어지면, 큐의 재분배 또는 프로세서 재할당이 결정될 수 있다. 또는 네트워크로부터 수신되는 패킷의 통계적 양과 NIC 내의 총 프로세서에 의해 수행되는 프로세서 능력을 계산하여 프로세서의 부하가 어느 임계치 이하이면 큐의 재분배 또는 프로세서 재할당이 결정될 수 있다. 큐의 재분배 또는 프로세서 재할당 시, 도 6과 같이 큐가 복수 개의 파티션으로 구분되고 추가적인 스케줄러의 지정이 필요한 경우, 가장 부하가 적은 프로세서를 추가 스케줄러로 지정할 수 있다.
각 파티션에 속한 큐들은 가상머신 기반으로 그룹핑(640)될 수 있으며, 그룹(640) 내 큐들은 오버레이 플로우 기반으로 분류될 수 있다. 이 경우, 파티션 - 가상머신별 그룹 - 각 그룹별 플로우 단위 큐의 계층적 구조가 생성된다.
도 7은 본 발명에 사용되는 패킷의 일 예를 도시한 도면이다.
도 7을 참조하면, 패킷(700)은 물리적 네트워크 프레임 헤더 필드(710), 터널링 필드(720), 가상 네트워크 프레임 헤더 필드(730), 데이터 필드(740)를 포함한다.
물리적 네트워크 프레임 헤더 필드(710)는 L2, IP, TCP 등 종래의 물리적 네트워크의 계층을 나타내는 정보를 포함한다. 터널링 필드(720)는 터널링 정보 등을 나타낸다. 가상 네트워크 프레임 헤더 필드(730)은 가상화 환경의 각 계층(vL2 ~ vL7 등)에 대한 정보를 포함한다. 데이터 필드(740)는 데이터를 포함한다.
도 8은 본 발명에 사용되는 패킷의 다른 일 예를 도시한 도면이다.
도 8을 참조하면, 패킷(800)은 물리적 네트워크 프레임 헤더 필드(810)와 함께 복수 개의 터널링 필드(820,840), 복수 개의 가상 네트워크 프레임 헤더 필드(830,850), 데이터 필드(860)를 포함한다. 패킷(800)은 가상화 환경의 오버레이 네트워크의 계층 수에 따라 복수의 오버레이 네트워크 프레임 헤더 필드(830,850)를 포함할 수 있다.
도 7 및 도 8의 패킷 구조는 본 발명의 이해를 돕기 위한 하나의 예일 뿐, 본 발명이 이에 한정되는 것은 아니며 가상화 환경을 위한 다양한 형태의 패킷의 구조를 정의하여 사용할 수 있다.
또한 메모리에 저장된 패킷의 구조와 큐에 저장된 패킷의 구조는 실시 예에 따라 동일하거나 다를 수 있다. 예를 들어, 네트워크로부터 수신한 도 7의 패킷을 가상화 환경에서 처리 가능한 최적의 구조로 변경하거나 패킷의 필드 중 가상화 환경에서 불필요한 필드의 일부 또는 전부를 삭제하는 등 다양하게 설계 변경 가능하여 큐에 저장할 수 있다.
도 9는 본 발명의 실시 예에 따른 가상화 환경의 패킷 처리 방법의 일 예를 도시한 흐름도이다.
도 9를 참조하면, 패킷 처리 장치는 패킷을 수신하면(S900), DPI 과정 등을 통해 패킷을 분석하여 패킷이 전달되어야 할 목적지 가상 머신과 오버레이 플로우를 식별한다(S910). 패킷 처리 장치는 가상 머신별로 할당된 적어도 한 개 이상의 큐들에 대해 오버레이 플로우 단위로 패킷을 저장한다(S920). 그리고 패킷 처리 장치는 복수 개의 프로세서들을 통해 각 큐에 저장된 패킷을 처리하여 가상 머신으로 전송한다(S930).
도 10은 본 발명의 실시 예에 따른 패킷 처리 장치의 일 예를 도시한 도면이다. 도 10은 물리 네트워크와 오버레이 네트워크의 두 계층으로 구성된 경우의 패킷 처리 장치의 일 예이다.
도 10을 참조하면, 패킷 처리 장치(1000)는 물리 네트워크에서 패킷을 처리하는 p-NIC(1010)와 가상화 환경의 오버레이 네트워크에서 패킷을 처리하는 v-NIC(1020), 패킷이 전송되는 전체 네트워크의 계층 정보를 이용하여 오버레이 플로우를 파악하는 제어부(1030)를 포함한다.
제어부(1030)는 도 4의 패킷수신부(400), 패킷분석부(410), 메모리(420) 등으로 구성될 수 있다. 예를 들어, 제어부(1030)는 오버레이 네트워크의 계층정보가 인캡슐레이션된 패킷을 수신하면, 패킷을 디캡슐레이션하여 오버레이 네트워크의 계층정보를 파악한다. 패킷이 도 7과 같다면, 제어부는 디캡슐레이션 과정을 통해 물리 네트워크의 계층정보와 오버레이 네트워크의 계층정보를 파악한다.
그리고 제어부(1030)는 파악된 계층정보를 이용하여 하나의 오버레이 플로우를 식별한다. 제어부(1030)는 패킷의 물리 네트워크의 계층정보와 패킷에 인캡슐레이션된 오버레이 네트워크의 계층정보를 함께 이용하여 오버레이 플로우를 식별하거나 계층적 네트워크의 일부를 이용하여 오버레이 플로우를 식별할 수 있다.
제어부(1030)는 식별된 오버레이 플로우 정보를 p-NIC(1010) 및 v-NIC(1020)에 각각 전달한다. p-NIC(1010) 및 v-NIC(1020)는 도 4의 스케줄러(450), 큐(430)로 구성될 수 있으며, 실시 예에 따라 도 4와 같은 복수의 프로세서(440)를 포함할 수 있다.
p-NIC(1010)는 물리 네트워크에서 패킷을 처리할 때 물리 네트워크의 계층정보를 이용하여 패킷의 플로우를 식별하는 것이 아니라, 제어부(1030)로부터 전달받은 오버레이 플로우 단위로 패킷을 스케줄링한다. 다시 말해, p-NIC(1010)는 물리 네트워크의 패킷을 처리하기 위하여 별도의 플로우 식별을 수행하지 않고, 제어부(1030)로부터 전달받은 오버레이 플로우 단위로 패킷을 큐잉한다. p-NIC(1010)는 패킷을 디캡슐레이션하여 v-NIC(1020)로 전달한다.
v-NIC(1020)는 오버레이 네트워크에서 패킷을 처리할 때 제어부(1030)로부터 전달받은 오버레이 플로우 단위로 패킷을 스케줄링한다. 따라서 패킷이 물리 네트워크 및 오버레이 네트워크를 통해 처리될 때 네트워크별로 서로 다른 플로우로 처리되는 것이 아니라 공통된 오버레이 플로우 단위로 스케줄링되므로, 패킷을 복수의 프로세서를 이용하여 병렬 처리할 경우에 처리 효율을 높일 수 있다.
v-NIC(1020)는 물리 네트워크가 아닌 논리적 네트워크인 오버레이 네트워크의 패킷 처리를 수행하므로, 도 2의 NIC(200) 또는 서버(220)에서 논리적 모듈로 구현될 수 있다. 예를 들어, p-NIC(1010)는 도 2의 NIC(200)에 구현되고, v-NIC(1020)는 도 2의 서버(220) 내에 구현되어 있다면, 제어부(1030)는 오버레이 플로우 정보를 NIC(200) 및 서버(220)에 각각 전달한다.
p-NIC(1010) 및 v-NIC(1020)는 논리적으로 구분되는 모듈로 구현될 수 있다. 예를 들어, p-NIC(1010) 및 v-NIC(1020)는 공통된 스케줄러 및 큐로 구성되며, 각 네트워크의 패킷 처리를 위하여 논리적으로 구분되는 구성일 수 있다. 이 경우에, 물리 네트워크에서의 패킷 처리와 오버레이 네트워크에서의 패킷 처리를 위하여 패킷이 저장되는 큐가 동일하며, 따라서 각 네트워크의 패킷을 처리하는 프로세서가 동일할 수 있다. 다시 말해, p-NIC(1010)는 물리 네트워크에서 패킷을 제1 큐에 저장하고 제1 프로세서를 이용하여 이를 처리하고, v-NIC(1020)는 제1 큐에 저장된 패킷을 그대로 제1 프로세서를 이용하여 오버레이 네트워크에서 처리할 수 있다.
도 11은 본 발명의 실시 예에 따른 패킷 처리 장치의 다른 예를 도시한 도면이다.
도 11을 참조하면, 패킷 처리 장치(1100)는 p-NIC(1110)와 복수 개의 v-NIC(1120,1130,1140), 패킷이 전송되는 전체 네트워크의 계층 정보를 이용하여 오버레이 플로우를 파악하는 제어부(1150)를 포함한다.
제어부(1150)는 도 4의 패킷수신부(400), 패킷분석부(410), 메모리(420) 등으로 구성될 수 있다. 제어부(1150)는 적어도 하나 이상의 네트워크의 계층정보가 인캡슐레이션된 패킷을 수신하면, 패킷을 디캡슐레이션하여 적어도 하나 이상의 네트워크의 계층정보를 파악한다. 패킷이 도 8과 같다면, 제어부(1150)는 디캡슐레이션 과정을 통해 물리 네트워크와 복수의 오버레이 네트워크 계층정보를 파악한다.
그리고 제어부(1150)는 파악된 계층정보를 이용하여 오버레이 플로우를 식별한다. 패킷이 도 8과 같다면, 제어부(1050)는 물리 네트워크와 복수의 오버레이 네트워크의 계층정보를 모두 함께 이용하여 오버레이 플로우를 식별하거나, 복수의 오버레이 네트워크의 계층정보만을 이용하여 오버레이 플로우를 식별하거나, 복수의 오버레이 네트워크 중 일부의 오버레이 네트워크의 계층정보만을 이용하여 오버레이 플로우를 식별할 수 있다.
제어부(1050)는 식별된 오버레이 플로우 정보를 p-NIC(1110) 및 복수의 v-NIC(1120,1130,1140)에 각각 전달한다. p-NIC(1110) 및 복수의 v-NIC(1120,1130,1140)는 도 4의 스케줄러(450), 큐(430)로 구성될 수 있으며, 실시 예에 따라 도 4와 같은 복수의 프로세서(440)를 포함할 수 있다.
p-NIC(1110)는 제어부로부터 전달받은 오버레이 플로우를 기초로 패킷을 스케줄링하고, 패킷을 디캡슐레이션하여 v1-NIC(1120)로 전달한다.
v-NIC(1120,1130,1140)의 개수는 계층적 네트워크의 개수와 관련된다. 예를 들어, 도 1과 같이 가상화 환경을 구성하는 오버레이 네트워크(100,110,120)의 개수가 N개이면, v-NIC(1120,1130,1140)의 개수는 각 오버레이 네트워크의 오버레이 플로우 식별을 위해 N개일 수 있다.
v1-NIC(1120)는 제어부(1150)로부터 전달받은 오버레이 플로우를 기초로 패킷을 스케줄링하고, 패킷을 다시 디캡슐레이션하여 v2-NIC(1130)로 전달한다. v2-NIC(1120)는 제어부(1150)로부터 전달받은 오버레이 플로우를 기초로 패킷을 스케줄링하고, 패킷을 다시 디캡슐레이션하여 v3-NIC(1130)로 전달한다.
이와 같은 방법으로 디캡슐레이션하여 전달되는 제N 네트워크의 프레임을 수신한 vn-NIC(1140)는 또한 제어부(1150)로부터 전달받은 오버레이 플로우를 기초로 패킷을 스케줄링하여 처리한다.
따라서 p-NIC(1110), v1-NIC(1120), v2-NIC(1130) 및 vn-NIC(1140)에서 패킷이 서로 다른 플로우로 처리되는 것이 아니라 공통된 오버레이 플로우 단위로 스케줄링되므로, 패킷을 복수의 프로세서를 이용하여 병렬 처리할 경우에 처리 효율을 높일 수 있다.
v1-NIC(1120), v2-NIC(1130) 및 vn-NIC(1140)는 물리 네트워크가 아닌 논리적 네트워크인 오버레이 네트워크의 패킷 처리를 수행하므로, 도 2의 NIC(200) 또는 서버(220)에서 논리적 모듈로 구현될 수 있다. 예를 들어, p-NIC(1110)는 도 2의 NIC(200)에 구현되고, v1-NIC(1120), v2-NIC(1130) 및 vn-NIC(1140)는 도 2 서버(220) 내에 각각 구현되어 있다면, 제어부(1150)는 오버레이 플로우 정보를 NIC(200) 및 서버(220)에 각각 전달한다.
p-NIC(1110) 및 v1-NIC(1120), v2-NIC(1130) 및 vn-NIC(1140)는 논리적으로 구분되는 모듈로 구현될 수 있다. 예를 들어, p-NIC(1110) 및 v1-NIC(1120), v2-NIC(1130) 및 vn-NIC(1140)는 공통된 스케줄러 및 큐로 구성되며, 각 네트워크의 패킷 처리를 위하여 논리적으로 구분되는 구성일 수 있다. 이 경우에, 물리 네트워크에서의 패킷 처리와 복수의 오버레이 네트워크에서의 패킷 처리를 위하여 패킷이 저장되는 큐가 동일하며, 따라서 각 네트워크별로 패킷을 처리하는 프로세서가 동일할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 다양한 형태의 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (8)

  1. 제1 네트워크로부터 패킷을 수신하는 단계;
    상기 패킷에 인캡슐레이션된 적어도 하나 이상의 제2 네트워크의 계층정보를 파악하는 단계;
    상기 계층정보를 이용하여 오버레이 플로우를 식별하는 단계; 및
    각 네트워크별로 상기 오버레이 플로우 단위로 스케줄링하는 단계;를 포함하는 것을 특징으로 하는 패킷 처리 방법.
  2. 제 1항에 있어서,
    상기 제1 네트워크는 서버로 구성되는 물리 네트워크이고,
    상기 적어도 하나 이상의 제2 네트워크는 서버에 구현된 복수의 가상 머신으로 구성된 오버레이 네트워크인 것을 특징으로 하는 패킷 처리 방법.
  3. 제 1항에 있어서,
    상기 식별하는 단계는, 상기 제1 네트워크의 계층정보와 상기 적어도 하나 이상의 제2 네트워크의 계층정보를 이용하여 오버레이 플로우를 식별하는 단계를 포함하는 것을 특징으로 하는 패킷 처리 방법.
  4. 제 1항에 있어서, 상기 식별하는 단계는,
    상기 적어도 하나 이상의 제2 네트워크의 L3 이상의 계층정보를 이용하여 오버레이 플로우를 식별하는 단계를 포함하는 것을 특징으로 하는 패킷 처리 방법.
  5. 제1 네트워크로부터 패킷을 수신하는 패킷수신부;
    상기 패킷에 인캡슐레이션된 적어도 하나 이상의 제2 네트워크의 계층정보를 파악하고, 상기 계층정보를 이용하여 오버레이 플로우를 식별하는 패킷분석부; 및각 네트워크별로 상기 오버레이 플로우 단위로 스케줄링하는 스케줄러;를 포함하는 것을 특징으로 하는 패킷 처리 장치.
  6. 제 5항에 있어서,
    상기 제1 네트워크는 서버로 구성되는 물리 네트워크이고,
    상기 적어도 하나 이상의 제2 네트워크는 서버에 구현된 복수의 가상 머신으로 구성된 오버레이 네트워크인 것을 특징으로 하는 패킷 처리 장치.
  7. 제 5항에 있어서, 상기 패킷분석부는,
    상기 제1 네트워크의 계층정보와 상기 적어도 하나 이상의 제2 네트워크의 계층정보를 이용하여 오버레이 플로우를 식별하는 것을 특징으로 하는 패킷 처리 장치.
  8. 제 5항에 있어서, 상기 패킷분석부는,
    상기 적어도 하나 이상의 제2 네트워크의 L3 이상의 계층정보를 이용하여 오버레이 플로우를 식별하는 것을 특징으로 하는 패킷 처리 장치.
KR1020170182594A 2017-03-22 2017-12-28 계층적 네트워크에서 다중코어를 이용한 패킷 처리 방법 및 그 장치 KR102091152B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170035928 2017-03-22
KR1020170035928 2017-03-22

Publications (2)

Publication Number Publication Date
KR20180107706A true KR20180107706A (ko) 2018-10-02
KR102091152B1 KR102091152B1 (ko) 2020-03-19

Family

ID=63863955

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170182594A KR102091152B1 (ko) 2017-03-22 2017-12-28 계층적 네트워크에서 다중코어를 이용한 패킷 처리 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102091152B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110070772A (ko) 2009-12-18 2011-06-24 한국전자통신연구원 분산 메모리를 가지는 다중 프로세서 시스템을 위한 네트워크 부하 감소 방법 및 노드의 구조
KR20130039652A (ko) * 2011-10-12 2013-04-22 한국전자통신연구원 콘텐츠 중심 네트워크의 부하분산 방법 및 장치
KR20130108609A (ko) 2010-12-14 2013-10-04 아마존 테크놀로지스, 인크. 범용 프로세서와 그래픽 프로세서 사이의 부하 분산
KR101357907B1 (ko) * 2012-10-17 2014-02-04 한국과학기술원 오버레이 된 2 계층 협력 네트워크에서의 통신 방식
KR101639797B1 (ko) * 2015-10-16 2016-07-14 주식회사 구버넷 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110070772A (ko) 2009-12-18 2011-06-24 한국전자통신연구원 분산 메모리를 가지는 다중 프로세서 시스템을 위한 네트워크 부하 감소 방법 및 노드의 구조
KR20130108609A (ko) 2010-12-14 2013-10-04 아마존 테크놀로지스, 인크. 범용 프로세서와 그래픽 프로세서 사이의 부하 분산
KR20130039652A (ko) * 2011-10-12 2013-04-22 한국전자통신연구원 콘텐츠 중심 네트워크의 부하분산 방법 및 장치
KR101357907B1 (ko) * 2012-10-17 2014-02-04 한국과학기술원 오버레이 된 2 계층 협력 네트워크에서의 통신 방식
KR101639797B1 (ko) * 2015-10-16 2016-07-14 주식회사 구버넷 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법

Also Published As

Publication number Publication date
KR102091152B1 (ko) 2020-03-19

Similar Documents

Publication Publication Date Title
KR101583325B1 (ko) 가상 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법
US10581884B2 (en) Channel data encapsulation system and method for use with client-server data channels
KR101639797B1 (ko) 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법
TWI392288B (zh) 用於多核心通訊處理的系統及方法
CN108337188B (zh) 通信量和负载感知动态队列管理
CN105511954B (zh) 一种报文处理方法及装置
US8929253B2 (en) Virtual switching ports on high-bandwidth links
US7788411B2 (en) Method and system for automatically reflecting hardware resource allocation modifications
US20110007746A1 (en) Establishing Network Quality of Service for a Virtual Machine
WO2016206742A1 (en) Method and system for managing data traffic in a computing network
US11595315B2 (en) Quality of service in virtual service networks
US10348683B2 (en) Network packet filtering via media access control (MAC) address learning
EP2912811B1 (en) Traffic engineering system for preventing demand deadlock and achieving uniform link utilization
US9584446B2 (en) Memory buffer management method and system having multiple receive ring buffers
KR20180134219A (ko) 가상머신 패킷의 처리방법과 그 장치
US10594631B1 (en) Methods and apparatus for memory resource management in a network device
US7751400B2 (en) Method, system, and computer program product for ethernet virtualization using an elastic FIFO memory to facilitate flow of unknown traffic to virtual hosts
KR101773528B1 (ko) 가상머신 패킷을 처리하는 네트워크 인터페이스 장치 및 그 방법
US9282051B2 (en) Credit-based resource allocator circuit
KR102091152B1 (ko) 계층적 네트워크에서 다중코어를 이용한 패킷 처리 방법 및 그 장치
US11115337B2 (en) Network traffic segregation on an application basis in a virtual computing environment
WO2015199366A1 (ko) 다중 프로세싱 환경에서의 스케줄링 방법 및 그 장치
KR20190069032A (ko) 가상플로우의 인식 방법과 그 장치
KR102112270B1 (ko) 다중계층 네트워크 환경에서 패킷을 처리하는 방법 및 그 장치
WO2022147762A1 (zh) 一种数据包排序方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right