RemoteFX e il protocollo RDP 8.0 in Windows Server 2012 e Windows 8: le novità di Adaptive Graphics, Progressive Rendering, Media Streaming e vGPU

Una novità importante, e che spesso passa inosservata, in Windows 8 e Windows Server 2012 è la release 8.0 del protocollo RDP, che ormai a tutti gli effetti integra al suo interno le funzionalità di RemoteFX.

Con questo rilascio le novità di RemoteFX introdotte in Windows 7 e Windows Server 2008 R2 vengono estese e diventano pienamente fruibili anche in scenari di connessione WAN; le funzionalità di redirezione dei dispositivi USB o di redirezione dinamica di testo, immagini e video si integrano profondamente con il protocollo RDP in tutte le possibili modalità di utilizzo:  connessione verso macchine VDI, connessione versio Session Host (Terminal Server), connessioni LAN o WAN sia da reti ADSL che 3G o 4G.

In questo articolo vedremo insieme alcune delle novità di RemoteFX e del protocollo RDP 8.0 inclusi nativamente in Windows 8 e Windows Server 2012. Vi ricordo che potete scaricare la versione di valutazione di entrambi i prodotti dal TechNet Evaluation Center, per poter provare in prima persona le novità di queste due release.

Bilanciare esperienza utente, latenze, rete disponibile, qualità video, utilizzo di CPU

L’ottimizzazione del protocollo RDP e di RemoteFX è un passaggio veramente importante nell’abilitare l’accesso da remoto (e da dispositivi differenti) alle applicazioni aziendali, e richiede un lavoro di fine tuning per bilanciare al meglio in ogni momento le differenti tipologie di traffico instradate nei differenti canali del tunnel RDP.

In ogni istante infatti oltre ad essere inviate dal sistema remoto verso il client le bitmap che compongono il desktop o la finestra dell’applicazione, dal client vengono trasmesse informazioni relative all’input da tastiera e mouse da parte dell’utente, mentre in background vengono trasmessi ad esempio i flussi dati relativi allo spooling, a Easy Print, alle periferiche di cui è stata effettuata la redirezione verso la macchina remota.

La modalità di connessione al sistema remoto influenza inoltre in modo profondo le performance del protocollo. Per poter garantire infatti una esperienza utente ottimale non solo è necessario avere una opportuna ampiezza di banda disponibile lato client e lato server, ma devono essere anche prese in considerazioni eventuali lantenze e le perdite di pacchetti tipiche delle connessioni WiFi e mobili (EDGE, 3G, 4G, …).

L’elaborazione della CPU lato server è inoltre un elemento fondamentale che consente ad esempio di garantire livelli di compressione elevati e/o abilitare una esperienza utente “ad alta fedeltà” anche su dispositivi con caratteristiche hardware ridotte. D’altra parte un utilizzo eccessivo della CPU del server porterebbe inevitabilmente ad una riduzione del numero massimo di sessioni simultanee possibili su di una particolare macchina.

Per questo, nello sviluppo di RemoteFX e del protocollo RDP 8.0 di Windows 8 e Windows Server 2012 è stato fatto uno sforzo importante per garantire che in modo continuativo durante una connessione RDP venissero valutati tutti i differenti parametri e le variabili in gioco e rinegoziate le modalità di connessione, per garantire un’esperienza utente ottimale, anche con connessioni con latenze elevate e ampiezza di banda ridotta, cercando di sovraccaricare il meno possibile l’elaborazione del server.

RemoteFX Adaptive Graphics e Progressive Rendering

RemoteFX esegue lato server l’elaborazione e la composizione di “ciascuna schermata” del desktop e delle applicazioni utilizzate dall’utente durante una sessione remota, e le invia verso il client (think o thick) in uno stream a 30fps e a 32 bit di profondità di colore.

Ovviamente l’obiettivo è quello di mantenere quanto più possibile ridotti l’utilizzo della banda di rete e i tempi di latenza, pur assicurando la più alta qualità dell’immagine possibile.

Per questo, a differenza del passato, ora RemoteFX effettua una analisi di ciascuna schermata ed utilizza in contemporanea codec differenti a seconda delle tipologie di elementi presenti: testo, immagini vettoriali, immagini, video, per garantire l’elaborazione e la compressione ottimale per cascun tipo di contenuto.

RemoteFX Adaptive Graphics

Mentre il testo viene inviato immediatamente e alla massima qualità possibile, le immagini vengono compresse ed inviate verso il client a livelli di compressione decrescenti (progressive rendering) , in modo tale da garantire immediatamente un primo rendering dell’immagine, che man mano diventa sempre più preciso e definito, ottimizzando allo stesso tempo l’utilizzo della connessione.

RemoteFX Media Streaming

Il video è sicuramente il contenuto che necessita di maggiori attenzioni in fase di redirezione verso macchine remote, perchè necessita anche di sincronizzazione perfetta con l’audio collegato.

Nell’ottica di utilizzare il codec ottimale per ciascuna tipologia di elemento, è stato deciso di effettuare l’encoding del video tramite il codec H.264 mentre l’elaborazione dell’audio avviene con il codec AAC.

Lato server quindi, una volta isolata ciascuna componente che richiede l’encoding dedicato tramite il codec video, viene avviata la sua elaborazione. Il codec H.264 viene utilizzato ad esempio per i contenuti di player Silverlight, Flash, Quick Time e HTML5, garantendo un utilizzo di banda ridotto fino al 90%.

RemoteFX Media Streaming

Lato server inoltre viene valutato il frame rate ottimale per quel particolare video in quelle particolari condizioni di connessioni e di rete, garantendo comunque performance accettabili anche in caso di connessioni mobili, come rilevato da test interni:

Analisi frame rate

Windows Multimedia Redirection

Nonostante le novità introdotte con RemoteFX Media Streaming, il protocollo RDP 8.0 ovviamente continua a supportare la Windows Multimedia Redirection introdotta con Windows 7 e Windows Server 2008 R2, che consente in scenari LAN e con client che lo supportano, di effettuare l’offloading sul client dell’elaborazione di contenuti video riprodotti da Windows Media Player.

In questo caso è il client ad effettuare la composizione di stream audio/video che utilizzano la Windows Media Foundation , come file WMA, WMV, MP3, DivX, o che utilizzano DirectShow per MPEG-1, MPEG-2.

La Virtual GPU di RemoteFX (vGPU) e gli scenari VDI

Per quanto riguarda il supporto per l’accellerazione grafica tramite hardware, con questa release di RemoteFX la vGPU supporta DirectX 11, ed è pensata per sfruttare al meglio hardware dedicato e che supporta il modello di driver di Windows 8: DirectX11.1, WDDM 1.2. Lato server, richiede inoltre una CPU che supporti la tecnologia SLAT – Second Level Address Translation, che consente di garantire performance ottimali.

Nel caso in cui non siano presenti nel server delle GPU dedicate, i Remote Desktop Services sfrutteranno un device driver emulato per poter offrire comunque sia a chi si connette ad una sessione del Session Host, sia a chi si connette ad una macchina VDI, prestazioni grafiche ottimali.

La nuova architettura consente di mettere a disposizione delle sessioni remote un maggior numero di monitor, il supporto per l’accellerazione hardware sia nel browser che nelle differenti applicazioni, una redirezione più efficiente dei contenuti multimediali.

Per approfondimenti

Vi segnalo alcuni link con documentazione utile di approfondimento:

 

Renato F. Giorgini