SPICE (протокол)


SPICE (сокр. от англ. «Simple Protocol for Independent Computing Environments», то есть «Простой протокол для независимой вычислительной среды») — протокол, используемый в рамках проекта с аналогичным названием (но пишется строчными буквами: Spice). Проект представляет собой систему отображения (рендеринга) удаленного дисплея, построенную для виртуальной среды, которая позволяет вам просматривать виртуальный «рабочий стол» вычислительной среды не только на машине, на которой он запущен, но и откуда угодно через Интернет, причем для просмотра можно использовать широкий спектр машинных архитектур.

Протокол SPICE определяет набор протокольных сообщений для подключения, управления и получения входящей информации от удаленных компьютерных устройств (например, клавиатура, видеокарта, мышь) по сети, а также отправка им сообщений. Контролируемое устройство может располагаться на любой стороне: как на стороне сервера, так и/или на стороне клиента. Кроме того, протокол определяет набор вызовов для поддержки миграции удаленного сервера с одного сетевого адреса на другой.

Шифрование передаваемых данных, за одним исключением, оставляет для протокола возможность максимальной гибкости в выборе методов шифрования. SPICE использует простейший обмен сообщениями и не зависит от любых стандартов вызовов удаленных процедур (RPC) или специфики транспортного уровня.

Сессия взаимодействия в SPICE делится на множество коммуникационных каналов (то есть каждый канал — это удаленное устройство) чтобы иметь возможность контролировать обмен информацией и обработку сообщений в зависимости от типа канала (то есть шифрование QoS), а также добавлять и отключать коммуникационные каналы во время работы (что поддерживается стандартом протокола).

В черновом варианте стандарта протокола (который является пока что актуальным на данный момент) определены следующие коммуникационные каналы:

Новые типы каналов будут добавляться по мере развития протокола. Стандарт SPICE также содержит набор протокольных определений для синхронизации работы каналов на удаленном узле.