SPICE (сокр. от англ. «Simple Protocol for Independent Computing Environments», то есть «Простой протокол для независимой вычислительной среды») — протокол, используемый в рамках проекта с аналогичным названием (но пишется строчными буквами: Spice). Проект представляет собой систему отображения (рендеринга) удаленного дисплея, построенную для виртуальной среды, которая позволяет вам просматривать виртуальный «рабочий стол» вычислительной среды не только на машине, на которой он запущен, но и откуда угодно через Интернет, причем для просмотра можно использовать широкий спектр машинных архитектур.
Первоначально протокол был разработан компанией Qumranet, которую затем купила Red Hat, Inc.
9 декабря 2009 Red Hat, Inc объявила о решении открыть исходный код протокола [1][2].
Протокол SPICE определяет набор протокольных сообщений для подключения, управления и получения входящей информации от удаленных компьютерных устройств (например, клавиатура, видеокарта, мышь) по сети, а также отправка им сообщений. Контролируемое устройство может располагаться на любой стороне: как на стороне сервера, так и/или на стороне клиента. Кроме того, протокол определяет набор вызовов для поддержки миграции удаленного сервера с одного сетевого адреса на другой.
Шифрование передаваемых данных, за одним исключением, оставляет для протокола возможность максимальной гибкости в выборе методов шифрования. SPICE использует простейший обмен сообщениями и не зависит от любых стандартов вызовов удаленных процедур (RPC) или специфики транспортного уровня.
Сессия взаимодействия в SPICE делится на множество коммуникационных каналов (то есть каждый канал — это удаленное устройство) чтобы иметь возможность контролировать обмен информацией и обработку сообщений в зависимости от типа канала (то есть шифрование QoS), а также добавлять и отключать коммуникационные каналы во время работы (что поддерживается стандартом протокола).
В черновом варианте стандарта протокола (который является пока что актуальным на данный момент) определены следующие коммуникационные каналы:
Новые типы каналов будут добавляться по мере развития протокола. Стандарт SPICE также содержит набор протокольных определений для синхронизации работы каналов на удаленном узле.
Заголовок содержит следующие типы полей:
Версия протокола определяется двумя значениями типа UINT32, которые определяют основную версию протокола и дополнительную, соответственно.
Чтобы обеспечить некоторую степень гибкости в реализации клиента и сервера и улучшить совместимость, протокол SPICE поддерживает двунаправленный обмен настройками каналов.
Процесс подключения к каналу инициируется клиентом, который посылает серверу сообщение RedLinkMess. В качестве ответа сервер отсылает RedLinkReply.
Обилечивание — механизм, реализованный в SPICE для гарантии, что соединения открыты только от авторизованных источников.
В статье не хватает ссылок на источники (см. рекомендации по поиску). |