To oversimplify a bit, VNC sends a sequence of images of the screen that are then painted. It optimises this pretty well - only sending the fragments of the screen that change, allowing translation of blocks (e.g. for window dragging), but it's a pretty simple way of transmitting screen information. That's also a good thing because it is completely agnostic to the UI and the client and server.
RDP has a much more complex set of window painting commands - instead of sending 'this block of image goes here' it sends 'draw a window here with this decoration'. It's much more complex but also more performant as a result.
RDP has a much more complex set of window painting commands - instead of sending 'this block of image goes here' it sends 'draw a window here with this decoration'. It's much more complex but also more performant as a result.