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.