Protocolli di trasmissione remota per le virtual machine

remote-protocol Per adoperare una virtual machine in esecuzione su un server remoto è necessario collegarcisi utilizzando un protocollo di trasmissione. Il flusso dei dati della macchina virtuale che attraversano una rete tra due calcolatori può essere regolamentato applicando diverse tecnologie: VNC, RDP, ICA, Net2Display, SPICE. Vediamo le caratteristiche, i vantaggi e i lati negativi di ogni protocollo.

VNC

VNC (Virtual Network Computing) è un protocollo che è stato ideato per la trasmissione di una sequenza di schermate e di eventi originati dalla tastiera e da uno strumento di puntamento (mouse, trackball…), è spesso usato per l’assistenza remota. Il sistema è basato sull’architettura client-server; una componente server (VNC server) viene installata su un computer da controllare mentre la parte client (VNC client) viene a trovarsi sul terminale dal quale si vuole effetuale in controllo. Il server rimane in ascolto sulla porta 5900 TCP; ma è possibile usare anche un’interfaccia cliente che usa HTTP, in questo caso la porta da adoperare è 5800 TCP. Il client VNC e il server VNC sono un semplice software rilasciato per moltissimi sistemi operativi. VNC adopera il protocollo RFB. RFB (remote framebuffer) è il protocollo usato da VNC che gestisce la compressione e implementa tecniche di sicurezza, quest’ultimo è stato sviluppato originariamente dai laboratori di ricerca Olivetti.

RDP

RDP (Remote Desktop Protocol) è un protocollo multicanale realizzato da Microsoft simile a VNC, esistono client RDP per molti sistemi operativi (Windows, GNU/Linux, BSD, Solaris…). A lato server è disonibile Microsoft Terminal Services (solo per Windows)  che sta in ascolto sulla porta TCP 3389.

Esiste anche un implementazione del server RDP, xrdp, anche per sistemi operativi Unix.

Supporta Transport Layer Security 1.0 (TSL) come strato di trasporto in sicurezza sia lato server sia client.

ICA

ICA (Independent Computing Architecture) è un protocollo proprietario creato da Citrix. E’ implementato in alcuni prodotti realizzati dalla software house, permette di accedere ad applicazioni che girano su un server remoto sia che sia in esecuzione Windows oppure Unix. Sono disponibili client per Windows, GNU/Linux, Mac, BSD…

ICA è simile a RDP ma adotta delle tecniche più avanzate.

Net2Display

Net2Display è un protocollo proposto da VESA (Video Electronics Standards Association) progettato per fornire i servizi necessari a gestire a basso livello dispositivi di I/O. Si pone come uno standard da adoperare per superare le carenza degli altri protocolli. Non è ancora operativo ma si spera possa esserlo nel minor tempo possibile.

help-desk

SPICE

SPICE (Simple Protocol for Independent Computing Environments) è il protocollo per la connessione remota creato appositamente per le macchine virtuali da Qumranet, la software house che ha prodotto anche Kernel-based VM. di questo protocollo non si hanno informazioni precise, ma il client è installabile semplicemente via Active-X sul computer che controllerà.

Pro et contra

Come ci si può immaginare se ci sono un gran numero di protocolli significa che alcuni ottimizzano certe caratteristiche e esistono delle lacune. Per esempio RDP e ICA hanno un flush del framebuffer video su client ogni 100 millisecondi, cosa che può andare bene per la visualizzazione di un’interfaccia grafica di un programma o un desktop ma non risulta soddisfacente se è necessario vedere un filmato dove è richiesta una sicronizzazione tra audio e video. VNC, a differenza di altri protocolli, è abbastanza dispensioso di banda e ha una latenza maggiore però ciò che gioca a favore di VNC è una grande diffusione delle implementazioni client e server. SPICE di Qumranet e Net2Display hanno risolto alcuni problemi e migliorato le prestazioni rispetto agli altri concorrenti tuttavia il primo è un software proprietario disponibile solo su prodotti realizzati dalla software house di KVM mentre l’altro è ancora in fase di definizione.

client-server

Futuro

Quali protocolli sopravivranno? Questi protocolli hanno tutti delle particolarità e sono stati creati per soddisfare dei requisiti; per esempio quando è stato ideato RDP non lo si è progettato per una frame rate elevato ma se si vuole visualizzare un video in riproduzione remota, RDP non è adatto. Per cui è necessario stabilire quali criteri sono importanti e qesti dipendono dal tipo di virtualizzazione che si vuole usare. Per virtualizzare un sistema operativo desktop, che abbia una risposta veloce alle interazioni dell’utente che lo usa quotidianamente è necessario un tempo di risposta rapido (basse latenze) e molti fotogrammi per secondo (sicuramente maggiori a 10 frame/sec).

Se si vuole virtualizzare un server e ci si collega alle macchine virtuali solamente per attività di amministrazione non è importante che si abbia un tempo di risposta basso e neanchè un frame rate alto. In questo caso è meglio che il protocollo sia sicuro e che il traffico tra client e server sia criptato.

E’ altrettanto ovvio che un’ottimizzazione è benvista e che un protocollo di trasmissione di qualità può decretare il successo di un software di virtualizzazione quando sul mercato c’è una vera e propria invasione di soluzioni per la virtualizzazione.

Altre risorse:

Remote display protocols for VDI: will RDP be enough?

Comparison of remote desktop software (wikipedia)

Alternate to Citrix Remote Computing?

virtual machine

Articolo successivo

Virtualizzazione e Green Computing