|Products||DownloadPrice & OrderSupportCompanyTutorialsSitemap|
back | index | next
Low Bandwidth X (LBX) is a network-transparent protocol for running X Window System applications over transport channels whose bandwidth and latency are significantly worse than that used in local area net works.
The design center for LBX is to use a proxy as an intermediary between the client and server, so that the low bandwidth/high latency communication occurs between the proxy and server. The proxy re-encodes and compresses requests, events, replies and errors, as well as the resulting data stream to reduce the volume of data that must be sent over the wire. Additionally, the proxy can cache information from the server to provide low-latency replies to clients. This reply generation by the proxy is known as short-circuiting. A proxy can handle multiple clients for a given server, but does not prevent clients from connecting directly to the server. The design allows the proxy to multiplex multiple clients into a single data stream to the server.
LBX employs several different compression and short-circuiting methods. Use of these methods is negotiable, and in some cases, the algorithm used by a given method is negotiable as well. LBX also provides for negotiation of extensions to LBX.
Applications that would like to take advantage of the Low Bandwidth extension to X (LBX) must make their connections to an lbxproxy. These applications need to know nothing about LBX, they simply connect to the lbxproxy as if it were a regular server. The lbxproxy accepts client connections, multiplexes them over a single connection to the X server, and performs various optimizations on the X protocol to make it faster over low bandwidth and/or high latency connections.
With regard to authentication/authorization, lbxproxy simply passes along to the server the credentials presented by the client. Since X clients will connect to lbxproxy, it is important that the user's .Xauthority file contain entries with valid keys associated with the network ID of the proxy. lbxproxy does not get involved with how these entries are added to the .Xauthority file. The user is responsible for setting it up.
Synopsis of lbxproxy:
The lbxproxy program has various options, all of which are optional. It is recommended to use them with their defaults.
See lbxproxy manual for more details.
Running xterm from Telnet_SSH
Suppose that your PC has the network name xtp. Run XServer, then run Telnet_SSH and connect to remote machine supporting LBX. After logging in, you can launch lbxproxy and then xterm in the main Telnet_SSH window by using the following commands (
or (with setting the DISPLAY environment variable and using it by default):
After that xterm will work with display :62.0 (corresponding to port 6062) and will use LBX protocol. In the xterm window, you can run the
If the port that the proxy tries to listen on (6062) is in use, the proxy will exit with an error message. To locate available proxy services, you can use the xfindproxy program communicating with a proxy manager (see About xfindproxy below).
Terminating XSession terminates lbxproxy.
You can launch more than one lbxproxy-xterm pairs, each with different displays available (e.g., :61.0 in addition to above).
Note: to run lbxproxy under Solaris, you must have rights as root.
Running xterm from Startup
The Startup utility automatically runs XSession and then prompts you to specify data for connection and commands for execution. You can connect to remote machine supporting LBX and start up lbxproxy-xterm pair by entering in the Command field and sequentially executing the following commands (e.g., from xtp:0 and for port 6061):
Note that you should enter the full file specification to execute such commands. (You can use
xfindproxy is a program used to locate available proxy services. It utilizes the Proxy Management Protocol to communicate with a proxy manager. The proxy manager keeps track of all available proxy services, starts new proxies when necessary, and makes sure that proxies are shared whenever possible (see About proxymngr below).
Synopsis of the xfindproxy:
If xfindproxy is successful in obtaining a proxy address, it will print it to stdout. The format of the proxy address is specific to the proxy service being used. For example, for a proxy service of "LBX", the proxy address would be the X display address of the proxy (e.g. "a.b.c:62").
If xfindproxy is unsuccessful in obtaining a proxy address, it will print an error to stderr.
See xfindproxy manual for more details.
Suppose that your PC has the network name xtp (with XServer running), and the network address of the proxy is "a.b.c:6500". Execute the following command (in Telnet_SSH or Startup as described above):
For a proxy service of "LBX", the proxy address would be the X display address of the proxy (e.g., "a.b.c:62") printed to stdout. (See also Proxy manager details below.)
After that you can execute the following command (see Running xterm from Telnet_SSH above):
Note that XSession must be running in your PC when you execute proxymngr and xfindproxy (xtp:0 in commands above is the address of the target X server).
Note: terminating XSession terminates lbxproxy.
The proxy manager (proxymngr) is responsible for resolving requests from xfindproxy (and other similar clients), starting new proxies when appropriate, and keeping track of all of the available proxy services. The proxy manager strives to reuse existing proxies whenever possible.
There are two types of proxies that the proxy manager deals with, "managed" and "unmanaged" proxies. A managed proxy is a proxy that is started "on demand'' by the proxy manager. An unmanaged proxy, on the other hand, is started either at system boot time, or manually by a system administrator. The proxy manager is made aware of its existence, but no attempt is made by the proxy manager to start unmanaged proxies.
Synopsis of proxymngr:
The command line options that can be specified to proxymngr are:
Used to override the default proxymngr config-file. See Proxy Manager Config-File below for more details about the config-file.
Sets the number of seconds between attempts made by the proxy manager to find an unmanaged proxy. The default is 10.
Sets the maximum number of retries made by the proxy manager to find an unmanaged proxy. The default is 3.
Causes various debugging and tracing records to be displayed as requests are received and proxies are started.
Proxy Manager Config-File
The proxy manager maintains a local configuration file describing the proxy services available. This configuration file is installed in /usr/X11R6/lib/X11/proxymngr/pmconfig during the installation of proxymngr. The location of the configuration file can be overwritten using the
Aside from lines starting with an exclamation point for comments, each line of the configuration file describes either an unmanaged or managed proxy service.
For unmanaged proxies, the format is:
Is the name of the unmanaged proxy service, and must not contain any spaces, for example "XFWP''.
Is the network address of the unmanaged proxy. The format of the address is specific to the service-name. For example, for the "XFWP'' service, the proxy-address might be "firewall.x.org:100''.
If there is more than one entry in the config-file with the same unmanaged service-name, the proxy manager will try to use the proxies in the order presented in the config-file.
For managed proxies, the format is:
Is the name of the managed proxy service, and must not contain any spaces, for example "LBX''.
Is the command executed by the proxy manager to start a new instance of the proxy. If
Proxy Manager Details
When the proxy manager gets a request from xfindproxy (or another similar client), its course of action will depend on the service-name in question.
For a managed proxy service, the proxy manager will find out if any of the already running proxies for this service can handle a new request. If not, the proxy manager will attempt to start up a new instance of the proxy (using the
For an unmanaged proxy service, the proxy manager will look in the config-file to find all unmanaged proxies for this service. If there is more than one entry in the config-file with the same unmanaged service-name, the proxy manager will try to use the proxies in the order presented in the config-file. If none of the unmanaged proxies can satisfy the request, the proxy manager will timeout for a configurable amount of time (specified by
See proxymngr manual for more details.
To run proxymngr, check its config-file and execute the following command with options you need:
Note: to run proxymngr, you must have rights as root.