VDI Remoting Protocols Turned Inside Out - MSDN

rodscarletSoftware and s/w Development

Dec 14, 2013 (3 years and 11 months ago)

119 views

www.immidio.com
teched@drtritsch.com
GDI/GDI+

WPF

DirectX/OpenGL

Video/Audio

Silverlight

Flash

TS/RDS
Device

Driver

Termdd.sys




Rdpwd.sys

Tdtcp.sys

TS/RDS
Service

RDP
Protocol

Extension

Rdpwsx.dll,

IWTSProtocol.dll

CSRSS

Per
-

Session

Apps

TCP/IP

Network Card Drv.

Win32k.sys

Display Driver

???.sys

Kbdclass.sys

Mouclass.sys

System

Space

Session

Space

PDs

DWM

UserInit

Shell

Startup Module

Winlogon

Hooks

SMSS

LSM

Wd???.sys

PDs

Display Driver

Rdpdd.sys

3rd Party

Protocol

Extension

Wsx???.dll

Redirector

Filters

Srvc.

TCP/IP

Network Card Drv.

Mstscax.dll

RDS Client

Client

Host

?

?

Client Window Manager

Host Window Manager

Render

Capture

Compress

Encrypt

Decrypt

Uncompress

Display

RDP

Host

Client

Partially

Client
-
Side

Rendering

Partially

Host
-
Side

Rendering

Lossless

Compression

ICA/HDX

Host

Client

Client
-
Side

Rendering

Lossy

Compression

RemoteFX

Host

Client

Host
-
Side

Rendering

Hyper
-
V + RCC Engine (Render, Capture, Compress)

W7 SP1

Guest OS

vGPU

Driver

WS2008R2
SP1 Hyper
-
V
Parent
Partition

RCC

VMBUS

Hyper
-
V

Integrated
Shared
Memory

Comms


RDP

GPU

v
GPU

output
rendered to physical
GPU via DirectX


Screen deltas
captured from GPU


First phase of
CODEC runs on GPU

Inter
-
VM Communications

Protocol Fundamentals
(e.g.
Authn
, Encryption)

vGPU

(WDDM) driver
exposes parent GPU to
guest OS.

RemoteFX

Hardware
ASIC and
Driver

RCC = Render
, Capture,
Compress

Optionally offloads CODEC
from CPU/GPU increasing
fidelity and scale.

Microsoft

RDP 7

Windows 7

on Hyper
-
V

Citrix

HDX3D

Windows 7

o
n physical PC

Microsoft

RDP 7.1 with
RemoteFX

Windows 7 SP1

o
n Hyper
-
V

Teradici

PCoIP

(Host Card)

Windows 7

o
n physical PC

Microsoft

RDP 7

Windows 7

on Hyper
-
V

Citrix

ICA/HDX

Windows 7

o
n
XenServer

Quest

EOP

Windows 7

o
n Hyper
-
V

VMware/
Teradici

PCoIP

(SW)

Windows 7

o
n
vSphere

SW
-

0msLAN
-
01
-
WordpadScrolling
Font 1

Font 2

GDI

2D Vector
Graphics

Images

(Bitmaps)

Fonts

Font 2

Font 2

Big Font 4

Font 3


Untitled
-

Notepad





_





F
ile
E
dit F
o
rmat
V
iew
H
elp

GDI

GDI

Rendering

Host

Client

HW
-

0msLAN
-
01
-
WordpadScrolling
HW
-

50ms2Mbit
-
01
-
WordpadScrolling

SW
-

50ms2Mbit
-
01
-
WordpadScrolling
SW
-

200ms2Mbit
-
01
-
WordpadScrolling
HW
-

200ms2Mbit
-
02
-
PDFScrolling
SW
-

200ms2Mbit
-
02
-
PDFScrolling
Audio Signal

Spatial Model

Temporal Model

Discrete Cosine
Transform

Quantization

Entropy Encoder

Key

Frame

Delta

Frame

Delta

Frame

Delta

Frame

Key

Frame

WMV

Host

Client

Video

Rendering

HW
-

50ms6Mbit
-
04
-
WMVHD
HW
-

200ms6Mbit
-
04
-
WMVHD
SW
-

200ms6Mbit
-
04
-
WMVHD
HW
-

0msLAN
-
05
-
Quicktime480p
HW
-

50ms2Mbit
-
05
-
Quicktime480p
SW
-

50ms2Mbit
-
05
-
Quicktime480p
Windows Application

Windows Application

GDI

Direct3D API

HAL Device

Device Driver Interface (WDDM)

Graphics Hardware


DirectX/OpenGL





_





F
ile
E
dit F
o
rmat
V
iew
H
elp


Untitled
-

Notepad





_





F
ile
E
dit F
o
rmat
V
iew
H
elp

Windows Application

OpenGL32

OpenGL Installable
Client Driver

Windows Application

GDI

Device Driver Interface (DDI, WDDM)

Graphics Hardware

Generic OpenGL
Module

OpenGL Support

3D DDI Support

IHV
-
specific

Win32 DDI


DirectX/OpenGL





_





F
ile
E
dit F
o
rmat
V
iew
H
elp


Untitled
-

Notepad





_





F
ile
E
dit F
o
rmat
V
iew
H
elp

Bitmaps

Host

Client


DirectX/OpenGL





_





F
ile
E
dit F
o
rmat
V
iew
H
elp


DirectX/OpenGL





_





F
ile
E
dit F
o
rmat
V
iew
H
elp

DirectX/OpenGL

Rendering

Tech

WinXP

Local

Win7

Local

XP

RDP5

HDX3D

XP

Win7

RDP7

HDX3D

Win7

SW D3D













HW D3D9













HW D3D

10/11













SW OpenGL













HW OpenGL













HW
-

0msLAN
-
22
-
HWDX9Rollercoaster
HW
-

200ms2Mbit
-
22
-
HWDX9
-
Rollercoaster
HW
-

50ms2Mbit
-
24
-
HWDX10CustomResolve

HW
-

0msLAN
-
20
-
SWOpenGL
-
Seascooter
HW
-

50ms2Mbit
-
20
-
SWOpenGL
-
Seascooter
SW
-

50ms2Mbit
-
20
-
SWOpenGL
-
Seascooter
HW
-

200ms2Mbit
-
21
-
HWOpenGL
-
Cloth
Presentation Framework

Presentation Core

Device Driver Interface (DDI, WDDM)

Graphics Hardware

.NET CLR

Visual System

Media Integration Layer (MIL)

Composition

System

Render Engine

DirectX

User32

Message Transport

GDI

Bitmaps

Host

Client

WPF

Rendering

HW
-

0msLAN
-
08
-
WPFAppMeediOS
HW
-

50ms2Mbit
-
08
-
WPFAppMeediOS
SW
-

50ms2Mbit
-
08
-
WPFAppMeedios
Bitmaps

Host

Client

Flash

Rendering

Flash

Host

Client

Flash

Rendering

Bitmaps

Host

Client

Flash

Rendering

HW
-

0msLAN
-
06
-
FlashDemo
HW
-

50ms2Mbit
-
06
-
FlashDemo
SW
-

50ms2Mbit
-
06
-
FlashDemo
HW
-

0msLAN
-
09
-
SilverlightPhotoGallery
HW
-

50ms2Mbit
-
09
-
SilverlightPhotoGallery
SW
-

50ms2Mbit
-
09
-
SilverlightPhotoGallery
HW
-

200ms2Mbit
-
30
-
UserExp
-
Whackamole
SW
-

200ms2Mbit
-
30
-
UserExp
-
Whackamole
Protocol

RDP 7

RDP 7.1
RemoteFX

(w/o ASIC)

Citrix

ICA/HDX

Citrix HDX
3D Pro
(1:1)

VMware
PCoIP

SW

Teradici

PCoIP

HW
(1:1)

Quest

EOP

GDI




































WMV




































Quicktime




































DirectX
































OpenGL SW




































OpenGL HW































WPF




































Silverlight




































Flash




































http://europe.msteched.com/topic/list/