SPICE - Simple Protocol for Independent Computing Environments ================================================================ .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **What is SPICE?** SPICE (Simple Protocol for Independent Computing Environments) is an open remote display protocol designed to provide high-quality remote access to virtual desktops, especially in QEMU/KVM-based virtualization environments. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Why is SPICE useful?** SPICE is useful for delivering remote desktops with a rich graphical experience. It supports features like audio/video streaming, USB redirection, dynamic resolution changes, and clipboard sharing, making it ideal for virtual desktop infrastructure (VDI). .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **How it works?** SPICE works by separating the rendering of the virtual desktop from the end-user client. The server handles the virtual machine, and the SPICE client renders the desktop environment by receiving display updates and sending input events (mouse, keyboard, etc.) to the server. It supports data compression and encryption to optimize performance and security. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Where is SPICE used?** SPICE is primarily used in **open-source virtualization platforms**, such as **QEMU/KVM** and **oVirt**/**Red Hat Virtualization**. It is also supported in **Virt-Manager** and other Linux-based VM management tools. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which OSI layer does this protocol belong to?** SPICE operates mainly at the **Application Layer (Layer 7)** of the OSI model, although it relies on lower layers (Transport and Network) for communication. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Is SPICE Windows specific?** No, SPICE is not Windows specific. However, SPICE clients are available for Windows, and Windows guest virtual machines can also support SPICE when the appropriate drivers and tools are installed. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Is SPICE Linux specific?** No, SPICE is not Linux specific, but it is **commonly used in Linux environments**. Linux is the primary development platform for SPICE, and most open-source virtualization stacks supporting SPICE are Linux-based. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which Transport Protocol is used by SPICE?** SPICE primarily uses **TCP** for data transmission. It also supports **UNIX sockets** for local communication and can optionally use **TLS** for encrypted sessions. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Which Port is used by SPICE?** SPICE typically uses **TCP port 5930** and above. The exact port depends on the VM configuration (usually auto-assigned by the virtualization platform). For encrypted connections, **TLS on port 5930+** is used. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow **Is SPICE using Client server model?** Yes, SPICE uses a **client-server model**. The **SPICE server** runs on the host alongside the virtual machine, and the **SPICE client** connects remotely to access the virtual desktop interface. .. panels:: :container: container pb-4 :column: col-lg-12 p-2 :card: shadow Topics in this section, * :ref:`Learnings in this section ` * :ref:`Terminology ` * :ref:`Version Info ` * :ref:`SPICE Version&IEEE Details ` * :ref:`SPICE Basic Setup on Ubuntu using IPv4 ` * :ref:`SPICE Basic Setup on Ubuntu using IPv6 ` * :ref:`SPICE Protocol Packet Details ` * :ref:`SPICE Usecases ` * :ref:`SPICE Basic Features ` * :ref:`Reference links ` .. _SPICE_step1: .. tab-set:: .. tab-item:: Learnings in this section * In this section, you are going to learn .. _SPICE_step2: .. tab-set:: .. tab-item:: Terminology * Terminology .. _SPICE_step3: .. tab-set:: .. tab-item:: Version Info * Version Info .. _SPICE_step5: .. tab-set:: .. tab-item:: SPICE Version&RFC Details * rfc details .. _SPICE_step18: .. tab-set:: .. tab-item:: SPICE Basic Setup on Ubuntu using IPv4 * setup .. _SPICE_step19: .. tab-set:: .. tab-item:: SPICE Basic Setup on Ubuntu using IPv6 * setup .. _SPICE_step6: .. tab-set:: .. tab-item:: SPICE Protocol Packet Details * packet details .. _SPICE_step7: .. tab-set:: .. tab-item:: SPICE Usecases * usecases .. _SPICE_step8: .. tab-set:: .. tab-item:: SPICE Basic Features * features .. _SPICE_step17: .. tab-set:: .. tab-item:: Reference links * Reference links