
Комментарии 9
Что, неужели абстракции в протоколе настолько протекают, что TCP не заменяется более-менее прозрачно на что-то другое?
Хороший вопрос, без шуток. В SPICE TCP — это не просто «подложка», а часть мышления протокола. Там много решений, которые молча опираются на поведение TCP: порядок, блокировки, backpressure, отдельные соединения на каналы. Поэтому «прозрачно заменить транспорт» не получается — это уже будет другой протокол, с другими допущениями и болью.
Связь SPICE и TCP на самом деле глубже, чем влезает в комментарий. Я, пожалуй, отдельно про это напишу: почему так вышло исторически и к чему это привело сейчас.
Так вроде бы его забросили к сожалению в разработке или я ошибаюсь ?
Интересно, чем VNC их не устроил, как в qemu?
Ну дело в том, что VNC — это remote framebuffer из 1998 года, созданный для совсем других задач.
Почему Red Hat вложился в собственный протокол, когда RDP и Citrix уже существовали? Однозначного ответа нет, но среди факторов наверняка были:
отсутствие открытого протокола для Linux VDI
желание контролировать весь стек (KVM + libvirt + SPICE)
независимость от лицензионной политики Microsoft и Citrix
Тут вроде все плюсы за VNC.
Результат: композитор рендерит всё в offscreen buffer и отдаёт QXL готовый framebuffer. 2D-команды не задействуются. QXL становится просто framebuffer'ом с дополнительными фичами.
Тут прям четко про то, что хорошо умеет VNC.
Претензий нет, просто размышления.
VNC образца 2007 был значительно беднее (без аудио, USB, нормального clipboard). К слову, и сегодня open-source VNC так и не получил аудио — PR в TigerVNC висит с 2023 года, а clipboard в noVNC работает через костыли с тем же spice-vdagent.
Но вы правы насчёт framebuffer'а — разница в том, как он передаётся: SPICE использует адаптивное сжатие и эвристики для детекта видеопотоков, VNC — фиксированные encoding'и (Tight, ZRLE) на весь кадр.
В целом, вы попали в точку: именно поэтому Red Hat сегодня рекомендует VNC для серверов. Когда разница нивелирована — зачем тянуть отдельный протокол? Но это не для VDI а для админов.
SPICE: анатомия протокола доставки рабочего стола