Zero-Copy Packet Transmission Between Virtualized Instances

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional packet transmission between virtual machines (VMs) on the same host in a Software-Defined Networking (SDN) environment is inefficient, leading to reduced throughput and increased latency due to the need for packet copying between transmit and receive buffers.

Innovation Solution

Implementing a zero-copy packet transmission approach where packets are stored in a shared memory location accessible by both the source and destination VMs, eliminating the need for copying and optimizing the efficiency of the virtual switch, thereby reducing CPU utilization and improving throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If packet copying between transmit and receive buffers is implemented in conventional packet transmission, then packet transmission between VMs can be achieved, but transmission efficiency decreases and latency increases

Engineering Contradiction:
Improvepacket transmission efficiencyVSAvoidtransmission latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts the packet copying operation from the transmission path by implementing a zero-copy mechanism. Instead of copying packets between transmit and receive buffers through the virtual switch, the system allows direct memory access between source and destination VMs, removing the harmful copying step that caused efficiency loss and latency.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a memory mapping mechanism as an intermediary that enables direct access between VMs without physical packet copying. The virtual switch maintains forwarding tables that map source and destination VM identifiers to their respective buffer addresses, allowing packets to be transmitted directly through shared memory space without traditional copying operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If packet copying is performed in the virtual switch, then packet forwarding between VMs is enabled, but CPU utilization increases

Engineering Contradiction:
Improvepacket forwarding capabilityVSAvoidCPU utilization
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The patent extracts the CPU-intensive packet copying operation from the virtual switch by implementing zero-copy transmission. The virtual switch only performs lightweight table lookups and memory address translations, while the actual packet movement occurs directly between VM memory spaces, dramatically reducing CPU utilization.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent replaces the mechanical packet copying process with a memory-mapped I/O approach. Instead of physically copying packet data through CPU-mediated operations, the system uses memory address translation and direct memory access, substituting the traditional mechanical copying mechanism with a more efficient memory management approach.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10877822B1Zero-copy packet transmission between virtualized computing instances
Publication Date: 2020.12.29 VMWARE INC
  • US10877822B1 patent drawing
  • US10877822B1 patent drawing
  • US10877822B1 patent drawing

AI summary

Example methods are provided for a host to perform zero-copy packet transmission. On example method may comprise allocating a transmit (TX) packet buffer to a first virtualized computing instance and a receive (RX) packet buffer to a second virtualized computing instance, wherein the TX packet buffer and the RX packet buffer are both mapped to a shared memory location associated with the host. The method may also comprise: accessing, by the first virtualized computing instance, the TX packet buffer to store a packet in the shared memory location; processing, by the forwarding element, the packet in the shared memory location; and accessing, by the second virtualized computing instance, the RX packet buffer to receive the packet stored in the shared memory location.