Proxy Servers Lighten Up X
An anonymous reader writes "LinuxDevices.com is reporting on a compression and differential proxy scheme for X that makes it practical to xhost rich applications like Mozilla or a whole UNIX desktop over a 9.6Kbps connection (think cell phone with GSM modem). The company developing NX has a neat test drive set up -- and it is way zippier than VNC. There'll be a paper about it at the next LinuxKongress in Saarbrucken, Germany, and a call is out to OSS programmers to build on the GPL'ed NX library."
Hmmmmmmmmm......yup, they're definitely prepared to be a
1. No sig. 2. ???? 3. Profit!!!
(Sorry, but I'm not able to read the PDF right now, and there doesn't appear to be a whole lot of technical info on the web site.)
So can anyone address how this new product is any different or better than Low Bandwith X? LBX is also a proxy server that caches a lot of information local to the application cut down on traffic across the slow link to the actual X server. I've used it to run programs like XEmacs and XTerm across 56K links and it works very well. It's less useful at graphics-intensive programs like Gimp.
Its surely not meant for that, think gsm -> bluetooth -> laptop This should be sweet
I thought the only one was /usr/bin/fortune or have I missed something??
Uh, you use the cellphone as a mobile modem for your laptop. Which can display X just fine.
One simple answer: ssh.
Doesn't matter how you connect to the machine that'll run the program, it'll tunnel all your X stuff over the existing ssh connection, so you don't have to worry about anything. I was stuck on Windows machines sometimes with an X server, and putty handled X tunneling perfectly. Just a checkbox to click and then it worries about the rest.
Stop messing with "export DISPLAY=xxx.yyy.zzz.aaa:0" already...
Maan
Just what X was made for I thought.
First I tried straight X (over ssh -X -C of course). This is on a 256k upstream DSL link.
The performance was pants. Really bad. At first I thought I must be doing something wrong. To be honest, Gimp wasn't too bad, but a Gnome 2 application like Xchat2 was really slow. Menus would take an age to display.
I tried looking around for a low bandwidth solution, but couldn't find any free ones.
I've ended up using VNC over SSH. It's much better than straight X. Plus it's got the added advantage that I can just leave the application running, and connect to it from anywhere.
With X, there is no easy way (xmove was impractical) to leave an application running, and move it between desktops.
-- Hulver's site
The mobile phone screen angle is a red herring. The really great thing about this is that it massively reduces the bandwidth required for running X over the network and it also reduces latency. The issue is that X consumes a lot of bandwidth. In some cases, if the bandwidth is available, X will use up to 10 Mbps to display a remote application screen. This is excessive and limits the use of X. Running X through ssh with compression enabled helps tremendously but can still consume 220Kbps. VNC offers similar 220Kbps or less performance to X through ssh but has much higher latencey so, it's not perfect either.
This new NX proxy is claiming 9.6Kbps X applications. Even if it doesn't come close to delivering that and is closer to 28Kbps or even 40Kbps it is still a massive improvement over X and ssh or even VNC and it now falls in line with the Citrix ICA protocol. It also apparently adds some of the Citrix features that X was missing but, the reduction in bandwidth alone is a tremendous improvement. You don't have to use it on a mobile phone and chances are I never will.
Yes it is. In fact, X is liked by so many because of its network transparency.
However, the amount of data that a typical "rich" X client sends (e.g., mozilla) is huge. Many X clients are not optimized in terms of the amount of display information they output (that is, they output a lot of stuff that could probably be optimized away). For many developers, this is within reason since they figure that most of the time the xserver and xclient will be on the same machine (e.g., running mozilla on my box to display on my monitor).
This handy piece of proxy software put out by NX claims to be able to cache a lot of the data that X clients send, thereby reducing the amount of data actually transmitted. This will allow "rich" applications which send a lot of data to be run over slower connections with an apparenet reduce in lag time.
/<en
UK UNIX User Group
Linux Conference 2003
The NX Project
What is NX?
- NX is a remote desktop system based on X-Window
- Adds features to X-Window usually found in proprietary systems like MS RDP and Citrix ICA
- Makes possible to run contemporary Unix applications over the Internet
- Compresses the X protocol by an average factor of 50:1 and more
- Allows users to work comfortably on 28.8Kbps or even 9.6 Kbps modem connections
- Reduces X protocol round-trips nearly to zero
- Implements image streaming algorythms to reduce the perceived latency
- Is able to translate RDP and RFB foreign remote desktop protocols to X
- Runs these foreign remote desktop sessions faster than their native protocols
- It integrates with SMB to provide access to the client's file systems
- It integrates with ARTSD and ESD to allow media playback
- Adds server management tools to handle X, RDP and RFB sessions run by users
- Architecture is designed to distribute the server workload between multiple nodes
- It leverages SSH remote execution capabilities to avoid the need to run a new network server
- It is able to encrypt and protect the network traffic by tunneling the connections through SSH
- Server is intended to run on any Unix OS
- Client runs on Linux, Windows, Solaris, Mac OS/X, Sony Playstation/2, MS Xbox and embedded devices like HP/Compaq iPAQ and Sharp Zaurus
- NX core components and X compression libraries are released under the GPL license
- NX client GUI (nxclient) and the NX server manager (nxserver) are commercial software
- The NX client-server protocol is open
- A library handling the client-server protocol and a compatible command-line NX client have been released under the GPL license
- NoMachine has publicly offered its help to let OSS developers build a free implementation of both the nxclient GUI and the nxserver NX System Architecture X NX "protocol" (internet, modem) Local X display Local NX proxy system Remote NX proxy system Remote X application Windows Terminal Server, XP Prof. (Tight) VNCServer nxagent (based on Xnest) nxdesktop (based on rdesktop) nxviewer (based on vncviewer) RDP X RFB
What features are missing?
- X session persistence and reconnection - Better support of RENDER extension - Better support of X applications in seamless mode
- Better support of SMB file-sharing and printing
- Seamless access to client's peripherals and devices
- A new multimedia architecture with native streaming of media formats
- Better integration with Unix and Windows desktop environments to allow point-and-click remote execution of applications
- Better server management tools, including a Web administration interface
- An open API to let customers and developers to write server extensions What NX would like to become?
- A convenient way to let users of mobile phones and other thin devices to get access to complex, rich applications
- A server infrastructure by which people can easily run applications regardless they reside on the local machine or a remote server
- A peer-to-peer computing environment where users can easily access computing resources, like storage and printers, on any server available on the Internet
- A step in the direction of the "network desktop" envisioned by many
Always the problem with these things. ssh display forwarding and lbxproxy can both reduce the bandwidth used by X11 but both increase the latency, sometimes to unacceptable levels.
On the corporate LAN we have 100Mbit switched and haven't noticed bandwidth being a problem. We have however noticed that both lbxproxy and ssh require more CPU in order to perform compression and buffering which *can* be a problem on a shared server if the number of concurrent sessions it can support drops by 20%.
I guess if you want X to your phone then it could be an issue, but that's a fairly niche market.
Government of the people, by corporate executives, for corporate profits.
Did you RTFA?
NX places a caching proxy server on either side of X's client-server architecture, reducing network traffic to differential transfers of whatever is not already cached. The company says programmers rarely optimize X applications for low throughput on the X client-server interface, resulting in many needless "round-trip" data transfers that NX can largely eliminate.
So instead of taking the whole X session and cramming it over ssh (even with compression) you cache the majority of it and just pass the deltas.
It has ssh capability so I imagine you can tunnel it but you would still be tunneling a LOT less traffic.
You don't have very much experience working in a corporate Unix environment, do you?
Who would use it? Every corporate I.T. dept on the planet which has Unix or Linux installed somewhere.
We have 400 hardware and software engineers who's only access to Unix is a Gnome login. Everything they do is remote to arrays of rackmounted Unix boxes. It saves a fortune every year.
Government of the people, by corporate executives, for corporate profits.
Basically, data over GSM is a bad idea. The max speed is 9600 kbit/s. There are other alternatives, such as HSCSD (High Speed Circuit Switched Data) which will provide 56.6kbit/s, and GPRS (General packet Radio Service) which will give up to 384kbit/s (if using EDGE). Then, we have the 3G standards, CDMA2000 and WCDMA, with up to 2Mbit/s (close to the base station, and only if you're almost alone in the cell...) While the 3G isn't much available, GPRS is. Why you'd like to use the GSM for data is beyond me.
Another product that's been around for a while and works pretty good is Differential X Protocol Compressor. How does this new product differ?
Citrix MetaFrame/ICA.
Citrix is traditionally known for connecting X to Windows desktops, but they make a product that compresses X11-to-X11 as well.
The good news? It kicks butt. You can feel a lag, but it works far better than anything else I've tried in the speed department. In particular, Acrobat reader renders VERY quickly, and that program is a pig with bitmaps.
The bad news? It kicks butt by compressing the event stream... in a lossy manner. I have seen all sorts of minor glitches, such as menus opening up underneath their parent windows. But some programs are unusable - the Sun Java machine is an example - certain dialogs require a triple-click to select something because somehow Citrix consumes the other clicks.
The bottom line? If you want a solution for the office environment, then this is worth looking into. (Not free, however.) When evaluating, check ALL of your apps to see how bad their lossy event handling will bite you.
I don't know about NiftyTelnet, but if you're on OS X, the plain command line ssh (openssh) should do it. If it doesn't work at first, try ssh -X to force X tunneling.
SSH tunnels at the IP level and can tunnel any connection. It sets up a listening socket on a specified port on one side, and repeats everything it hears on that port to the other side. X tunneling is just one specific application of this feature.
Gotta love ssh...
Maan
The KDE League has been behind this, and every major assassination in the 20th century. They're responsible for the California recalls, although Arnold has put a stop to their fiendish plan to take over Governorship and rename the state to Kalifornia.
They will be targetting Kolorodo next, then the cities of Kleavland, Klearwater, and Koopersville.
They've already got Kansas, Kulpsville, and Kure Beach. Cincinatti will be wiped off the map for its insolence of using a "soft c" sound, then Chicago for the dipthong fiasco.
They need to be stopped! At all costs!
There is a free solution included with almost every X server -- lbx. If you want, you can even use lbx and tunnel it through ssh, although that doesn't improve things TOO much, as you add latency.
To enable lbx, log in to the remote machine, make sure $DISPLAY is set correctly and execute something like this:Adjust
Make sure that your X server (on your client) has lbx extensions enabled. If you use Hummingbird Exceed, for example, it's not enabled by default.
Regards,
--
*Art