Am Tue, 19 Jan 2016 19:39:26 +0000 (UTC)
schrieb Grant Edwards <grant.b.edwa...@gmail.com>:

> On 2016-01-19, Mick <michaelkintz...@gmail.com> wrote:
> 
> > As far as I understand it RDP is different to VNC, in the sense that
> > instead of sending every pixel down the line it only sends
> > compressed semantic information *about* a desktop component
> > (e.g. the start button, a control signal, etc.) and the client
> > interprets this locally as a button or a control command. It is also
> > using caching to minimise retransmission.
> 
> I don't think so.  AFAICT, RDP (a-la Windows) and VNC both do exaclty
> the same thing: they send display pixel info to be displayed.  They
> try to optimize the process by only sending deltas and by using
> various compression schemes, but they're both doing the basically the
> same thing.  RDP also has a bunch of other stuff to support things
> like audio, printer, filesystem, and serial/prallel port redirection
> that I don't think VNC ever had.  But the display/mouse/keyboard part
> of it works pretty much the same.

Well, RDP indeed sends bitmaps. But it can do it a lot more intelligent
and desktop aware than VNC. First, it supports bitmap caching and can
reuse bitmaps which were already sent - which in itself is quite a good
compression for usual desktop content. It also supports a wide variety
of compression types. It can also encode the fact that bitmaps have
moved thus only require sending the background of a window which was
moved - and can reuse bitmaps from the cache.

RDP also can detect and send content as a video stream. It also
supports sending graphical desktop effects using 3d acceleration and
transparency.

It also knows of glyphs (font rendering) which thus have not to be sent
as bitmaps (which due to font smoothing may not be compressible well).

Xfreerdp is a nice implementation which implements almost all those
features. I was able to use it to smoothly operate a remote Windows
desktop with Aero effects enabled. The latency was very low, the
experience was almost the same as working physically in front of the
machine. Of course, the remote end has to have a sufficiently new RDP
server implementation (like Windows 8 or Server 2012). It also
supports folder, printer, sound, and port redirection. It may also
support the new Windows RDP UDP transport which works more like a video
stream encoder and sacrifies immediate image quality for low latency. I
haven't tried it with xfreerdp. In Windows, it is very nice for high
latency links where it catches up image quality after 1 or 2 seconds or
so.

There's also demos where you can remotely play Diablo 3 on Windows using
a Linux RDP client - with low latency, sound and good image quality. I
doubt VNC could do that although the claim "basically the same". [1]

VNC just cannot do it. It even sometimes does not transfer small screen
updates like a blinking cursor - let alone the mouse pointer only
following on clicks. It also doesn't support catching up better image
quality in a deferred way to keep latency low. It's either slow, or
visually unpleasing at best. It's also annoying that it's bound to the
physical screen resolution of the remote machine. VNC was only good
back in WinXP times, when RDP was not much more than VNC in terms of
screen content transfer, and network links were generally much slower
than today, and VNC had some intelligent compression algos in contrast
to RDP. VNC just doesn't seem to be able to make use of low latency and
high bandwidth links - it still feels sluggish and slow. It's probably a
protocol implementation issue (not streaming and synchronous).

Given that, I'd say: No, it's _not_ "basically" the same. RDP is just
much more than simple bitmap transfer - even if we exclude advanced
features like sound, file transfer, clipboard sharing etc and stick to
the common features.

BTW: As far as I know, a wayland display server will be able to expose
an RDP framebuffer which you could connect to from Windows RDP clients,
and should also support smooth desktop effects and video encoding at
some time in the future. I followed that topic for a while but given
the fact that wayland is just not there yet, making it impossible for
me to use it on my daily desktop, I've given up on that. I'll try to
get back to that later. But as far as I understood, unlike Windows RDP,
a wayland RDP framebuffer does not mirror a physical screen - it just a
virtual framebuffer.

[1]: https://www.youtube.com/watch?v=RUXYuj9S1v8

-- 
Regards,
Kai

Replies to list-only preferred.


Reply via email to