KR20150125564A - 네트워크 가상화를 가속화하는 기술 - Google Patents

네트워크 가상화를 가속화하는 기술 Download PDF

Info

Publication number
KR20150125564A
KR20150125564A KR1020150043330A KR20150043330A KR20150125564A KR 20150125564 A KR20150125564 A KR 20150125564A KR 1020150043330 A KR1020150043330 A KR 1020150043330A KR 20150043330 A KR20150043330 A KR 20150043330A KR 20150125564 A KR20150125564 A KR 20150125564A
Authority
KR
South Korea
Prior art keywords
network
packet
interface controller
host
port
Prior art date
Application number
KR1020150043330A
Other languages
English (en)
Other versions
KR101649819B1 (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 KR20150125564A publication Critical patent/KR20150125564A/ko
Application granted granted Critical
Publication of KR101649819B1 publication Critical patent/KR101649819B1/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/19Flow control; Congestion control at layers above the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • H04L29/04
    • H04L29/10
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Abstract

가속화된 네트워크 가상화를 위한 기술은 컴퓨팅 디바이스의 공급자 파티션에 수립된 네트워크 가상화기에 의해 패킷 처리 기능을 수행하는 것 및 컴퓨팅 디바이스의 네트워크 인터페이스 제어기로 패킷 이동 기능을 오프로딩하는 것을 포함한다. 예시적인 실시예에서, 네트워크 인터페이스 제어기는 네트워크 인터페이스 제어기에 의해 컴퓨팅 디바이스의 다양한 파티션들로부터 패킷을 수신하고, 파티션들로 패킷을 전송하며, 파티션들 사이에 패킷을 전달하는 데 사용되는 하나 이상의 테넌트향 포트, 공급자향 포트 및 외부 네트워크향 포트를 포함한다. 패킷을 송신하기 위해, 네트워크 가상화기는 공급자 헤더를 생성하고, 네트워크 가상화기 또는 네트워크 인터페이스 제어기는 테넌트 파티션으로부터 수신된 패킷을 공급자 헤더로 캡슐화한다. 패킷을 수신하기 위해, 네트워크 가상화기 또는 네트워크 인터페이스 제어기는 수신된 패킷으로부터 공급자 헤더를 스트립한다.

Description

네트워크 가상화를 가속화하는 기술{TECHNOLOGIES FOR ACCELERATING NETWORK VIRTUALIZATION}
네트워크 가상화는 동일한 "물리적" 네트워크 상에 다수의 "가상" 네트워크를 수립하는 기술이다. 네트워크 가상화는 IaaS(Infrastructure as a Service) 모델을 포함하는 클라우드 컴퓨팅 모델을 위한 중요 기술이다. 다른 가상화 기술과 유사하게, 네트워크 가상화는 통신이 공유 또는 공중 컴포넌트를 통해 발생하고 있을 수 있더라도 사용자(흔히 게스트 또는 테넌트(tenant)로 지칭됨)에게 사설 네트워크의 경험을 제공한다.
전형적인 네트워크 가상화 기술은 물리적 네트워크의 에지(예컨대, 물리적 네트워크의 인입 또는 인출 포인트에서)에서 소프트웨어로 완전히 구현되어, 가상 네트워크가 "물리적 네트워크를 알지 못하게" 한다. 전형적인 네트워크 가상화는 소프트웨어로 구현되므로, 네트워크 가상화기는 예컨대, 직접 메모리 액세스(DMA)를 통한 데이터의 이동 및 연관된 기존의 패킷 가속화 기능, 예를 들어, LSO(Large Segmentation Offload), RSS(Receive Side Scaling) 및 RSC(Receive Side Coalescing)를 포함하는 상당량의 종래의 네트워크 인터페이스 제어기(NIC) 기능성을 에뮬레이팅해야 한다. 다수의 구현에서, 그러한 데이터 이동 및 패킷 가속화 기능은 메인 프로세서의 작업 사이클의 비효율적인 사용으로 간주될 수 있다.
프로세서 시간의 비효율적인 사용을 해결하기 위해 추가적인 기술(예컨대, SR-IOV(Single Root I/O Virtualization))이 개발되었지만, 그러한 기술은 네트워크 가상화 환경에서 다른 도전을 생성할 수 있다. 예컨대, SR-IOV 기술은 호스트(예컨대, 가상 모니터)가 전형적으로 네트워크 가상화기를 완전히 바이패스함으로써 네트워크를 통해 패킷을 송신하도록 하는 직접 경로를 제공하며, 이는 서비스 IaaS 구현예로서 다수의 기반구조용으로서는 허용될 수 없다.
본 명세서에 설명된 개념은 예로써 및 비제한적인 방식으로 첨부 도면에 도시된다. 간략하고 명확한 설명을 위해, 도면에 도시된 요소는 반드시 실제 크기대로 도시되는 것은 아니다. 적절히 고려되는 경우, 참조 라벨은 대응하거나 유사한 요소를 나타내도록 도면들 사이에서 반복되었다.
도 1은 가속화된 네트워크 가상화를 위한 시스템의 적어도 하나의 실시예의 간단한 블록도이다.
도 2는 도 1의 컴퓨팅 디바이스의 파티션 환경의 적어도 하나의 실시예의 간단한 블록도이다.
도 3은 도 1 및 도 2의 컴퓨팅 디바이스 상에 수립될 수 있는 환경의 적어도 하나의 실시예의 간단한 블록도이다.
도 4는 도 1 내지 도 3의 컴퓨팅 디바이스에 의해 구현될 수 있는 네트워킹 스택의 간단한 블록도이다.
도 5 및 도 6은 도 1 내지 도 3의 컴퓨팅 디바이스에 의해 실행될 수 있는 패킷 수신 방법의 적어도 하나의 실시예의 간단한 흐름도이다.
도 7 및 도 8은 도 1 내지 도 3의 컴퓨팅 디바이스에 의해 실행될 수 있는 패킷 송신 방법의 적어도 하나의 실시예의 간단한 흐름도이다.
본 개시내용의 개념은 다양한 수정 및 대안 형태가 가능하지만, 특정 실시예가 도면에 예로써 도시되었고 본 명세서에 상세히 설명될 것이다. 그러나, 본 개시내용의 개념을 개시된 특정 형태로 제한하려하는 의도는 없으며, 이와 반대로, 그 의도는 본 개시내용 및 첨부된 특허청구범위와 일치하는 모든 수정, 등가물 및 대안을 커버하는 것임을 이해해야 한다.
명세서에서 언급된 "일 실시예", "실시예", "예시적인 실시예" 등은 설명된 실시예가 특정 특징부, 구조 또는 특성을 포함할 수 있음을 나타내지만, 모든 실시예가 그 특정 특징부, 구조 또는 특성을 포함할 수도 있고 또는 반드시 포함하는 것은 아닐 수도 있다. 또한, 그러한 구는 반드시 동일한 실시예를 지칭하는 것은 아니다. 또한, 당업자는 특정 특징부, 구조 또는 특성이 실시예와 관련하여 설명될 때, 명시적으로 설명되든 설명되지 않든 다른 실시예와 관련하여 그러한 특징부, 구조 또는 특성을 실행하는 것을 알고 있다고 제시된다. 추가적으로, "적어도 하나의 A, B 및 C"의 형태로 리스트에 포함된 아이템은 (A); (B); (C): (A 및 B); (B 및 C); 또는 (A, B 및 C)를 의미할 수 있음을 이해해야 한다. 유사하게, "A, B 또는 C 중 적어도 하나"의 형태로 열거된 아이템은 (A); (B); (C): (A 및 B); (B 및 C); 또는 (A, B 및 C)를 의미할 수 있다.
몇몇 경우에, 개시된 실시예는 하드웨어, 펌웨어, 소프트웨어 또는 그들의 임의의 조합으로 구현될 수 있다. 개시된 실시예는 하나 이상의 일시적 또는 비일시적 머신 판독가능(예컨대, 컴퓨터 판독가능) 저장 매체가 지니거나 이에 저장되어 하나 이상의 프로세서에 의해 판독되고 실행될 수 있는 명령어로서 구현될 수도 있다. 머신 판독가능 저장 매체는 머신에 의해 판독가능한 형태로 정보를 저장하거나 송신하는 임의의 저장 장치, 메커니즘 또는 다른 물리적 구조체(예컨대, 휘발성 또는 비휘발성 메모리, 미디어 디스크 또는 다른 미디어 장치)로서 구현될 수 있다.
도면에서, 몇몇 구조적 또는 방법 특징부는 특정 배열 및/또는 순서로 도시될 수 있다. 그러나, 그러한 특정 배열 및/또는 순서가 요구되지 않을 수도 있음을 알아야 한다. 오히려, 몇몇 실시예에서, 그러한 특징부는 예시적인 도면에 도시된 것과 상이한 방식 및/또는 순서로 배열될 수 있다. 추가적으로, 특정 도면에서 구조적 또는 방법 특징부의 포함은 그러한 특징부가 모든 실시예에서 요구됨을 의미하는 것은 아니며, 몇몇 실시예에서 다른 특징부에 포함되지 않을 수도 있고 또는 다른 특징부와 조합될 수 있다.
이제 도 1을 참조하면, 가속화된 네트워크 가상화를 위한 예시적인 시스템(100)은 네트워크(106)를 통해 원격 컴퓨팅 디바이스(104)와 통신하는 컴퓨팅 디바이스(102)를 포함한다. 이하에 보다 상세히 논의되는 바와 같이, 컴퓨팅 디바이스(102)는 컴퓨팅 디바이스(102) 상의 대응하는 테넌트 파티션에 수립된 하나 이상의 테넌트(호스트)가 네트워크(106)를 통해 사설 네트워크를 경험하게 하는 네트워크 가상화를 구현한다. 네트워크 가상화는 공급자 패킷 헤더를 사용하여 테넌트 파티션의 호스트에 의해 생성된 패킷을 캡슐화함으로써 달성된다. 추가적으로, 컴퓨팅 디바이스(102)의 네트워크 가상화는 공급자 파티션에 수립된 네트워크 가상화기에 패킷 처리 기능을 할당하고 오프로딩 패킷 이동 기능 및 기존의 네트워크 제어기 가속화/오프로드 기능(예컨대, LSO, RSS, RSC 등)을 컴퓨팅 디바이스(102)의 네트워크 인터페이스 제어기(120)에 할당함으로써 가속화된다. 이를 위해, 네트워크 인터페이스 제어기(120)는 파티션들로부터 및/또는 파티션들 사이에서 패킷을 이동시키기 위해 테넌트 파티션 및 공급자 파티션과 통신하는 다수의 포트를 포함한다. 네트워크 가상화는 테넌트 발신형 패킷을 캡슐화하는 데 사용된 공급자 패킷 헤더를 생성하고 관리하는 네트워크 가상화기에 의해 제공된다. 전형적인 네트워크 인터페이스 제어기 가속화 기능이 테넌트향 포트(tenant facing ports)에 여전히 이용가능함을 알아야 하는데, 이는 그러한 포트가 캡슐화 없이 패킷을 위한 표준 네트워크 인터페이스 제어기 포트로서 기능하기 때문이다.
이하에 보다 상세히 논의되는 바와 같이, 컴퓨팅 디바이스(102)로부터 패킷을 송신하기 위해, 테넌트 파티션의 호스트는 송신될 패킷을 생성하고 그 패킷을 대응하는 테넌트향 포트를 통해 네트워크 인터페이스 제어기(120)로 전달한다. 몇몇 실시예에서, 그 다음에 네트워크 인터페이스 제어기(120)는 패킷을 공급자향 포트를 통해 네트워크 가상화기로 전달하고, 네트워크 가상화기는 공급자 패킷 헤더로 패킷을 캡슐화한다. 그 후 네트워크 인터페이스 제어기(120)는 네트워크향 포트를 통해 네트워크(106)에 걸쳐 캡슐화된 패킷을 송신한다. 다른 실시예에서, 네트워크 인터페이스 제어기(120)는 네트워크 인터페이스 제어기(120)로부터 생성된 공급자 패킷 헤더를 공급자향 포트를 통해 수신하고 수신된 공급자 패킷 헤더를 사용하여 패킷을 캡슐화할 수 있다.
이와 반대로, 네트워크(106)로부터 패킷을 수신하기 위해, 네트워크 인터페이스 제어기(120)는 네트워크(106)로부터 네트워크향 포트를 통해 패킷을 수신하고, 몇몇 실시예에서 공급자향 포트를 통해 네트워크 가상화기로 패킷을 전달한다. 그러한 실시예에서, 네트워크 가상화기는 임의의 공급자 패킷 헤더의 패킷을 스트립하도록 패킷을 처리하고 스트립된 패킷을 네트워크 인터페이스 제어기(120)로 다시 전달하며, 그 후 스트립된 패킷을 테넌트 파티션의 지정된 호스트로 전달한다. 다른 실시예에서, 네트워크 인터페이스 제어기(120)는 패킷으로부터 공급자 패킷 헤더를 스트립하고, 추가 처리 및 분석을 위해 네트워크 가상화기로 공급자 패킷 헤더(및 패킷의 일부 또는 전부)를 전달하며, 스트립된 패킷을 테넌트 파티션의 지정된 호스트로 전달하도록 구성될 수 있다.
컴퓨팅 디바이스(102)는 네트워크 가상화기를 사용하여 네트워크(106)를 통해 통신하는 임의의 유형의 컴퓨팅 디바이스로서 구현될 수 있다. 예컨대, 컴퓨팅 디바이스(102)는 서버, 서버 제어기, 라우터, 스위치, 네트워킹 디바이스, 분산형 컴퓨팅 시스템, 멀티프로세서 시스템, 데스크톱 컴퓨터, 소비자 전자 디바이스, 스마트 가전, 랩톱 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터, 스마트폰, 셀룰러폰 및/또는 네트워크 가상화를 행할 수 있는 임의의 다른 컴퓨팅 디바이스로서 구현될 수 있다. 도 1에 도시된 바와 같이, 예시적인 컴퓨팅 디바이스(102)는 프로세서(110), I/O 서브시스템(112), 메모리(114), 데이터 저장장치(116), 하나 이상의 주변 디바이스(118) 및 네트워크 인터페이스 제어기(120)를 포함한다. 물론, 컴퓨팅 디바이스(102)는 다른 실시예에서, 컴퓨터에서 일반적으로 발견되는 것(예컨대, 다양한 입출력 디바이스)과 같은 다른 또는 추가적인 구성요소를 포함할 수 있다. 추가적으로, 몇몇 실시예에서, 예시적인 구성요소 중 하나 이상은 다른 구성요소 내에 또는 이와 달리 다른 구성요소의 일부로부터 통합될 수 있다. 예컨대, 몇몇 실시예에서 메모리(114) 또는 메모리의 일부는 프로세서(110)에 통합될 수 있다.
프로세서(110)는 본 명세서에 설명된 기능을 수행할 수 있는 임의의 유형의 프로세서로서 구현될 수 있다. 예컨대, 프로세서는 단일 또는 멀티코어 프로세서(들), 디지털 신호 프로세서, 마이크로컨트롤러 또는 다른 프로세서 또는 처리/제어 회로로서 구현될 수 있다. 이와 유사하게, 메모리(114)는 본 명세서에 설명된 기능을 수행할 수 있는 임의의 유형의 휘발성 또는 비휘발성 메모리 또는 데이터 저장장치로서 구현될 수 있다. 동작시에, 메모리(114)는 운영 시스템, 애플리케이션, 프로그램, 라이브러리 및 드라이버와 같은 컴퓨팅 디바이스(102)의 동작 동안에 사용된 다양한 데이터 및 소프트웨어를 저장할 수 있다. 메모리(114)는 프로세서(110), 메모리(114) 및 컴퓨팅 디바이스(102)의 다른 구성요소와의 입출력 동작을 가능하게 하는 회로 및/또는 구성요소로서 구현될 수 있는 입출력 서브시스템(112)을 통해 프로세서(110)에 통신가능하게 연결된다. 예컨대, I/O 서브시스템(112)은 메모리 제어기 허브, 입출력 제어 허브, 펌웨어 디바이스, 통신 링크(즉, 포인트 투 포인트 링크, 버스 링크, 와이어, 케이블, 광 가이드, 인쇄 회로 기판 트레이스 등) 및/또는 입출력 동작을 가능하게 하는 다른 구성요소 및 서브시스템으로서 구현되거나 포함할 수 있다. 몇몇 실시예에서, I/O 서브시스템(112)은 시스템 온 칩(SoC)의 일부를 형성할 수 있고 프로세서(110), 메모리(114) 및 컴퓨팅 디바이스(102)의 다른 구성요소와 함께 단일 집적 회로 칩 상에 통합될 수 있다.
데이터 저장장치(116)는 예컨대, 메모리 디바이스 및 회로, 메모리 카드, 하드 디스크 드라이브, 고체 상태 드라이브 또는 다른 데이터 저장 디바이스와 같은 단기 또는 장기 데이터 저장장치용으로 구성된 임의의 유형의 디바이스 또는 디바이스들로서 구현될 수 있다. 주변 디바이스(118)는 다양한 입출력 디바이스와 같은, 전형적인 컴퓨팅 디바이스에서 일반적으로 발견되는 임의의 유형의 주변 디바이스를 포함할 수 있다. 예컨대, 주변 디바이스(118)는 통신 회로, 디스플레이 회로, 다양한 입력 버튼 및 스위치, 키보드, 마우스, 스피커, 마이크로폰 및/또는 다른 주변 디바이스를 포함할 수 있다.
네트워크 인터페이스 제어기(120)는 임의의 디바이스, 회로 또는 네트워크(106)를 통해 컴퓨팅 디바이스(102)와 원격 컴퓨팅 디바이스(104) 사이의 통신을 가능하게 할 수 있는 회로 및/또는 디바이스의 집합으로서 구현될 수 있다. 예컨대, 네트워크 인터페이스 제어기(120)는 컴퓨팅 디바이스(102)의 마더보드에 통신가능하게 연결된 개별 주변 카드로서 구현될 수 있거나 마더보드 상에 집적된 디바이스의 집합 또는 회로로서 구현될 수 있다. 추가적으로, 네트워크 인터페이스 제어기(120)는 이하 논의되는 바와 같이 단일 네트워크 인터페이스 제어기 디바이스 또는 회로로서 또는 함께 통신가능하게 연결되는 다수의 네트워크 인터페이스 제어기 디바이스 또는 회로로서 구현될 수 있다. 몇몇 실시예에서, 네트워크 인터페이스 제어기(120)는 이하 논의되는 바와 같이 컴퓨팅 디바이스(102)의 다양한 파티션 사이의 패킷 전달을 가능하게 하도록 패킷을 저장하는 전용 메모리(122)를 포함할 수 있다.
컴퓨팅 디바이스(102)와 유사하게, 원격 컴퓨팅 디바이스(104)는 네트워크 가상화를 이용하여 네트워크(106)를 통해 통신하는 임의의 유형의 컴퓨팅 디바이스로서 구현될 수 있다. 예컨대, 컴퓨팅 디바이스(102)는 서버, 서버 제어기, 라우터, 스위치, 네트워킹 디바이스, 분산형 컴퓨팅 시스템, 멀티프로세서 시스템, 데스크톱 컴퓨터, 소비자 전자 디바이스, 스마트 가전, 랩톱 컴퓨터, 노트북 컴퓨터, 태블릿 컴퓨터, 스마트폰, 셀룰러폰 및/또는 네트워크 가상화를 행할 수 있는 임의의 다른 컴퓨팅 디바이스로서 구현될 수 있다. 원격 컴퓨팅 디바이스(104)의 구성요소, 구조 및 프로세스는 컴퓨팅 디바이스(102)에 관하여 설명된 대응하는 구성요소, 구조 및 프로세스와 실질적으로 유사할 수 있고, 명료한 설명을 위해 반복되지 않는다.
논의되는 바와 같이, 컴퓨팅 디바이스(102) 및 원격 컴퓨팅 디바이스(104)는 외부 네트워크(106)를 통해 서로 통신한다. 네트워크(106)는 임의의 개수의 다양한 유선 및/또는 무선 네트워크로서 구현될 수 있다. 예컨대, 네트워크(106)는 유선 또는 무선 LAN, 유선 또는 무선 WAN, 셀룰러 네트워크 및/또는 인터넷과 같이 공개적으로 액세스가능한 글로벌 네트워크로서 구현되거나 포함할 수 있다. 이처럼, 네트워크(106)는 시스템(100)의 다양한 디바이스 간의 통신을 가능하게 하는 추가 컴퓨터, 라우터 및 스위치와 같은 임의의 개수의 추가 디바이스를 포함할 수 있다.
이제 도 2를 참조하면, 예시적인 실시예에서, 컴퓨팅 디바이스(102)는 공급자 파티션(202) 및 하나 이상의 테넌트 파티션(204)을 수립한다. 이하 논의되는 바와 같이, 네트워크 가상화기는 공급자 파티션(202)에서 수립되고 하나 이상의 호스트(예컨대, 가상 머신, 운영 시스템, 애플리케이션 등)는 각각의 테넌트 파티션(204)에 수립된다(예컨대, 도 3 참조). 공급자 파티션(202) 및 개별 테넌트 파티션(204)의 분할은 그들 파티션 사이에 상당량의 분리를 제공한다. 이를 위해, 몇몇 실시예에서, 루트 하이퍼바이저(210)는 테넌트 파티션(204)으로부터 공급자 파티션(202)을 분리하기 위해 컴퓨팅 디바이스(102) 상에 수립될 수 있다. 개별 하이퍼파이저(212) 및 연관된 가상 머신(214)은 각각의 테넌트 파티션(204)에 수립될 수 있지만, 네트워크 가상화기(도 3 참조)는 루트 하이퍼바이저 상에서 실행할 수 있다. 이러한 방식으로, 각각의 테넌트 파티션(204)은 하이퍼바이저 독립적일 수 있다(즉, 각각의 테넌트 파티션(204)은 상이한 하이퍼바이저를 실행할 수 있다). 이와 달리, 하나 이상의 테넌트 파티션(204)은 임의의 하이퍼바이저(212)를 사용하지 않고 네이티브 또는 베어 메탈(native or bare metal) I/O 상에서 동작할 수 있다. 이와 달리, 다른 실시예에서, 컴퓨팅 디바이스(102)는 루트 파이퍼바이저(210)를 이용하지 않을 수도 있고, 그러한 실시예에서, 공급자 파티션(202) 및 테넌트 파티션(204)은 대응하는 하이퍼바이저에 의해 관리된다.
이상 논의된 바와 같이, 네트워크 인터페이스 제어기(120)는 파티션(202, 204) 및 네트워크(106)와 통신하는 다수의 포트를 포함한다. 예시적인 실시예에서, 네트워크 인터페이스 제어기(120)는 (SR-IOV 가능일 수 있는) 각각의 테넌트 파티션(204)에 대한 테넌트향 포트(220), 공급자향 포트(222) 및 네트워크향 포트(224)를 포함한다. 도 2에 예시적으로 도시된 바와 같이, 테넌트 파티션(204)으로부터 발신하는 패킷은 테넌트향 포트(220)를 통해 네트워크 인터페이스 제어기(120)에 의해 수신되고, 공급자향 포트(222)를 통해 ("와이어 내 범프"로서 구현되는) 공급자 파티션 내의 네트워크 가상화기로 전달되며, 그 후 네트워크향 포트(224)를 통해 네트워크(106)에 걸쳐 송신된다. 그러한 패킷의 전달은 네트워크 인터페이스 제어기(120)의 메모리(122)와 함께 직접 메모리 액세스(DMA)의 사용을 통해 달성될 수 있다. 이러한 방식으로, 패킷 이동 기능이 직접 메모리 액세스를 통해 네트워크 인터페이스 제어기(120)에 의해 처리되는 동안 패킷 처리 기능(예컨대, 캡슐화, 디캡슐화, 액세스 제어 리스트 등)은 공급자 파티션에서 완전히 또는 일부분 수행될 수 있다.
테넌트향 포트(220) 및 공급자향 포트(222)의 각각은 물리적 또는 가상 포트로서 구현될 수 있다. 예컨대, 몇몇 실시예에서, 네트워크 인터페이스 제어기(120)는 물리적 포트가 캐스케이딩되는 단일의 듀얼 포트 네트워크 인터페이스 제어기로서 구현될 수 있다. 그러한 실시예에서, 테넌트 파티션(204)은 가상 테넌트향 포트(220)에 연결될 수 있다. 네트워크 인터페이스 제어기(120)는 가상 테넌트향 포트(220)에서 물리적 공급자향 포트(222)로 패킷을 전달하고 그 후 물리적 네트워크향 포트(224)를 통해 네트워크(106)에 걸쳐 패킷을 전달할 수 있다. 이와 달리, 네트워크 인터페이스 제어기(120)는 테넌트 파티션(204)이 물리적 테넌트향 포트(220)에 부착되고, 공급자 파티션(202)이 물리적 공급자향 포트(222)에 부착되며, 패킷이 컴퓨팅 디바이스(102)로부터 물리적 네트워크향 포트(224)를 통해 송신되는 캐스케이드형 듀얼 포트 네트워크 인터페이스 제어기 쌍으로서 구현될 수 있다. 그러한 실시예에서, 물리적 테넌트향 포트(220) 및 물리적 공급자향 포트(222)는 백투백 접속된다. 또한, 몇몇 실시예에서, 네트워크 인터페이스 제어기(120)는 내부 온다이 패브릭 및 공유 자원을 가진 네트워크향 포트 및 3 개의 호스트향 인터페이스를 가진 다기능 네트워크 인터페이스 제어기로서 구현될 수 있다.
이제 도 3을 참조하면, 컴퓨팅 디바이스(102)는 동작 동안에 환경(300)을 수립할 수 있다. 환경(300)은 공급자 파티션에 수립된 네트워크 가상화기(302), 테넌트 파티션(204)에 수립된 호스트(304)(예컨대, 가상 머신, 운영 시스템, 애플리케이션 등) 및 네트워크 인터페이스 제어기(120)에 수립된 패킷 핸들러 모듈(306)을 포함한다. 네트워크 가상화기(302)는 패킷 처리 모듈(310) 및 패킷 헤더 생성 모듈(312)을 포함한다. 네트워크 가상화기(302)는 패킷 가상화 모듈(314)도 포함할 수 있다. 이와 달리, 패킷 가상화 모듈(314)은 네트워크 인터페이스 제어기(120)의 패킷 핸들러 모듈(306)에 포함될 수 있다. 환경(300)의 모듈 및 구성요소의 각각은 펌웨어, 소프트웨어, 하드웨어 및/또는 이들의 임의의 조합으로서 구현될 수 있다.
환경(300)의 다양한 모듈은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 조합으로서 구현될 수 있다. 예컨대, 환경(300)의 다양한 모듈, 로직 및 다른 구성요소는 프로세서(110), 네트워크 인터페이스 제어기(120) 또는 텀퓨팅 디바이스(102)의 다른 하드웨어 구성요소의 일부를 형성하거나 이들에 의해 수립될 수 있다. 이처럼, 몇몇 실시예에서, 환경(300)의 하나 이상의 모듈은 전기적 디바이스의 집합 또는 회로(예컨대, 패킷 핸들러 회로, 네트워크 가상화기 회로 등)로서 구현될 수 있다.
이상 논의된 바와 같이, 네트워크 가상화기(302)는 컴퓨팅 디바이스(102)에 대한 네트워크 가상화 기능을 수행하도록 구성된다. 이를 위해, 패킷 처리 모듈(310)은 이하 논의되는 바와 같이 수신되고 송신된 통신에 테넌트 콘텍스트(예컨대, 액세스 룰)를 적용하기 위해 패킷을 처리하도록 구성된다. 추가적으로, 패킷 헤더 생성 모듈(312)은 출력 패킷(즉, 테넌트 파티션(204)의 호스트(304)에 의해 생성된 패킷)을 캡슐화할 때 사용할 공급자 패킷 헤더를 생성하도록 구성된다. 패킷 가상화 모듈(314)은 네트워크 가상화를 가능하게 하도록 출력 패킷 및 입력 패킷을 처리하도록 구성된다. 이를 위해, 예컨대, 패킷 가상화 모듈(314)은 생성된 공급자 헤더를 사용하여 출력 패킷을 캡슐화하고 입력 패킷으로부터 임의의 공급자 패킷 헤더를 스트립한다.
패킷 핸들러 모듈(306)은 테넌트 파티션(204)과 공급자 파티션(202)으로, 테넌트 파티션(204)과 공급자 파티션(202)으로부터 및/또는 테넌트 파티션(204)과 공급자 파티션(202) 사이의 패킷 이동을 가능하게 한다. 이를 위해, 이상 논의된 바와 같이, 네트워크 인터페이스 제어기(120)는 로컬 메모리(122)에 대한 직접 메모리 액세스를 이용할 수 있다. 몇몇 실시예에서, 패킷 핸들러 모듈(306)은 네트워크 가상화 기능을 더 가속화하도록 패킷 가상화 모듈(314)을 포함한다. 그러한 실시예에서, 패킷 핸들러 모듈(306)은 이상 논의된 바와 같이 네트워크 가상화기(302)의 패킷 헤더 생성 모듈(312)로부터 수신된 공급자 패킷 헤더를 사용하여 출력 패킷을 캡슐화하고 입력 패킷을 디캡슐화하는 것을 담당한다. 어떠한 경우든, 패킷 핸들러 모듈(306)은 추가 처리(예컨대, 패킷 또는 통신 분석)를 위해 네트워크 가상화기로 입력/출력 패킷 또는 이들의 일부를 전달할 수 있다.
개시된 네트워크 가상화를 가능하게 하기 위해, 컴퓨팅 디바이스(102)는 도 4에 도시된 바와 같이 네트워크 스택(400)을 구현할 수 있다. 네트워크 스택(400)은 공급자 패킷 헤더에 대응하는 계층 2", 3" 및 4"의 추가를 제외하고는 종래의 네트워크 스택과 유사하다. 즉, 도시된 바와 같이 테넌트 패킷 계층 2 내지 7은 공급자 패킷 계층 1 내지 4"에 의해 캡슐화된다. 그러한 구성은 상당량의 패킷 기반 추상화를 제공한다.
이제 도 5 및 도 6을 참조하면, 사용시에, 컴퓨팅 디바이스(102)는 네트워크(106)로부터 패킷을 수신하는 방법(500)을 실행할 수 있다. 방법(500)은 컴퓨팅 디바이스(102)가 패킷이 네트워크(106)로부터 수신되었는지 여부를 판정하는 블록(502)에서 시작한다. 만일 수신되었으면, 방법(500)은 네트워크 인터페이스 제어기(120)가 패킷 처리 가속화가 인에이블링되었는지 여부를 판정하는 블록(504)으로 진행한다. 패킷 처리 가속화는 수동으로 또는 자동으로 인에이블링될 수 있고 대응하는 플래그 또는 표시자 레지스터, 값 또는 메모리 위치에 의해 표시될 수 있다.
패킷 처리 가속화가 인에이블링되지 않으면, 방법(500)은 공급자 파티션(202)의 네트워크 가상화기(302)가 패킷을 처리하는 블록(506)으로 진행한다. 이를 위해, 블록(508)에서, 네트워크 가상화기(302)의 패킷 처리 모듈(310)은 임의의 관련 테넌트 네트워크 가상화 콘텍스트를 패킷에 적용한다. 예컨대, 패킷 처리 모듈(310)은 지정된 테넌트 파티션(204)의 호스트(304)에 의해 요구되는 임의의 적합한 네트워킹 룰 또는 데이터 처리 기능을 적용할 수 있다. 블록(510)에서, 네트워크 가상화기(302)의 패킷 가상화 모듈(314)은 수신된 패킷으로부터 임의의 공급자 패킷 헤더를 스트립하고, 그 후 블록(514)에서 네트워크 가상화기(302)는 스트립된 패킷을 대응하는 테넌트 파티션의 네트워크 패킷의 착신 호스트로 포워딩한다. 이를 위해, 네트워크 가상화기(302)는 공급자-헤더-스트립된 패킷을 공급자향 포트(222)로 전달하고, 대응하는 테넌트 파티션의 호스트는 대응하는 테넌트향 포트(220)를 통해 공급자-헤더-스트립된 패킷을 수신한다. 그 후, 블록(516)에서, 대응하는 테넌트 파티션의 호스트는 수신된 패킷을 처리하고, 방법은 블록(502)으로 되돌아가서 추가 패킷의 수신을 기다린다.
블록(504)을 다시 참조하면, 패킷 처리 가속화가 인에이블링되면, 방법(500)은 네트워크 인터페이스 제어기(120)가 네트워크 인터페이스 제어기(120)의 메모리(122)가 패킷의 착신 테넌트 파티션(204)에 대한 네트워크 가상화 콘텍스트를 포함하는지 여부를 판정하는 블록(518)으로 진행한다. 만일 포함한다면, 방법(500)은 네트워크 인터페이스 제어기(120)가 패킷 처리 가속화할 준비가 되어있는지 여부를 판정하는 블록(520)으로 진행한다. 이를 위해, 네트워크 인터페이스 제어기(120)는 그 특정 테넌트에 대해 네트워크 가상화기에 의해 처리되는 임의의 나머지 또는 미정의 패킷이 존재하는지 여부를 판정한다. 즉, 네트워크 인터페이스 제어기(120)는 패킷이 적합한 순서로 처리되고 뒤바뀐 순서로 호스트(304)에 제공되지 않음을 보장한다.
네트워크 인터페이스 제어기(120)가 패킷 처리 가속화할 준비가 되면, 방법(500)은 네트워크 인터페이스 제어기(120)가 수신된 패킷을 처리하는 블록(522)으로 진행한다. 예컨대, 블록(524)에서, 네트워크 인터페이스 제어기(120)의 패킷 핸들러 모듈(306)은 메모리(122)에 저장된 임의의 관련 테넌트 네트워크 가상화 콘텍스트를 수신된 패킷에 적용한다. 예컨대, 패킷 핸들러 모듈(306)은 지정된 테넌트 파티션(204)의 호스트(304)에 의해 요구되는 임의의 적합한 네트워킹 룰 또는 데이터 처리 기능을 적용할 수 있다. 블록(526)에서, 네트워크 인터페이스 제어기(120)의 패킷 가상화 모듈(314)은 수신된 패킷으로부터 임의의 공급자 패킷 헤더를 스트립한다. 그 후 블록(528)에서 네트워크 인터페이스 제어기(120)의 패킷 핸들러 모듈(306)은 대응하는 테넌트향 포트(220)를 통해 지정된 테넌트 파티션(204)의 호스트(304)로 공급자-헤더-스트립된 패킷을 전달하고, 이상 논의된 바와 같이 블록(520)에서 호스트(304)는 수신된 패킷을 처리한다.
블록(518 및 520)을 다시 참조하면, 네트워크 인터페이스 제어기(120)의 메모리(122)가 관련 네트워크 가상화 콘텍스트를 포함하지 않거나 네트워크 인터페이스 제어기(120)가 패킷 처리 가속화할 준비가 되지 않으면, 방법(500)은 블록(530)으로 진행한다(도 6 참조). 블록(530)에서, 네트워크 가상화기(302)는 블록(508)에 관하여 이상 논의된 바와 같이 패킷을 처리한다. 예컨대, 블록(532)에서 네트워크 가상화기(302)의 패킷 처리 모듈(310)은 임의의 관련 테넌트 네트워크 가상화 콘텍스트를 패킷에 적용하고, 블록(534)에서 패킷 가상화 모듈(314)은 수신된 패킷으로부터 임의의 공급자 패킷 헤더를 스트립한다. 블록(536)에서, 네트워크 가상화기(302)는 공급자-헤더-스트립된 패킷을 공급자향 포트(222)로 전달하고, 대응하는 테넌트 파티션의 호스트는 대응하는 테넌트향 포트(220)를 통해 공급자-헤더-스트립된 패킷을 수신한다.
블록(542)에서, 네트워크 가상화기(302)는 또한 네트워크 인터페이스 제어기(120)의 패킷 핸들러 모듈(306)로 관련 테넌트 네트워크 가상화 콘텍스트를 전달하며, 이는 블록(544)에서 로컬 메모리(122)에 저장된다. 네트워크 가상화기(302)는 네트워크향 포트(224) 또는 공급자향 포트(222)를 통해 네트워크 인터페이스 제어기(120)로 관련 테넌트 네트워크 가상화 콘텍스트를 전달할 수 있다. 추가적으로, 블록(546)에서, 네트워크 인터페이스 제어기(120)는 관련 테넌트 파티션에 대한 임의의 나머지 또는 미정의 패킷을 소거하여 네트워크 인터페이스 제어기(120)가 미래의 패킷 수신시에 패킷 처리 가속화할 준비가 됨을 보장한다. 그 후 방법(500)은 컴퓨팅 디바이스(102)가 수신될 추가 패킷을 대기하는 블록(502)으로 되돌아간다.
이제 도 7 및 도 8을 참조하면, 사용시에, 컴퓨팅 디바이스(102)는 네트워크(106)를 통해 패킷을 송신하는 방법(700)을 실행할 수 있다. 방법(700)은 컴퓨팅 디바이스(102)가 패킷이 송신되는지 여부를 판정하는 블록(702)에서 시작한다. 만일 패킷이 송신되면, 방법(700)은 관련 테넌트 파티션의 호스트(304)가 송신될 패킷을 준비하고 그 패킷을 테넌트향 포트(220)를 통해(예컨대, 메모리(122)에 대한 직접 메모리 액세스를 통해) 송신하는 블록(504)으로 진행한다. 이상 논의된 바와 같이 테넌트향 포트(220)가 공급자향 포트(222)에 통신가능하게 접속되므로, 블록(706)에서 송신된 패킷은 공급자향 포트(222)를 통해 공급자 파티션(202)의 네트워크 가상화기(302)에 의해 수신된다. 블록(708)에서, 네트워크 인터페이스 제어기(120)는 패킷 처리 가속화가 인에이블링되었는지 여부를 판정한다.
패킷 처리 가속화가 인에이블링되지 않으면, 방법(700)은 네트워크 가상화기(302)가 패킷을 처리하는 블록(710)으로 진행한다. 예컨대, 블록(712)에서, 네트워크 가상화기(302)의 패킷 처리 모듈(310)은 패킷에 임의의 관련 테넌트 네트워크 가상화 콘텍스트를 적용한다. 블록(714)에서, 패킷 헤더 생성 모듈(312)은 공급자 패킷 헤더를 생성하고, 블록(716)에서 패킷 가상화 모듈(314)은 생성된 공급자 패킷 헤더를 사용하여 패킷을 캡슐화한다. 그 후, 블록(718)에서, 네트워크 가상화기(302)는 네트워크향 포트(224)를 통해 착신 어드레스로 네트워크(106)에 걸쳐 캡슐화된 패킷을 송신한다.
블록(708)을 다시 참조하면, 패킷 처리 가속화가 인에이블링되면, 방법(700)은 네트워크 인터페이스 제어기(120)가 네트워크 인터페이스 제어기(120)의 메모리(122)가 패킷이 발신되는 테넌트 파티션(204)에 대한 네트워크 가상화 콘텍스트를 포함하는지 여부를 판정하는 블록(720)으로 진행한다. 만일 포함하면, 방법(700)은 네트워크 인터페이스 제어기(120)가 자신이 패킷 처리 가속화할 준비가 되어있는지 여부를 판정하는 블록(722)으로 진행한다. 이상 논의된 바와 같이, 이를 위해, 네트워크 인터페이스 제어기(120)는 그 특정 테넌트에 대해 네트워크 가상화기에 의해 처리되는 임의의 나머지 또는 미정의 패킷이 존재하는지 여부를 판정할 수 있다.
네트워크 인터페이스 제어기(120)가 패킷 처리 가속화할 준비가 되면, 방법(700)은 이상 논의된 바와 같이 네트워크 가상화기(302)의 패킷 헤더 생성 모듈(312)이 공급자 패킷 헤더를 생성하고 그 공급자 패킷 헤더를 네트워크향 포트(224) 또는 공급자향 포트(222)를 통해 네트워크 인터페이스 제어기(120)로 전달하는 블록(724)으로 진행한다. 그 후, 블록(726)에서, 네트워크 인터페이스 제어기(120)는 송신될 패킷을 처리한다. 이를 위해, 블록(728)에서 네트워크 인터페이스 제어기(120)의 패킷 가상화 모듈(314)은 수신된 공급자 패킷 헤더를 사용하여 패킷을 캡슐화한다. 블록(730)에서, 패킷 핸들러 모듈(306)은 패킷에 임의의 관련 테넌트 네트워크 가상화 콘텍스트를 적용한다. 몇몇 실시예에서, 블록(734)에서 네트워크 인터페이스 제어기(120)는 또한 추가 처리 및/또는 분석을 위해 공급자 파티션(202)의 네트워크 가상화기(302)로 패킷 또는 패킷의 일부를 전달할 수 있다. 이와 상관없이, 블록(736)에서, 네트워크 인터페이스 제어기(120)는 이상 논의된 바와 같이 네트워크향 포트(224)를 통해 네트워크(106)에 걸쳐 캡슐화된 패킷을 송신한다.
블록(720 및 722)을 다시 참조하면, 네트워크 인터페이스 제어기(120)의 메모리(122)가 관련 네트워크 가상화 콘텍스트를 포함하지 않거나 네트워크 인터페이스 제어기(120)가 패킷 처리 가속화할 준비가 되지 않으면, 방법(700)은 블록(738)으로 진행한다(도 8 참조). 블록(738)에서, 네트워크 가상화기(302)는 블록(710)에 관하여 이상 논의된 바와 같이 패킷을 처리한다. 예컨대, 블록(740)에서 패킷 처리 모듈(310)은 패킷에 임의의 관련 테넌트 네트워크 가상화 콘텍스트를 적용하고, 블록(742)에서 패킷 헤더 생성 모듈(312)은 공급자 패킷 헤더를 생성하며, 블록(744)에서 패킷 가상화 모듈(314)은 생성된 공급자 패킷 헤더를 사용하여 패킷을 캡슐화한다. 그 후, 블록(746)에서, 네트워크 가상화기(302)는 네트워크향 포트(224)를 통해 착신 어드레스로 네트워크(106)에 걸쳐 캡슐화된 패킷을 송신한다.
블록(748)에서, 네트워크 가상화기(302)는 네트워크 인터페이스 제어기(120)의 패킷 핸들러 모듈(306)로 관련 테넌트 네트워크 가상화 콘텍스트를 전달하며, 이는 블록(750)에서 로컬 메모리(122)에 저장된다. 이상 논의된 바와 같이, 네트워크 가상화기(302)는 네트워크향 포트(224) 또는 공급자향 포트(222)를 통해 네트워크 인터페이스 제어기(120)로 관련 테넌트 네트워크 가상화 콘텍스트를 전달할 수 있다. 추가적으로, 블록(752)에서, 네트워크 인터페이스 제어기(120)는 블록(552)에서 네트워크 가상화기로부터 관련 테넌트 파티션에 대한 임의의 나머지 또는 미정의 패킷을 소거하여 네트워크 인터페이스 제어기(120)가 미래의 패킷 송신을 위해 패킷 처리 가속화할 준비가 됨을 보장한다. 그 후 방법(700)은 컴퓨팅 디바이스(102)가 추가 패킷 송신을 기다리는 블록(702)으로 되돌아간다.
예시
본 명세서에 개시된 디바이스, 시스템 및 방법의 예시가 이하에 제공된다. 디바이스, 시스템 및 방법의 실시예는 후술되는 예시 중 임의의 하나 이상 및 이의 임의의 조합을 포함할 수 있다.
예시 1은 가속화된 네트워크 가상화를 위한 컴퓨팅 디바이스를 포함하며, 컴퓨팅 디바이스는 컴퓨팅 디바이스의 테넌트 파티션 상에 수립된 호스트와, 테넌트 파티션과 상이한 컴퓨팅 디바이스의 공급자 파티션에 수립된 네트워크 가상화기 -네트워크 가상화기는 공급자 헤더를 생성함- 와, 테넌트 파티션의 호스트와의 통신을 가능하게 하는 제 1 포트와, 공급자 파티션의 네트워크 가상화기와의 통신을 가능하게 하는 제 2 포트 및 컴퓨팅 디바이스의 외부에 있는 네트워크와의 통신을 가능하게 하는 제 3 포트를 가진 네트워크 인터페이스 제어기를 포함하되, 네트워크 인터페이스 제어기는 테넌트 파티션과 상기 공급자 파티션 사이에서 패킷을 전달하고 상기 제 3 포트를 통해 상기 네트워크에 걸쳐 상기 공급자 헤더로 캡슐화된 패킷을 송신하는 패킷 핸들러 모듈을 포함한다.
예시 2는 예시 1의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 제 1 포트를 통해 테넌트 파티션의 호스트로부터 패킷을 수신하고 제 2 포트를 통해 공급자 파티션의 네트워크 가상화기로 패킷을 전달하며, 네트워크 가상화기는 (i) 패킷에 대한 공급자 헤더를 생성하고, (ii) 공급자 헤더를 사용하여 패킷을 캡슐화하며, (iii) 네트워크 인터페이스 제어기의 제 3 포트를 통해 네트워크로 캡슐화된 패킷을 전달한다.
예시 3은 예시 1과 2 중 어느 하나의 청구대상을 포함하며, 네트워크 가상화기는 또한 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하고, 패킷에 호스트 네트워크 가상화 콘텍스트를 적용한다.
예시 4는 예시 1 내지 3 중 어느 하나의 청구대상을 포함하며, 네트워크 가상화기는 패킷에 대한 공급자 헤더를 생성하고 제 2 포트 또는 제 3 포트를 통해 네트워크 인터페이스 제어기로 공급자 헤더를 전달하며, 네트워크 인터페이스 제어기는 (i) 제 1 포트를 통해 테넌트 파티션의 호스트로부터 패킷을 수신하고, (ii) 제 2 포트 또는 제 3 포트를 통해 네트워크 가상화기로부터 공급자 헤더를 수신하며, (iii) 공급자 헤더로 패킷을 캡슐화하고, (iv) 제 3 포트를 통해 네트워크에 걸쳐 캡슐화된 패킷을 송신한다.
예시 5는 예시 1 내지 4 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 또한 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하고, 패킷에 호스트 네트워크 가상화 콘텍스트를 적용한다.
예시 6은 예시 1 내지 5 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 또한 제 1 포트를 통해 테넌트 파티션의 호스트로부터 패킷을 수신하고, 호스트와 연관된 네트워크 가상화 콘텍스트가 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하며, 호스트와 연관된 네트워크 가상화 콘텍스트가 로컬 메모리에 저장되어 있다는 판정에 응답하여, (i) 로컬 메모리로부터 호스트와 연관된 네트워크 가상화 콘텍스트를 불러오고, (ii) 패킷에 네트워크 가상화 콘텍스트를 적용하며, (iii) 네트워크 가상화기로부터 공급자 헤더를 수신하고, (iv) 공급자 헤더로 패킷을 캡슐화한다.
예시 7은 예시 1 내지 6 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 (i) 제 1 포트를 통해 테넌트 파티션의 호스트로부터 패킷을 수신하고, (ii) 호스트와 연관된 네트워크 가상화 콘텍스트가 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하며, (iii) 호스트와 연관된 네트워크 가상화 콘텍스트가 로컬 메모리에 저장되어 있지 않다는 판정에 응답하여 제 2 포트를 통해 공급자 파티션의 네트워크 가상화기로 패킷을 전달하고, 네트워크 가상화기는 (i) 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하고, (ii) 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하며, (iii) 공급자 헤더로 패킷을 캡슐화하고, (iv) 제 2 포트 또는 제 3 포트를 통해, 네트워크 인터페이스 제어기로 호스트 네트워크 가상화 콘텍스트를 전달하고, (v) 네트워크 인터페이스 제어기의 제 3 포트를 통해, 네트워크로 캡슐화된 패킷을 전달한다.
예시 8은 예시 1 내지 7 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 또한 네트워크 인터페이스 제어기의 로컬 메모리에 호스트 네트워크 가상화 콘텍스트를 저장한다.
예시 9는 예시 1 내지 8 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 또한 테넌트 파티션의 호스트에 의해 생성된 다른 패킷을 제 1 포트를 통해 수신하고, 로컬 메모리에 저장된 호스트 네트워크 가상화 콘텍스트를 불러오며, 호스트 네트워크 가상화 콘텍스트를 패킷에 적용한다.
예시 10은 예시 1 내지 9 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 또한 제 2 포트를 통해 네트워크 가상화기로부터 공급자 헤더를 수신하고, 공급자 헤더로 패킷을 캡슐화한다.
예시 11은 예시 1 내지 10 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 또한 제 1 포트를 통해 테넌트 파티션의 호스트로부터 패킷을 수신하고, 네트워크 가상화기로부터 호스트와 연관된 호스트 네트워크 가상화 콘텍스트를 수신하며, 패킷에 호스트 네트워크 가상화 콘텍스트를 적용한다.
예시 12는 예시 1 내지 11 중 어느 하나의 청구대상을 포함하며, 네트워크 가상화기는 네트워크 인터페이스 제어기의 제 3 포트를 통해 네트워크로부터 패킷을 수신하고, 수신된 패킷의 공급자 헤더를 스트립하며, 제 2 포트를 통해 테넌트 파티션의 호스트로 스트립된 수신된 패킷을 전달하고, 네트워크 인터페이스 제어기는 제 2 포트에서 제 1 포트로 스트립된 수신된 패킷을 전달한다.
예시 13은 예시 1 내지 12 중 어느 하나의 청구대상을 포함하며, 네트워크 가상화기는 또한 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하고, 패킷에 호스트 네트워크 가상화 콘텍스트를 적용한다.
예시 14는 예시 1 내지 13 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는, 패킷의 수신 후에, 호스트와 연관된 네트워크 가상화 콘텍스트가 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하고, 호스트와 연관된 네트워크 가상화 콘텍스트가 로컬 메모리에 저장되어 있다는 판정에 응답하여, 로컬 메모리로부터 호스트와 연관된 네트워크 가상화 콘텍스트를 불러오고 다른 패킷에 네트워크 가상화 콘텍스트를 적용한다.
예시 15는 예시 1 내지 14 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 호스트와 연관된 네트워크 가상화 콘텍스트가 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하며, 호스트와 연관된 네트워크 가상화 콘텍스트가 로컬 메모리에 저장되어 있지 않다는 판정에 응답하여 제 3 포트를 통해 공급자 파티션의 네트워크 가상화기로 패킷을 전달하고, 네트워크 가상화기는 (i) 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하고, (ii) 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하며, (iii) 제 2 포트를 통해, 호스트 네트워크 가상화 콘텍스트를 네트워크 인터페이스 제어기로 전달한다.
예시 16은 예시 1 내지 15 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 네트워크 인터페이스 제어기의 로컬 메모리에 호스트 네트워크 가상화 콘텍스트를 저장한다.
예시 17은 예시 1 내지 16 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 제 3 포트를 통해 네트워크로부터 다른 패킷을 수신하고, 로컬 메모리에 저장된 호스트 네트워크 가상화 콘텍스트를 불러오며, 호스트 네트워크 가상화 콘텍스트를 다른 패킷에 적용한다.
예시 18은 예시 1 내지 17 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 또한 다른 패킷의 공급자 헤더를 스트립하고, 스트립된 다른 패킷을 제 1 포트를 통해 테넌트 파티션의 호스트에 전달한다.
예시 19는 예시 1 내지 18 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 또한 제 3 포트를 통해 네트워크로부터 패킷을 수신하고, 수신된 패킷의 공급자 헤더를 스트립하며, 스트립된 패킷을 제 1 포트를 통해 테넌트 파티션의 호스트에 전달한다.
예시 20은 예시 1 내지 19 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기는 또한 다른 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하고, 다른 패킷에 호스트 네트워크 가상화 콘텍스트를 적용한다.
예시 21은 가속화된 네트워크 가상화를 위한 방법을 포함하고, 방법은 컴퓨팅 디바이스의 테넌트 파티션의 호스트에 의해, 컴퓨팅 디바이스로부터 송신을 위한 패킷을 생성하는 단계와, 테넌트 파티션과 상이한 컴퓨팅 디바이스의 공급자 파티션에 수립된 네트워크 가상화기에 의해, 패킷에 대한 공급자 헤더를 생성하는 단계와, 컴퓨팅 디바이스의 네트워크 인터페이스 제어기의 제 1 포트에 의해, 테넌트 파티션의 호스트로부터 패킷을 수신하는 단계와, 네트워크 인터페이스 제어기의 제 2 포트에 의해, 공급자 헤더로 패킷을 캡슐화하는 네트워크 가상화기와 통신하는 단계와, 네트워크 인터페이스 제어기의 제 3 포트에 의해, 컴퓨팅 디바이스의 외부에 있는 네트워크에 걸쳐 공급자 헤더로 캡슐화된 패킷을 송신하는 단계를 포함한다.
예시 22는 예시 21의 청구대상을 포함하며, 네트워크 가상화기와 통신하는 단계는 네트워크 인터페이스 제어기로부터, 테넌트 파티션의 호스트로부터 수신된 패킷을 제 2 포트를 통해 공급자 파티션의 네트워크 가상화기로 전달하는 단계와, 네트워크 가상화기에 의해, 공급자 헤더로 패킷을 캡슐화하는 단계와, 네트워크 가상화기에 의해, 네트워크 인터페이스 제어기의 제 3 포트를 통해 네트워크로 캡슐화된 패킷을 전달하는 단계를 포함한다.
예시 23은 예시 21 및 22의 청구대상을 포함하며, 네트워크 가상화기에 의해, 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 단계와, 네트워크 가상화기에 의해, 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 단계를 더 포함한다.
예시 24는 예시 21 내지 23 중 어느 하나의 청구대상을 포함하며, 네트워크 가상화기와 통신하는 단계는 네트워크 인터페이스 제어기에 의해, 제 2 포트 또는 제 3 포트를 통해 네트워크 가상화기로부터 공급자 헤더를 수신하는 단계와, 네트워크 인터페이스 제어기에 의해, 공급자 헤더로 패킷을 캡슐화하는 단계를 포함한다.
예시 25는 예시 21 내지 24 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기에 의해, 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 단계와, 네트워크 인터페이스 제어기에 의해, 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 단계를 더 포함한다.
예시 26은 예시 21 내지 25 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기에 의해, 호스트와 연관된 네트워크 가상화 콘텍스트가 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하는 단계와, 호스트와 연관된 네트워크 가상화 콘텍스트가 로컬 메모리에 저장되어 있다는 판정에 응답하여, (i) 네트워크 인터페이스 제어기에 의해, 로컬 메모리로부터 호스트와 연관된 네트워크 가상화 콘텍스트를 불러오는 단계와, (ii) 네트워크 인터페이스 제어기에 의해, 패킷에 네트워크 가상화 콘텍스트를 적용하는 단계와, (iii) 네트워크 인터페이스 제어기에 의해, 네트워크 가상화기로부터 공급자 헤더를 수신하는 단계와, (iv) 네트워크 인터페이스 제어기에 의해, 공급자 헤더로 패킷을 캡슐화하는 단계를 더 포함한다.
예시 27은 예시 21 내지 26 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기에 의해, 호스트와 연관된 네트워크 가상화 콘텍스트가 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하는 단계와, 호스트와 연관된 네트워크 가상화 콘텍스트가 로컬 메모리에 저장되지 않는다는 판정에 응답하여, (i) 네트워크 인터페이스 제어기로부터, 제 2 포트를 통해 공급자 파티션의 네트워크 가상화기로 패킷을 전달하는 단계와, (ii) 네트워크 가상화기에 의해, 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 단계와, (iii) 네트워크 가상화기에 의해, 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 단계와, (iv) 네트워크 가상화기에 의해, 공급자 헤더로 패킷을 캡슐화하는 단계와, (v) 네트워크 인터페이스 제어기에 의해 네트워크 가상화기로부터 호스트 네트워크 가상화 콘텍스트를 수신하는 단계를 더 포함한다.
예시 28은 예시 21 내지 27 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기의 로컬 메모리에 호스트 네트워크 가상화 콘텍스트를 저장하는 단계를 더 포함한다.
예시 29는 예시 21 내지 28 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기의 제 1 포트에 의해, 테넌트 파티션의 호스트에 의해 생성된 다른 패킷을 수신하는 단계와, 네트워크 인터페이스 제어기에 의해, 로컬 메모리에 저장된 호스트 네트워크 가상화 콘텍스트를 불러오는 단계와, 네트워크 인터페이스 제어기에 의해, 호스트 네트워크 가상화 콘텍스트를 패킷에 적용하는 단계를 더 포함한다.
예시 30은 예시 21 내지 29 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기에 의해, 제 2 포트를 통해 네트워크 가상화기로부터 공급자 헤더를 수신하는 단계와, 네트워크 인터페이스 제어기에 의해, 공급자 헤더로 패킷을 캡슐화하는 단계를 더 포함한다.
예시 31은 예시 21 내지 30 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기에 의해 네트워크 가상화기로부터 호스트와 연관된 호스트 네트워크 가상화 콘텍스트를 수신하는 단계와, 네트워크 인터페이스 제어기에 의해, 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 단계를 더 포함한다.
예시 32는 예시 21 내지 31 중 어느 하나의 청구대상을 포함하며, 네트워크 가상화기에 의해, 제 3 포트를 통해 네트워크로부터 다른 패킷을 수신하는 단계와, 네트워크 가상화기에 의해, 다른 패킷의 공급자 헤더를 스트립하는 단계와, 네트워크 가상화기에 의해, 제 2 포트를 통해 테넌트 파티션의 호스트로 스트립된 다른 패킷을 전달하는 단계와, 네트워크 인터페이스 제어기에 의해, 제 2 포트에서 제 3 포트로 스트립된 다른 패킷을 전달하는 단계를 더 포함한다.
예시 33은 예시 21 내지 32 중 어느 하나의 청구대상을 포함하며, 네트워크 가상화기에 의해, 다른 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 단계와, 네트워크 가상화기에 의해, 다른 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 단계를 더 포함한다.
예시 34는 예시 21 내지 33 중 어느 하나의 청구대상을 포함하며, 다른 패킷의 수신 후에 네트워크 인터페이스 제어기에 의해, 호스트와 연관된 네트워크 가상화 콘텍스트가 네트워크 인터페이스 제어기의 로컬 메모리에 저장되는지 여부를 판정하는 단계와, 호스트와 연관된 네트워크 가상화 콘텍스트가 로컬 메모리에 저장된다는 판정에 응답하여, (i) 네트워크 인터페이스 제어기에 의해, 로컬 메모리로부터 호스트와 연관된 네트워크 가상화 콘텍스트를 불러오는 단계와, (ii) 네트워크 인터페이스 제어기에 의해, 다른 패킷에 네트워크 가상화 콘텍스트를 적용하는 단계를 더 포함한다.
예시 35는 예시 21 내지 34 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기에 의해, 호스트와 연관된 네트워크 가상화 콘텍스트가 네트워크 인터페이스 제어기의 로컬 메모리에 저장되는지 여부를 판정하는 단계와, 호스트와 연관된 네트워크 가상화 콘텍스트가 로컬 메모리에 저장되어 있지 않다는 판정에 응답하여, (i) 네트워크 인터페이스 제어기로부터, 제 3 포트를 통해 공급자 파티션의 네트워크 가상화기로 다른 패킷을 전달하는 단계와, (ii) 네트워크 가상화기에 의해, 다른 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 단계와, (iii) 네트워크 가상화기에 의해, 다른 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 단계와, (iv) 네트워크 인터페이스 제어기에 의해 네트워크 가상화기로부터 호스트 네트워크 가상화 콘텍스트를 수신하는 단계를 더 포함한다.
예시 36은 예시 21 내지 35 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기의 로컬 메모리에 호스트 네트워크 가상화 콘텍스트를 저장하는 단계를 더 포함한다.
예시 37은 예시 21 내지 36 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기에 의해, 제 3 포트를 통해 네트워크로부터 추가 패킷을 수신하는 단계와, 네트워크 인터페이스 제어기에 의해, 로컬 메모리에 저장된 호스트 네트워크 가상화 콘텍스트를 불러오는 단계와, 네트워크 인터페이스 제어기에 의해, 호스트 네트워크 가상화 콘텍스트를 추가 패킷에 적용하는 단계를 더 포함한다.
예시 38은 예시 21 내지 37 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기에 의해, 추가 패킷의 공급자 헤더를 스트립하는 단계와, 네트워크 인터페이스 제어기에 의해, 제 1 포트를 통해 테넌트 파티션의 호스트로 스트립된 추가 패킷을 전달하는 단계를 더 포함한다.
예시 39는 예시 21 내지 38 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기에 의해, 제 3 포트를 통해 네트워크로부터 다른 패킷을 수신하는 단계와, 네트워크 인터페이스 제어기에 의해, 수신된 다른 패킷의 공급자 헤더를 스트립하는 단계와, 네트워크 인터페이스 제어기에 의해, 제 1 포트를 통해 테넌트 파티션의 호스트로 스트립된 다른 패킷을 전달하는 단계를 더 포함한다.
예시 40은 예시 21 내지 39 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기에 의해, 다른 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 단계와, 네트워크 인터페이스 제어기에 의해, 다른 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 단계를 더 포함한다.
예시 41은 실행에 응답하여 컴퓨팅 디바이스로 하여금 예시 21 내지 40 중 어느 하나의 방법을 수행하게 하는 복수의 명령어가 저장되어 있는 하나 이상의 머신 판독가능한 저장 매체를 포함한다.
예시 42는 가속화된 네트워크 가상화를 위한 컴퓨팅 디바이스를 포함하고, 컴퓨팅 디바이스는 컴퓨팅 디바이스로부터 송신을 위한 패킷을 생성하는 수단과, 패킷에 대한 공급자 헤더를 생성하는 수단과, 테넌트 파티션의 호스트로부터 패킷을 수신하는 수단과, 공급자 헤더로 패킷을 캡슐화하는 네트워크 가상화기와 통신하는 수단과, 컴퓨팅 디바이스의 외부에 있는 네트워크에 걸쳐 공급자 헤더로 캡슐화된 패킷을 송신하는 수단을 포함한다.
예시 43은 예시 42의 청구대상을 포함하며, 네트워크 가상화기와 통신하는 수단은 네트워크 인터페이스 제어기로부터, 테넌트 파티션의 호스트로부터 수신된 패킷을 제 2 포트를 통해 공급자 파티션의 네트워크 가상화기로 전달하는 수단과, 공급자 헤더로 패킷을 캡슐화하는 수단과, 네트워크 인터페이스 제어기의 제 3 포트를 통해 네트워크로 캡슐화된 패킷을 전달하는 수단을 포함한다.
예시 44는 예시 42 및 43의 청구대상을 포함하며, 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 수단과, 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 수단을 더 포함한다.
예시 45는 예시 42 내지 44 중 어느 하나의 청구대상을 포함하며, 네트워크 가상화기와 통신하는 수단은 제 2 포트 또는 제 3 포트를 통해 네트워크 가상화기로부터 공급자 헤더를 수신하는 수단과, 공급자 헤더로 패킷을 캡슐화하는 수단을 포함한다.
예시 46은 예시 42 내지 45 중 어느 하나의 청구대상을 포함하며, 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 수단과, 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 수단을 더 포함한다.
예시 47은 예시 42 내지 46 중 어느 하나의 청구대상을 포함하며, 호스트와 연관된 네트워크 가상화 콘텍스트가 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하는 수단과, 호스트와 연관된 네트워크 가상화 콘텍스트가 로컬 메모리에 저장되어 있다는 판정에 응답하여, (i) 로컬 메모리로부터 호스트와 연관된 네트워크 가상화 콘텍스트를 불러오는 수단과, (ii) 패킷에 네트워크 가상화 콘텍스트를 적용하는 수단과, (iii) 네트워크 가상화기로부터 공급자 헤더를 수신하는 수단과, (iv) 공급자 헤더로 패킷을 캡슐화하는 수단을 더 포함한다.
예시 48은 예시 42 내지 47 중 어느 하나의 청구대상을 포함하며, 호스트와 연관된 네트워크 가상화 콘텍스트가 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하는 수단과, 호스트와 연관된 네트워크 가상화 콘텍스트가 로컬 메모리에 저장되어 있지 않다는 판정에 응답하여, (i) 제 2 포트를 통해 공급자 파티션의 네트워크 가상화기로 패킷을 전달하는 수단과, (ii) 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 수단과, (iii) 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 수단과, (iv) 공급자 헤더로 패킷을 캡슐화하는 수단과, (v) 호스트 네트워크 가상화 콘텍스트를 수신하는 수단을 더 포함한다.
예시 49는 예시 42 내지 48 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기의 로컬 메모리에 호스트 네트워크 가상화 콘텍스트를 저장하는 수단을 더 포함한다.
예시 50은 예시 42 내지 49 중 어느 하나의 청구대상을 포함하며, 테넌트 파티션의 호스트에 의해 생성된 다른 패킷을 수신하는 수단과, 로컬 메모리에 저장된 호스트 네트워크 가상화 콘텍스트를 불러오는 수단과, 호스트 네트워크 가상화 콘텍스트를 패킷에 적용하는 수단을 더 포함한다.
예시 51은 예시 42 내지 50 중 어느 하나의 청구대상을 포함하며, 제 2 포트를 통해 네트워크 가상화기로부터 공급자 헤더를 수신하는 수단과, 공급자 헤더로 패킷을 캡슐화하는 수단을 더 포함한다.
예시 52는 예시 42 내지 51 중 어느 하나의 청구대상을 포함하며, 호스트와 연관된 호스트 네트워크 가상화 콘텍스트를 수신하는 수단과, 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 수단을 더 포함한다.
예시 53은 예시 42 내지 52 중 어느 하나의 청구대상을 포함하며, 제 3 포트를 통해 네트워크로부터 다른 패킷을 수신하는 수단과, 다른 패킷의 공급자 헤더를 스트립하는 수단과, 제 2 포트를 통해 테넌트 파티션의 호스트로 스트립된 다른 패킷을 전달하는 수단과, 제 2 포트에서 제 3 포트로 스트립된 다른 패킷을 전달하는 수단을 더 포함한다.
예시 54는 예시 42 내지 53 중 어느 하나의 청구대상을 포함하며, 다른 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 수단과, 다른 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 수단을 더 포함한다.
예시 55는 예시 42 내지 54 중 어느 하나의 청구대상을 포함하며, 다른 패킷의 수신 후에, 호스트와 연관된 네트워크 가상화 콘텍스트가 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하는 수단과, 호스트와 연관된 네트워크 가상화 콘텍스트가 로컬 메모리에 저장되어 있다는 판정에 응답하여, (i) 로컬 메모리로부터 호스트와 연관된 네트워크 가상화 콘텍스트를 불러오는 수단과, (ii) 다른 패킷에 네트워크 가상화 콘텍스트를 적용하는 수단을 더 포함한다.
예시 56은 예시 42 내지 55 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기에 의해, 호스트와 연관된 네트워크 가상화 콘텍스트가 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하는 수단과, 호스트와 연관된 네트워크 가상화 콘텍스트가 로컬 메모리에 저장되어 있지 않다는 판정에 응답하여, (i) 제 3 포트를 통해 공급자 파티션의 네트워크 가상화기로 다른 패킷을 전달하는 수단과, (ii) 다른 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 수단과, (iii) 다른 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 수단과, (iv) 호스트 네트워크 가상화 콘텍스트를 수신하는 수단을 더 포함한다.
예시 57은 예시 42 내지 56 중 어느 하나의 청구대상을 포함하며, 네트워크 인터페이스 제어기의 로컬 메모리에 호스트 네트워크 가상화 콘텍스트를 저장하는 수단을 더 포함한다.
예시 58은 예시 42 내지 57 중 어느 하나의 청구대상을 포함하며, 제 3 포트를 통해 네트워크로부터 추가 패킷을 수신하는 수단과, 로컬 메모리에 저장된 호스트 네트워크 가상화 콘텍스트를 불러오는 수단과, 호스트 네트워크 가상화 콘텍스트를 추가 패킷에 적용하는 수단을 더 포함한다.
예시 59는 예시 42 내지 58 중 어느 하나의 청구대상을 포함하며, 추가 패킷의 공급자 헤더를 스트립하는 수단과, 제 1 포트를 통해 테넌트 파티션의 호스트로 스트립된 추가 패킷을 전달하는 수단을 더 포함한다.
예시 60은 예시 42 내지 59 중 어느 하나의 청구대상을 포함하며, 제 3 포트를 통해 네트워크로부터 다른 패킷을 수신하는 수단과, 수신된 다른 패킷의 공급자 헤더를 스트립하는 수단과, 제 1 포트를 통해 테넌트 파티션의 호스트로 스트립된 다른 패킷을 전달하는 수단을 더 포함한다.
예시 61은 예시 42 내지 60 중 어느 하나의 청구대상을 포함하며, 다른 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 수단과, 다른 패킷에 호스트 네트워크 가상화 콘텍스트를 적용하는 수단을 더 포함한다.

Claims (25)

  1. 가속화된 네트워크 가상화를 위한 컴퓨팅 디바이스로서,
    상기 컴퓨팅 디바이스의 테넌트 파티션(a tenant partition) 상에 수립된 호스트와,
    상기 테넌트 파티션과 상이한 상기 컴퓨팅 디바이스의 공급자 파티션에 수립된 네트워크 가상화기 -상기 네트워크 가상화기는 공급자 헤더를 생성함- 와,
    상기 테넌트 파티션의 호스트와의 통신을 가능하게 하는 제 1 포트와, 상기 공급자 파티션의 네트워크 가상화기와의 통신을 가능하게 하는 제 2 포트 및 상기 컴퓨팅 디바이스의 외부에 있는 네트워크와의 통신을 가능하게 하는 제 3 포트를 가진 네트워크 인터페이스 제어기를 포함하되,
    상기 네트워크 인터페이스 제어기는 상기 테넌트 파티션과 상기 공급자 파티션 사이에서 패킷을 전달하고 상기 제 3 포트를 통해 상기 네트워크에 걸쳐 상기 공급자 헤더로 캡슐화된 패킷을 송신하는 패킷 핸들러 모듈을 포함하는
    컴퓨팅 디바이스.
  2. 제 1 항에 있어서,
    상기 네트워크 인터페이스 제어기는 상기 제 1 포트를 통해 상기 테넌트 파티션의 호스트로부터 패킷을 수신하고 상기 제 2 포트를 통해 상기 공급자 파티션의 상기 네트워크 가상화기로 상기 패킷을 전달하며,
    상기 네트워크 가상화기는 (i) 상기 패킷에 대한 공급자 헤더를 생성하고, (ii) 상기 공급자 헤더를 사용하여 상기 패킷을 캡슐화하며, (iii) 상기 네트워크 인터페이스 제어기의 상기 제 3 포트를 통해 상기 네트워크로 상기 캡슐화된 패킷을 전달하는
    컴퓨팅 디바이스.
  3. 제 1 항에 있어서,
    상기 네트워크 가상화기는 상기 패킷에 대한 공급자 헤더를 생성하고 상기 제 2 포트 또는 상기 제 3 포트를 통해 상기 네트워크 인터페이스 제어기로 상기 공급자 헤더를 전달하며,
    상기 네트워크 인터페이스 제어기는 (i) 상기 제 1 포트를 통해 상기 테넌트 파티션의 호스트로부터 패킷을 수신하고, (ii) 상기 제 2 포트 또는 상기 제 3 포트를 통해 상기 네트워크 가상화기로부터 상기 공급자 헤더를 수신하며, (iii) 상기 공급자 헤더로 상기 패킷을 캡슐화하고, (iv) 상기 제 3 포트를 통해 상기 네트워크에 걸쳐 상기 캡슐화된 패킷을 송신하는
    컴퓨팅 디바이스.
  4. 제 3 항에 있어서,
    상기 네트워크 인터페이스 제어기는 또한
    상기 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하고,
    상기 패킷에 상기 호스트 네트워크 가상화 콘텍스트를 적용하는
    컴퓨팅 디바이스.
  5. 제 1 항에 있어서,
    상기 네트워크 인터페이스 제어기는 또한
    상기 제 1 포트를 통해 상기 테넌트 파티션의 호스트로부터 패킷을 수신하고,
    상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하며,
    상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 로컬 메모리에 저장되어 있다는 판정에 응답하여, (i) 상기 로컬 메모리로부터 상기 호스트와 연관된 상기 네트워크 가상화 콘텍스트를 불러오고, (ii) 상기 패킷에 상기 네트워크 가상화 콘텍스트를 적용하며, (iii) 상기 네트워크 가상화기로부터 공급자 헤더를 수신하고, (iv) 상기 공급자 헤더로 상기 패킷을 캡슐화하는
    컴퓨팅 디바이스.
  6. 제 1 항에 있어서,
    상기 네트워크 인터페이스 제어기는 (i) 상기 제 1 포트를 통해 상기 테넌트 파티션의 호스트로부터 패킷을 수신하고, (ii) 상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하며, (iii) 상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 로컬 메모리에 저장되어 있지 않다는 판정에 응답하여 상기 제 2 포트를 통해 상기 공급자 파티션의 네트워크 가상화기로 상기 패킷을 전달하고,
    상기 네트워크 가상화기는 (i) 상기 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하고, (ii) 상기 패킷에 상기 호스트 네트워크 가상화 콘텍스트를 적용하며, (iii) 상기 공급자 헤더로 상기 패킷을 캡슐화하고, (iv) 상기 제 2 포트 또는 상기 제 3 포트를 통해, 상기 네트워크 인터페이스 제어기로 상기 호스트 네트워크 가상화 콘텍스트를 전달하고, (v) 상기 네트워크 인터페이스 제어기의 제 3 포트를 통해, 상기 네트워크로 상기 캡슐화된 패킷을 전달하는
    컴퓨팅 디바이스.
  7. 제 1 항에 있어서,
    상기 네트워크 가상화기는 상기 네트워크 인터페이스 제어기의 제 3 포트를 통해 상기 네트워크로부터 패킷을 수신하고, 상기 수신된 패킷의 공급자 헤더를 스트립(strip)하며, 상기 제 2 포트를 통해 상기 테넌트 파티션의 호스트로 상기 스트립된 수신된 패킷을 전달하고,
    상기 네트워크 인터페이스 제어기는 상기 제 2 포트에서 상기 제 1 포트로 상기 스트립된 수신된 패킷을 전달하는
    컴퓨팅 디바이스.
  8. 제 7 항에 있어서,
    상기 네트워크 인터페이스 제어기는, 상기 패킷의 수신 후에, 상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하고,
    상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 로컬 메모리에 저장되어 있다는 판정에 응답하여, 상기 로컬 메모리로부터 상기 호스트와 연관된 네트워크 가상화 콘텍스트를 불러오고 상기 다른 패킷에 상기 네트워크 가상화 콘텍스트를 적용하는
    컴퓨팅 디바이스.
  9. 제 7 항에 있어서,
    상기 네트워크 인터페이스 제어기는 상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하며, 상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 로컬 메모리에 저장되어 있지 않다는 판정에 응답하여 상기 제 3 포트를 통해 상기 공급자 파티션의 네트워크 가상화기로 상기 패킷을 전달하고,
    상기 네트워크 가상화기는 (i) 상기 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하고, (ii) 상기 패킷에 상기 호스트 네트워크 가상화 콘텍스트를 적용하며, (iii) 상기 제 2 포트를 통해, 상기 호스트 네트워크 가상화 콘텍스트를 상기 네트워크 인터페이스 제어기로 전달하는
    컴퓨팅 디바이스.
  10. 복수의 명령어가 저장되어 있는 하나 이상의 머신 판독가능한 저장 매체로서,
    상기 복수의 명령어는 실행에 응답하여 컴퓨팅 디바이스로 하여금
    컴퓨팅 디바이스의 테넌트 파티션의 호스트에 의해, 상기 컴퓨팅 디바이스로부터 송신을 위한 패킷을 생성하게 하고,
    상기 테넌트 파티션과 상이한 상기 컴퓨팅 디바이스의 공급자 파티션에 수립된 네트워크 가상화기에 의해, 상기 패킷에 대한 공급자 헤더를 생성하게 하며,
    상기 컴퓨팅 디바이스의 네트워크 인터페이스 제어기의 제 1 포트에 의해, 상기 테넌트 파티션의 호스트로부터 상기 패킷을 수신하게 하고,
    상기 네트워크 인터페이스 제어기의 제 2 포트에 의해, 상기 공급자 헤더로 상기 패킷을 캡슐화하는 상기 네트워크 가상화기와 통신하게 하며,
    상기 네트워크 인터페이스 제어기의 제 3 포트에 의해, 상기 컴퓨팅 디바이스의 외부에 있는 네트워크에 걸쳐 상기 공급자 헤더로 캡슐화된 패킷을 송신하게 하는
    머신 판독가능한 저장 매체.
  11. 제 10 항에 있어서,
    상기 네트워크 가상화기와 통신하게 하는 것은
    상기 네트워크 인터페이스 제어기로부터, 상기 테넌트 파티션의 호스트로부터 수신된 패킷을 상기 제 2 포트를 통해 상기 공급자 파티션의 네트워크 가상화기로 전달하게 하고,
    상기 네트워크 가상화기에 의해, 상기 공급자 헤더로 상기 패킷을 캡슐화하게 하며,
    상기 네트워크 가상화기에 의해, 상기 네트워크 인터페이스 제어기의 제 3 포트를 통해 상기 네트워크로 상기 캡슐화된 패킷을 전달하게 하는 것을 포함하는
    머신 판독가능한 저장 매체.
  12. 제 11 항에 있어서,
    상기 복수의 명령어는 또한 상기 컴퓨팅 디바이스로 하여금
    상기 네트워크 가상화기에 의해, 상기 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하게 하고,
    상기 네트워크 가상화기에 의해, 상기 패킷에 상기 호스트 네트워크 가상화 콘텍스트를 적용하게 하는
    머신 판독가능한 저장 매체.
  13. 제 10 항에 있어서,
    상기 네트워크 가상화기와 통신하게 하는 것은
    상기 네트워크 인터페이스 제어기에 의해, 상기 제 2 포트 또는 상기 제 3 포트를 통해 상기 네트워크 가상화기로부터 상기 공급자 헤더를 수신하게 하고,
    상기 네트워크 인터페이스 제어기에 의해, 상기 공급자 헤더로 상기 패킷을 캡슐화하게 하는 것을 포함하는
    머신 판독가능한 저장 매체.
  14. 제 10 항에 있어서,
    상기 복수의 명령어는 또한 상기 컴퓨팅 디바이스로 하여금
    상기 네트워크 인터페이스 제어기에 의해, 상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하게 하고,
    상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 로컬 메모리에 저장되어 있다는 판정에 응답하여,
    (i) 상기 네트워크 인터페이스 제어기에 의해, 상기 로컬 메모리로부터 상기 호스트와 연관된 상기 네트워크 가상화 콘텍스트를 불러오게 하고,
    (ii) 상기 네트워크 인터페이스 제어기에 의해, 상기 패킷에 상기 네트워크 가상화 콘텍스트를 적용하게 하며,
    (iii) 상기 네트워크 인터페이스 제어기에 의해, 상기 네트워크 가상화기로부터 상기 공급자 헤더를 수신하게 하고,
    (iv) 상기 네트워크 인터페이스 제어기에 의해, 상기 공급자 헤더로 상기 패킷을 캡슐화하게 하는
    머신 판독가능한 저장 매체.
  15. 제 10 항에 있어서,
    상기 복수의 명령어는 또한 상기 컴퓨팅 디바이스로 하여금
    상기 네트워크 인터페이스 제어기에 의해, 상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하게 하고,
    상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 로컬 메모리에 저장되어 있지 않다는 판정에 응답하여,
    (i) 상기 네트워크 인터페이스 제어기로부터, 상기 제 2 포트를 통해 상기 공급자 파티션의 네트워크 가상화기로 상기 패킷을 전달하게 하고,
    (ii) 상기 네트워크 가상화기에 의해, 상기 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하게 하며,
    (iii) 상기 네트워크 가상화기에 의해, 상기 패킷에 상기 호스트 네트워크 가상화 콘텍스트를 적용하게 하고,
    (iv) 상기 네트워크 가상화기에 의해, 상기 공급자 헤더로 상기 패킷을 캡슐화하게 하며,
    (v) 상기 네트워크 인터페이스 제어기에 의해 상기 네트워크 가상화기로부터 상기 호스트 네트워크 가상화 콘텍스트를 수신하게 하는
    머신 판독가능한 저장 매체.
  16. 제 10 항에 있어서,
    상기 복수의 명령어는 또한 상기 컴퓨팅 디바이스로 하여금
    상기 네트워크 가상화기에 의해, 상기 제 3 포트를 통해 상기 네트워크로부터 다른 패킷을 수신하게 하고,
    상기 네트워크 가상화기에 의해, 상기 다른 패킷의 공급자 헤더를 스트립하게 하며,
    상기 네트워크 가상화기에 의해, 상기 제 2 포트를 통해 상기 테넌트 파티션의 호스트로 상기 스트립된 다른 패킷을 전달하게 하고,
    상기 네트워크 인터페이스 제어기에 의해, 상기 제 2 포트에서 상기 제 3 포트로 상기 스트립된 다른 패킷을 전달하게 하는
    머신 판독가능한 저장 매체.
  17. 제 10 항에 있어서,
    상기 복수의 명령어는 또한 상기 컴퓨팅 디바이스로 하여금
    상기 다른 패킷의 수신 후에 상기 네트워크 인터페이스 제어기에 의해, 상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하게 하고,
    상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 로컬 메모리에 저장되어 있다는 판정에 응답하여,
    (i) 상기 네트워크 인터페이스 제어기에 의해, 상기 로컬 메모리로부터 상기 호스트와 연관된 네트워크 가상화 콘텍스트를 불러오게 하고,
    (ii) 상기 네트워크 인터페이스 제어기에 의해, 상기 다른 패킷에 상기 네트워크 가상화 콘텍스트를 적용하게 하는
    머신 판독가능한 저장 매체.
  18. 가속화된 네트워크 가상화를 위한 방법에 있어서,
    컴퓨팅 디바이스의 테넌트 파티션의 호스트에 의해, 상기 컴퓨팅 디바이스로부터 송신을 위한 패킷을 생성하는 단계와,
    상기 테넌트 파티션과 상이한 상기 컴퓨팅 디바이스의 공급자 파티션에 수립된 네트워크 가상화기에 의해, 상기 패킷에 대한 공급자 헤더를 생성하는 단계와,
    상기 컴퓨팅 디바이스의 네트워크 인터페이스 제어기의 제 1 포트에 의해, 상기 테넌트 파티션의 호스트로부터 상기 패킷을 수신하는 단계와,
    상기 네트워크 인터페이스 제어기의 제 2 포트에 의해, 상기 공급자 헤더로 상기 패킷을 캡슐화하는 상기 네트워크 가상화기와 통신하는 단계와,
    상기 네트워크 인터페이스 제어기의 제 3 포트에 의해, 상기 컴퓨팅 디바이스의 외부에 있는 네트워크에 걸쳐 상기 공급자 헤더로 캡슐화된 패킷을 송신하는 단계를 포함하는
    가속화된 네트워크 가상화 방법.
  19. 제 18 항에 있어서,
    상기 네트워크 가상화기와 통신하는 단계는
    상기 네트워크 인터페이스 제어기로부터, 상기 테넌트 파티션의 호스트로부터 수신된 패킷을 상기 제 2 포트를 통해 상기 공급자 파티션의 네트워크 가상화기로 전달하는 단계와,
    상기 네트워크 가상화기에 의해, 상기 공급자 헤더로 상기 패킷을 캡슐화하는 단계와,
    상기 네트워크 가상화기에 의해, 상기 네트워크 인터페이스 제어기의 제 3 포트를 통해 상기 네트워크로 상기 캡슐화된 패킷을 전달하는 단계를 포함하는
    가속화된 네트워크 가상화 방법.
  20. 제 19 항에 있어서,
    상기 네트워크 가상화기에 의해, 상기 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 단계와,
    상기 네트워크 가상화기에 의해, 상기 패킷에 상기 호스트 네트워크 가상화 콘텍스트를 적용하는 단계를 더 포함하는
    가속화된 네트워크 가상화 방법.
  21. 제 18 항에 있어서,
    상기 네트워크 가상화기와 통신하는 단계는
    상기 네트워크 인터페이스 제어기에 의해, 상기 제 2 포트 또는 상기 제 3 포트를 통해 상기 네트워크 가상화기로부터 상기 공급자 헤더를 수신하는 단계와,
    상기 네트워크 인터페이스 제어기에 의해, 상기 공급자 헤더로 상기 패킷을 캡슐화하는 단계를 포함하는
    가속화된 네트워크 가상화 방법.
  22. 제 18 항에 있어서,
    상기 네트워크 인터페이스 제어기에 의해, 상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하는 단계와,
    상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 로컬 메모리에 저장되어 있다는 판정에 응답하여,
    (i) 상기 네트워크 인터페이스 제어기에 의해, 상기 로컬 메모리로부터 상기 호스트와 연관된 상기 네트워크 가상화 콘텍스트를 불러오는 단계와,
    (ii) 상기 네트워크 인터페이스 제어기에 의해, 상기 패킷에 상기 네트워크 가상화 콘텍스트를 적용하는 단계와,
    (iii) 상기 네트워크 인터페이스 제어기에 의해, 상기 네트워크 가상화기로부터 상기 공급자 헤더를 수신하는 단계와,
    (iv) 상기 네트워크 인터페이스 제어기에 의해, 상기 공급자 헤더로 상기 패킷을 캡슐화하는 단계를 더 포함하는
    가속화된 네트워크 가상화 방법.
  23. 제 18 항에 있어서,
    상기 네트워크 인터페이스 제어기에 의해, 상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하는 단계와,
    상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 로컬 메모리에 저장되어 있지 않다는 판정에 응답하여,
    (i) 상기 네트워크 인터페이스 제어기로부터, 상기 제 2 포트를 통해 상기 공급자 파티션의 네트워크 가상화기로 상기 패킷을 전달하는 단계와,
    (ii) 상기 네트워크 가상화기에 의해, 상기 패킷에 기초하여 호스트 네트워크 가상화 콘텍스트를 결정하는 단계와,
    (iii) 상기 네트워크 가상화기에 의해, 상기 패킷에 상기 호스트 네트워크 가상화 콘텍스트를 적용하는 단계와,
    (iv) 상기 네트워크 가상화기에 의해, 상기 공급자 헤더로 상기 패킷을 캡슐화하는 단계와,
    (v) 상기 네트워크 인터페이스 제어기에 의해 상기 네트워크 가상화기로부터 상기 호스트 네트워크 가상화 콘텍스트를 수신하는 단계를 더 포함하는
    가속화된 네트워크 가상화 방법.
  24. 제 18 항에 있어서,
    상기 네트워크 가상화기에 의해, 상기 제 3 포트를 통해 상기 네트워크로부터 다른 패킷을 수신하는 단계와,
    상기 네트워크 가상화기에 의해, 상기 다른 패킷의 공급자 헤더를 스트립하는 단계와,
    상기 네트워크 가상화기에 의해, 상기 제 2 포트를 통해 상기 테넌트 파티션의 호스트로 상기 스트립된 다른 패킷을 전달하는 단계와,
    상기 네트워크 인터페이스 제어기에 의해, 상기 제 2 포트에서 상기 제 3 포트로 상기 스트립된 다른 패킷을 전달하는 단계를 더 포함하는
    가속화된 네트워크 가상화 방법.
  25. 제 24 항에 있어서,
    상기 다른 패킷의 수신 후에 상기 네트워크 인터페이스 제어기에 의해, 상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 네트워크 인터페이스 제어기의 로컬 메모리에 저장되어 있는지 여부를 판정하는 단계와,
    상기 호스트와 연관된 네트워크 가상화 콘텍스트가 상기 로컬 메모리에 저장되어 있다는 판정에 응답하여,
    (i) 상기 네트워크 인터페이스 제어기에 의해, 상기 로컬 메모리로부터 상기 호스트와 연관된 네트워크 가상화 콘텍스트를 불러오는 단계와,
    (ii) 상기 네트워크 인터페이스 제어기에 의해, 상기 다른 패킷에 상기 네트워크 가상화 콘텍스트를 적용하는 단계를 더 포함하는
    가속화된 네트워크 가상화 방법.
KR1020150043330A 2014-04-30 2015-03-27 네트워크 가상화를 가속화하는 기술 KR101649819B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461986329P 2014-04-30 2014-04-30
US61/986,329 2014-04-30
US14/583,667 2014-12-27
US14/583,667 US20150319250A1 (en) 2014-04-30 2014-12-27 Technologies for accelerating network virtualization

Publications (2)

Publication Number Publication Date
KR20150125564A true KR20150125564A (ko) 2015-11-09
KR101649819B1 KR101649819B1 (ko) 2016-08-19

Family

ID=54356106

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150043330A KR101649819B1 (ko) 2014-04-30 2015-03-27 네트워크 가상화를 가속화하는 기술

Country Status (3)

Country Link
US (1) US20150319250A1 (ko)
KR (1) KR101649819B1 (ko)
CN (1) CN105049464B (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102160252B1 (ko) * 2013-12-18 2020-09-25 삼성전자주식회사 가상 스위칭 방법 및 장치
US10956189B2 (en) * 2015-02-13 2021-03-23 Red Hat Israel, Ltd. Methods for managing virtualized remote direct memory access devices
US10509729B2 (en) 2016-01-13 2019-12-17 Intel Corporation Address translation for scalable virtualization of input/output devices
US10228981B2 (en) * 2017-05-02 2019-03-12 Intel Corporation High-performance input-output devices supporting scalable virtualization
KR101977850B1 (ko) * 2017-09-15 2019-05-13 단국대학교 산학협력단 네트워크 인터페이스를 위한 어플리케이션 오프로딩 장치 및 방법
US10382346B2 (en) * 2017-10-24 2019-08-13 Cisco Technology, Inc. Method and device for offloading processing of data flows
US10785020B2 (en) * 2018-01-19 2020-09-22 Microsoft Technology Licensing, Llc Hardware offload for QUIC connections
JP7412405B2 (ja) * 2021-12-23 2024-01-12 株式会社日立製作所 情報処理システム、情報処理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028071B1 (en) * 2006-02-15 2011-09-27 Vmware, Inc. TCP/IP offload engine virtualization system and methods
US20120084381A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Virtual Desktop Configuration And Operation Techniques
US20140059537A1 (en) * 2012-08-21 2014-02-27 International Business Machines Corporation Processing of overlay networks using an accelerated network interface card

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2418326B (en) * 2004-09-17 2007-04-11 Hewlett Packard Development Co Network vitrualization
US7965714B2 (en) * 2008-02-29 2011-06-21 Oracle America, Inc. Method and system for offloading network processing
US8442048B2 (en) * 2009-11-04 2013-05-14 Juniper Networks, Inc. Methods and apparatus for configuring a virtual network switch
US9389895B2 (en) * 2009-12-17 2016-07-12 Microsoft Technology Licensing, Llc Virtual storage target offload techniques
CN103051510B (zh) * 2011-09-07 2016-04-13 微软技术许可有限责任公司 网络策略向网络接口卡的安全和高效卸载的方法和装置
US8856518B2 (en) * 2011-09-07 2014-10-07 Microsoft Corporation Secure and efficient offloading of network policies to network interface cards
US9401818B2 (en) * 2013-03-15 2016-07-26 Brocade Communications Systems, Inc. Scalable gateways for a fabric switch
US10212022B2 (en) * 2013-09-13 2019-02-19 Microsoft Technology Licensing, Llc Enhanced network virtualization using metadata in encapsulation header

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8028071B1 (en) * 2006-02-15 2011-09-27 Vmware, Inc. TCP/IP offload engine virtualization system and methods
US20120084381A1 (en) * 2010-09-30 2012-04-05 Microsoft Corporation Virtual Desktop Configuration And Operation Techniques
US20140059537A1 (en) * 2012-08-21 2014-02-27 International Business Machines Corporation Processing of overlay networks using an accelerated network interface card

Also Published As

Publication number Publication date
CN105049464A (zh) 2015-11-11
US20150319250A1 (en) 2015-11-05
KR101649819B1 (ko) 2016-08-19
CN105049464B (zh) 2020-04-24

Similar Documents

Publication Publication Date Title
KR101649819B1 (ko) 네트워크 가상화를 가속화하는 기술
US10582420B2 (en) Processing of overlay networks using an accelerated network interface card
US9602400B2 (en) Hypervisor independent network virtualization
US9503313B2 (en) Network interface card having overlay gateway functionality
US9031081B2 (en) Method and system for switching in a virtualized platform
EP3704602B1 (en) Hardware assisted virtual switch
US9678912B2 (en) Pass-through converged network adaptor (CNA) using existing ethernet switching device
US9154451B2 (en) Systems and methods for sharing devices in a virtualization environment
CN106301859B (zh) 一种管理网卡的方法、装置及系统
JP2019503599A (ja) クラウドコンピューティングシステムにおけるパケット処理方法、ホスト及びシステム
US9910687B2 (en) Data flow affinity for heterogenous virtual machines
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
US10621124B2 (en) Method, device and computer program product for enabling SR-IOV functions in endpoint device
CN109417507B (zh) 一种通过部分直接内存访问dma访问内存的方法和系统
CN106790162B (zh) 虚拟网络优化方法与系统
US9282062B2 (en) Providing I2C bus over Ethernet

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
FPAY Annual fee payment

Payment date: 20190729

Year of fee payment: 4