Penguin

Differences between current version and predecessor to the previous major change of HowToLBX.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 2 Last edited on Sunday, November 28, 2004 12:53:49 am by AristotlePagaltzis
Older page: version 1 Last edited on Friday, June 7, 2002 1:06:54 am by perry Revert
@@ -1,611 +1 @@
-  
-  
-  
-The LBX Mini-HOWTO  
-  
-  
-  
-----  
-  
-!!!The LBX Mini-HOWTO  
-  
-!!Paul D. Smith,  
-psmith@baynetworks.comv1.04, 11 December 1997  
-  
-  
-----  
-''LBX (Low Bandwidth X) is an X server extension which performs  
-compression on the X protocol. It is meant to be used in conjunction  
-with X applications and an X server which are separated by a slow  
-network connection, to improve display and response time.''  
-----  
-  
-  
-  
-  
-!!1. Introduction  
-  
-  
-  
-  
-!!2. What's The Status Of LBX?  
-  
-  
-  
-  
-!!3. Who Can Benefit From LBX?  
-  
-  
-  
-  
-!!4. Who Doesn't Need LBX?  
-  
-  
-  
-  
-!!5. How Does LBX Work?  
-  
-  
-  
-  
-!!6. What Do I Need To Use LBX?  
-  
-  
-  
-  
-!!7. What Don't I Need To Use LBX?  
-  
-  
-  
-  
-!!8. How Do I Start LBX?  
-  
-  
-  
-  
-!!9. Problems  
-  
-  
-  
-  
-!!10. Documentation  
-  
-  
-  
-  
-!!11. Alternatives  
-  
-  
-*11.1 dxpc - The Differential X Protocol Compressor  
-  
-*11.2 Ssh (Secure Shell)  
-  
-*11.3 Which Is Better?  
-  
-----  
-  
-!!1. Introduction  
-  
-  
-''Low-Bandwidth X'' (LBX) attempts to recognize that in this day  
-and age, not everyone will be a fast LAN hop or two away from the system  
-that they are running their applications on.  
-  
-  
-The X protocol can generate an extraordinary amount of traffic,  
-especially for simple-seeming things such as creating new windows. As  
-anyone who has tried to use X over a dial-in modem at 28.8 or even  
-higher can attest, creating new X windows can involve an excruciating  
-wait.  
-  
-  
-LBX is fundamentally a compression and caching scheme designed to  
-minimize the amount of X traffic generated between two systems.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!2. What's The Status Of LBX?  
-  
-  
-As of the X Consortium's release of X11R6.3 in December, 1996, LBX  
-is a full extension to the X protocol. For XFree86 folks, that's  
-XFree86 version 3.3.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!3. Who Can Benefit From LBX?  
-  
-  
-If you use a modem to dial into a service provider, then run X  
-applications on remote machines with their DISPLAYs set to your local  
-machine (or vice versa), LBX will speed up that connection. Also if you  
-set DISPLAYs from systems across WANs (other countries, for example) or  
-other slow links, LBX can help.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!4. Who Doesn't Need LBX?  
-  
-  
-LBX is useless, of course, if you're only running applications  
-locally, or if you're not running X at all.  
-  
-  
-Also, if you're running on a fast LAN, LBX won't be much help. Some  
-people say "if LBX cuts down on network traffic, wouldn't it be good to  
-use even on fast LANs?" It might be, if your goal is to reduce network  
-traffic. But if your goal is to get better response time LBX probably  
-isn't what you want. Although it does introduce caching and  
-compression, that comes at a cost on both ends (extra memory for  
-caching, and extra CPU for decompression). If your link is fairly  
-speedy LBX will probably result in an overall slowdown.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!5. How Does LBX Work?  
-  
-  
-LBX works by introducing a ''proxy server'' at the client side,  
-which performs caching and compression. The X server knows that the  
-client is using a proxy server, and decompresses accordingly.  
-  
-  
-Here's a normal setup for remote X clients. In our discussion,  
-LOCAL is always the workstation sitting in front of you, whose monitor  
-you're looking at, and REMOTE is the remote workstation, where the  
-actual application is running.  
-  
-  
-  
-  
-----  
-  
-REMOTE LOCAL  
-+-----+ +-----+  
-| APP |-\ Network +----------+ | |\  
-+-----+ \--------------------------->| X SERVER |=>| ||  
-+-----+ / (X Protocol) +----------+ +-----+\  
-| APP |-/ /_____//  
-+-----+  
-  
-----  
-  
-  
-  
-When using LBX, a proxy server (lbxproxy) is introduced on the  
-remote side, and the applications talk to that process instead of  
-directly to the LOCAL server. That process then performs the caching  
-and compression of X requests and forwards them. It looks like this:  
-  
-  
-  
-  
-----  
-  
-REMOTE LOCAL  
-+-----+  
-+-----+ +-------+ Network +----------+ | |\  
-| APP |->| PROXY |----------------------------->| X SERVER |=>| ||  
-+-----+ +-------+ (LBX/X Protocol) +----------+ +-----+\  
-+-----+ / /_____//  
-| APP |--/  
-+-----+  
-  
-----  
-  
-  
-  
-Details on exactly what caching and compression LBX does is beyond  
-the scope of this document.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!6. What Do I Need To Use LBX?  
-  
-  
-You need an X server on your LOCAL system which has the LBX  
-extension compiled in. Unless you explicitly told it not to when  
-building it, X11R6.3 servers automatically enable LBX. Also, all  
-XFree86 3.3 servers have LBX enabled by default.  
-  
-  
-You can use the xdpyinfo command to see if your server has the LBX  
-extension: run xdpyinfo and look at the list just under "number of  
-extensions"; you should see "LBX" listed there.  
-  
-  
-Next, you need to get an lbxproxy program compiled for the REMOTE  
-system. This is the tricky part. If the remote system is not the same  
-type as your local system, the lbxproxy on your local system will  
-do you no good, of course.  
-  
-  
-There is unfortunately no "broken out" distribution of lbxproxy, so  
-you will have to either (a) get and build most, if not all, of X11R6.3  
-for the remote system, or (b) find someplace to get a pre-compiled  
-lbxproxy binary for your system. The latter is much simpler of  
-course.  
-  
-  
-The lbxproxy is simply a single executable. There are no  
-configuration files, resource files, etc. associated with it.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!7. What Don't I Need To Use LBX?  
-  
-  
-The REMOTE system __does not__ need a new X server (as always, the  
-REMOTE system doesn't need ''any'' X server running).  
-  
-  
-The application you want to run __does not__ need to be linked with any  
-special version of X, or any special libraries; I regularly use  
-commercial X11R5 apps over LBX with no trouble.  
-  
-  
-You __do not__ need root or other privileged access on the REMOTE  
-system; the lbxproxy process runs under your normal access  
-permissions. Further, you can run it right from your home directory: it  
-does not have to be installed anywhere.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!8. How Do I Start LBX?  
-  
-  
-OK, here it is... after all that it's actually quite simple.  
-Replace LOCAL and REMOTE below with the hostnames of your local  
-workstation and remote system, respectively (don't get them mixed up!)  
-  
-  
-On LOCAL:  
-  
-  
-  
-  
-  
-# Start your X server.  
-  
-#  
-  
-# Tell your X server that the remote system is allowed access.  
-Using the host-list method, type xhost +REMOTE. If you use  
-xauth you may need to do more than this; see the ''xauth(1)'' man  
-page for more information.  
-You should consult the  
-Remote X Apps Mini-HOWTO if you're not familiar with remote X access permission  
-setup.  
-#  
-  
-  
-  
-On REMOTE:  
-  
-  
-  
-  
-  
-# Start lbxproxy and tell it to forward to the LOCAL X server,  
-like this:  
-  
-  
-$ lbxproxy -display LOCAL:0 :1 &  
-  
-  
-This tells lbxproxy to use display :1 on  
-the REMOTE system; if that system has >1 display already you can use  
-:2 or whatever instead.  
-  
-#  
-  
-# Set your DISPLAY environment variable to point to the display  
-that lbxproxy is providing, instead of the normal display:  
-  
-  
-$ DISPLAY=:1  
-$ export DISPLAY  
-  
-  
-Or, if you use csh or clones:  
-  
-  
-% setenv DISPLAY :1  
-  
-  
-  
-#  
-  
-# If you're using xauth you will need to ensure that your  
-cookie is available locally. See the  
-Remote X Apps Mini-HOWTO for more information on this.  
-  
-#  
-  
-# Start your X applications!  
-#  
-  
-  
-  
-That's it; all X apps that are started up pointing to :1 will use  
-LBX. Of course, there's no reason you couldn't also start X apps  
-pointing to LOCAL:0 and have both running at the same time.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!9. Problems  
-  
-  
-Here are some common problems:  
-  
-  
-  
-  
-; __Q)__:  
-  
-lbxproxy exits with an "access denied" error.  
-  
-  
-  
-; __A)__:  
-  
-This means the LOCAL system isn't accepting connections from  
-the REMOTE system due to permissions errors. See the  
-Remote X Apps Mini-HOWTO for details on these issues.  
-  
-  
-As a simple trouble-shooting measure, try running a simple X app  
-like xclock on REMOTE and have it display on the local  
-system without using lbxproxy:  
-  
-  
-  
-  
-  
-$ xclock -display LOCAL:  
-  
-  
-  
-  
-If that doesn't work, it's xhost or some other basic X  
-problem, not LBX.  
-  
-  
-  
-  
-----  
-  
-!!10. Documentation  
-  
-  
-The only documentation available in a standard X distribution may be  
-the ''lbxproxy(1)'' man page.  
-  
-  
-If you have access to the X source tree, then very interesting  
-information on LBX is available there:  
-  
-  
-  
-  
-  
-*xc/doc/specs/Xext/lbx.mif (Framemaker MIF)  
-*  
-  
-*xc/doc/hardcopy/Xext/lbx.PS.Z (Compressed Postscript)  
-*  
-  
-*xc/doc/hardcopy/Xext/lbxTOC.html (HTML)  
-*  
-  
-  
-  
-More detailed discussion of specific LBX algorithms is available here:  
-  
-  
-  
-  
-  
-*xc/doc/specs/Xext/lbxalg.mif (Framemaker MIF)  
-*  
-  
-*xc/doc/specs/Xext/lbxalg.PS.Z (Compressed Postscript)  
-*  
-  
-  
-  
-If you don't have access to the X11 source, you can obtain these  
-files from  
-the X Consortium's FTP site.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!11. Alternatives  
-  
-  
-If you don't like lbxproxy for some reason: you're not  
-satisfied with the performance, it doesn't work for you, you don't want  
-to hassle with creating an lbxproxy for the remote host, or you simply  
-are interested in trying other options, there is at least one other  
-package for X protocol compression (anyone have others?)  
-  
-  
-  
-  
-!!11.1 dxpc - The Differential X Protocol Compressor  
-  
-  
-  
-  
-  
-  
-*Original Author:  
-Brian Pane <brianp@cnet.com>  
-*  
-  
-*Current Maintainer:  
-Zachary Vonler <lightborn@mail.utexas.edu>  
-*  
-  
-  
-  
-  
-dxpc works in essentially the same way as LBX. However, to  
-avoid having to implement an X extension and modify the X server code,  
-dxpc uses __two__ proxies: one that runs on the REMOTE host, like  
-lbxproxy, and one that runs on the LOCAL host.  
-  
-  
-The REMOTE host proxy communicates between the X clients and the  
-LOCAL host proxy, and the LOCAL host proxy communicates between  
-the X server and the REMOTE host proxy.  
-  
-  
-So, to ''both'' the X clients and the X server, it looks like X  
-protocol as usual.  
-  
-  
-  
-  
-!Advantages  
-  
-  
-  
-  
-  
-* Since it's a completely separate application that does not  
-require any X internals, it's ''much'' simpler to compile and  
-install.  
-  
-*  
-  
-* It's maintained separately, so you don't have to wait for the  
-OSF to release new X versions for enhancements or fixes.  
-  
-*  
-  
-* It provides more and better compression information and  
-statistics than lbxproxy.  
-*  
-  
-  
-  
-  
-  
-!Disadvantages  
-  
-  
-  
-  
-  
-* It is not a standard part of X; you must obtain and build it  
-separately.  
-  
-*  
-  
-* It is slightly more complex to set up, since it requires a  
-LOCAL-side proxy as well as the REMOTE proxy.  
-*  
-  
-  
-  
-  
-  
-!Where Can I Get dxpc?  
-  
-  
-The source for dxpc is available at  
-ftp.x.org.  
-  
-  
-There is a WWW homepage for dxpc that gives a lot of good  
-information, including pointers to the dxpc mailing list, access to the  
-source code, and a number of pre-built binaries for various platforms:  
-  
-  
-  
-http://ccwf.cc.utexas.edu/~zvonler/dxpc/  
-  
-  
-  
-!!11.2 Ssh (Secure Shell)  
-  
-  
-  
-  
-Ken Chase <lbxhowto@sizone.org>  
-notes that  
-ssh can  
-be used for compression. Although its main purpose is to provide  
-security, it also compresses the data it sends.  
-  
-  
-Thus, if you run X over a ssh link you will automatically obtain  
-some amount of compression.  
-  
-  
-  
-  
-!!11.3 Which Is Better?  
-  
-  
-  
-I don't know. Both LBX and dxpc are certainly better at raw  
-compression than ssh. Of course, ssh provides the added  
-advantage of security. And of course, there's no reason you can't use  
-both ssh and one of the other two, to get good compression and  
-security.  
-  
-  
-It shouldn't be hard to run some benchmarking against these options  
-and get both subjective and statistical measurings of performance. But  
-I haven't done this, and I don't know of anyone who has .  
-  
-  
-  
-----  
+Describe [HowToLBX] here.