Hacker News new | ask | show | jobs
by yourapostasy 3815 days ago
NoMachine's solution comes close, but is still not as robust over flakey connections as RDP. I've yet to experience the kind of tolerance to slow/poor connections I get with RDP over NoMachine when run over either a very spotty cellular Internet connection (3G-grade will really point this out) and over an airliner's satellite Internet connection. As odd as it may seem, when I want a solid X11 experience over a flaky Internet connection, I spin up an X11 window server on a Windows desktop, and RDP into that desktop session. RDP degrades much more gracefully than the Unix-based options, and isn't as aggressive with timing out and breaking the connection.

I also looked at the SPICE protocol and its implementations [1], but again the user experience is poor over slow/flaky connections compared to RDP. The compact RDP data stream also makes it a good starting point for developing various RDP-based recorders.

In my opinion, RDP is a much-overlooked feature of Windows, and its superior implementation to any Unix alternatives I'm aware of is one of the reasons I still run some Windows instances in my environment.

https://en.wikipedia.org/wiki/SPICE_%28protocol%29

1 comments

NoMachine offers two methods when delivering a remote Linux/Unix desktop: 1) NX in 'lightweight mode', mainly using advanced compression and caching of the X11 protocol and 2) NX using hardware accelerated video encoding and decoding.

The first method is the preferred option when connecting to legacy X11 applications, i.e. applications making mostly use of traditional X11 Render operations and X11 vector graphics. In this 'lightweight mode' NX reduces both the bandwidth usage and the HW requirements on the client and the server to the very minimum, by employing the expensive video encoding operations only when detecting that the server-side application is producing video data on the screen.

Unfortunately this 'lightweight mode' can't deliver games, a Mac or Windows desktop, as well as most contemporary Unix/Linux desktop environments. The reason, in the latter case, is the inefficient way these applications use the X11 protocol, as well as the inability of the X11 protocol to deal with modern graphics. In these cases, the use of video encoding is unavoidable. NX employs a number of different techniques to reduce the CPU consumption and the bandwidth needed, so much to often make video encoding advantageous even compared to the legacy X11 protocol compression. But, of course, the final results always depend on the screen content being deployed.

Disclaimer: I work for NoMachine

Thank you for the clarification, that helps explain a lot. Next time I fly and/or hit a 3G area I'll try running the older X Window manager fvwm v2.x under NoMachine and compare to the RDP-based results. I'd really prefer to work with NoMachine because it preserves my Linux- and BSD-based stack, so if it works as well as RDP I'll try to remember to post back here my results.