routeprotocol.com

High Level Packet Flow for Virtual Machine

  1. Data traffic is received by the physical NIC and placed into an Rx queue (ring buffer) within the physical NIC
  2. The physical NIC sends the packet and a descriptor to the main memory buffer through direct memory access. The packet descriptor contains only the memory location and size of the packet
  3. The physical NIC sends an IRQ to the CPU
  4. The CPU transfers control to the physical NIC driver, which services the IRC receives the packet, and moves it into the network stack where it eventually arrives in a socket and is placed into a socket receive buffer.
  5. The packet data is copied from the socket receive buffer to the OVS virtual switch
  6. OVS processes the packet and forwards it to the virtual machine. This entails switching the packet between kernel and user space
  7. The packet arrives at the virtual NIC of the Virtual Machine and is placed into the Rx queue
  8. The vNIC sends the packet and packet descriptor to the virtual memory buffer through direct memory access
  9. The virtual NIC sends an IRQ to the vCPU
  10. The vCPU transfers control to the vNIC drive, which services the IRQ, receives the packet, and moves it to the network stack where it eventually arrives in a socket and is placed into a socket receive buffer
  11. The packet data is copied and sent to the application in the VM

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.