4 ms·
Yeah I wonder why RDP on Windows is just so efficient. It is another block pusher as far as I understand. But it performs so well. I've even used it over a 960
by GekkePrutser 5y ago
Yeah I wonder why RDP on Windows is just so efficient. It is another block pusher as far as I understand. But it performs so well.
I've even used it over a 9600 baud dialup connection (a long time ago from a 2G mobile that didn't have GPRS) and it was usable to my suprise.
- Underphil 5y agoAre you sure on that first statement? I always thought it was akin to 'X' in that it simplified the connection based on an understanding of the windowing system. I guess I could have just made that up though.
- GekkePrutser 5y agoNo, I was wrong.. I've looked at the code of a Linux RDP server before (to identify an issue), and it was block pushing so I assumed this was also the case on Windows. But magicalhippo above corrected me. I didn't know about the GDI calls thing.
- magicalhippo 5y ago> It is another block pusher as far as I understand. While that is the most basic thing RDP allows for[1], it also supports sending GDI draw calls[2] which is more like X-forwarding. It also hooks into the stack at a lower layer than VNC and friends so when sending bitmap block updates it has the dirty area information directly available, and doesn't have to do a frame-by-frame delta to recover that information. This is a huge CPU hog from my experience when I did some work on the FreeRDP server component years ago. It also supports using UDP[3] with forward error correction to improve performance over WANs. [1]: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpbcgr/5073f4ed-1e93-45e1-b039-6e30c385867c https://docs.microsoft.com/en-us/openspecs/windows_protocols... [2]: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpegdi/745f2eee-d110-464c-8aca-06fc1814f6ad https://docs.microsoft.com/en-us/openspecs/windows_protocols... [3]: https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpeudp/2744a3ee-04fb-407b-a9e3-b3b2ded422b1 https://docs.microsoft.com/en-us/openspecs/windows_protocols...
- GekkePrutser 5y agoAha I had no idea it worked like that, with the GDI calls. That makes sense. There is definitely a performance advantage I've seen that's not matched when you run RDP on Linux. I assumed this was because of implementation issues but of course Linux doesn't use GDI so this makes sense, so it has to revert to block pushing. Thanks for pointing it out.
- formerly_proven 5y ago> I've even used it over a 9600 baud dialup connection (a long time ago from a 2G mobile that didn't have GPRS) and it was usable to my suprise. Yeah, you can pretty much forget that with newer Windows versions.
- tinus_hn 5y agoYou can tune down the graphical bells and whistles to make this work with newer versions as well.