|
This chapter focuses on Cisco's support for the XRemote capabilities of Network Computing Devices, Inc. (NCD) X Window terminals. It covers the following information:
This chapter does not fully address the details of the X Window System and X-based computing environments. The following are suggested sources for more complete definitions and implementation descriptions:
The X Window SystemTM, typically called X, is a network-based graphics window system developed at the Massachusetts Institute of Technology (MIT) in 1984 for workstations running UNIX. It was originally written in the C programming language; however, X is not tied to a specific operating environment, programming language, or hardware configuration.
Previous window systems were kernel-based and were thus closely linked to the operating system running on a workstation itself. They typically have run only on discrete systems, such as a single workstation. The X Window System is not part of any operating system, but instead is composed of application programs. Thus, X enables flexible, graphics-based network computing across a wide range of operating systems and hardware platforms.
The underlying architecture of the X Window System is based on a client server model. The system is split into two parts: display servers and clients. Display servers provide specific display capabilities and track user input; clients are application programs that perform specific tasks. These two parts can reside on the same computer, or can be separated over a network. In an X terminal environment, such as in NCD terminal implementations, the display server resides on the display station and the client resides on a host computer.
Because X employs this functional partitioning and is independent of both hardware and operating environment, X terminal users can access different types of computers to simultaneously access several applications and resources in a multivendor environment. A user at an X terminal can run and display a calendar program on a VAX, a spreadsheet program on a PC, and a compiler on workstation concurrently.
XRemote is a protocol developed specifically to optimize support for X over a serial communications link. Its compression and decompression algorithms are designed to handle bit-mapped displays and windowing systems.
There are two basic parts to XRemote:
The PROM-based elements consist of the X server and boot monitor. These are responsible for booting the display station, managing local processes, and handling communications with the host computer. The helper process allows the XRemote display station to communicate, through the terminal server, with other hosts on the network. PROMs that implement these elements are available from NCD.
XRemote enables a user of an NCD network display station to run the X Window System via 9600 baud (and faster) modem connections with superior performance compared with conventional serial protocols, such as SLIP (Serial Line Internet Protocol). The NCD terminal must have a compatible XRemote PROM set installed.
Figure 1-1 illustrates XRemote network accessibility via Cisco terminal servers.
Cisco's implementation of XRemote is fully compatible with the NCD XRemote protocol. Remote access to fonts is provided using the Internet standard Trivial File Transfer Protocol (TFTP).
XRemote can be invoked in one of two ways:
The following brief procedures outline steps required for starting up XRemote in several typical environments. When possible, it's generally suggested that the automated XDMCP process be used.
If your host computer includes a server for XDMCP, such as the xdm program included in X11R4, you can use automatic session startup to start up your XRemote session.
The EXEC command used to initiate XRemote using XDMCP is xremote xdm. This command has the following syntax:
xremote xdm hostnameThis command causes an XDMCP session start-up request to be made to the computer specified (hostname). If a host name is not specified, a broadcast message is sent to all hosts. The first host to respond by starting up a session is used.
The terminal server and X terminal stay in XRemote mode until either the display manager terminates the session, or a reset request is received from the X terminal.
If you are not using a host computer which supports XDMCP, you must use manual session startup. Manual session startup involves several steps:
Step 1: Enabling XRemote manually on the terminal server port
Step 2: Connecting to the host computer
Step 3: Setting the location of the X display
Step 4: Starting up client application(s)
Step 5: Returning to the terminal server EXEC prompt
Step 6: Enabling XRemote manually again on the terminal server port
The EXEC command xremote prepares the terminal server for your use of Xremote. The terminal server replies with a message informing you of your X display location:
Xremote enabled; your display is darkstar:2018
Start your clients and type Xremote again
In the above message, the terminal server informs you that your display is darkstar:2018
. This information will be used in a following step.
Connect to the host computer using the telnet, lat, or rlogin commands, and log in normally.
The next step is to inform the host computer of the location of your X display, which was provided to you by the terminal server when you entered the xremote command above.
For most versions of the UNIX operating system, the X display location is set by using the setenv
command to set the environment variable DISPLAY. Refer to the on-line, X(1) manual page for more information.
host_prompt% setenv DISPLAY darkstar:2018
On VAX/VMS, use the SET DISPLAY command. Refer to the VMS DCL Dictionary for more information.
$ SET DISPLAY/CREATE/NODE=DARKSTAR/SERVER=2018/TRANSPORT=[transport]
At this point, you must start your client applications for your host operating system.
The terminal server accepts the X connection attempt from the client application, and places the client into a dormant state.
If it is possible to log off of the host computer and keep your X clients running in the background, you can do so now. This conserves resources on the host and terminal server that would otherwise be inaccessible until you exited from XRemote state.
If not, you may simply escape back to the terminal server prompt using the escape character (Ctrl ^, Shift-x).
Enter the command xremote to access XRemote mode. If the X client(s) connected successfully, the session will be put into XRemote mode, and the clients will be allowed to complete their startup.
If no clients were found, you will see the following message:
No X clients waiting - check that your display is darkstar:2018
Check your hosts to determine if an error was made when starting the session. The most likely cause is an improperly specified display location. Another possible cause is the host computer does not recognize the name of the terminal server through which you are attempting to make a connection.
In manual operation, the terminal server and X terminal remains in XRemote mode until either all clients disconnect or a reset request is received from the X terminal.
If a session terminates during startup, it may be because you invoked transient X clients which set some parameters and disconnected. There must always be one session connected or the connection will be reset.
To make a host connection via NCD's XRemote feature and a Cisco terminal server, you must complete some basic configuration steps.
Step 1: Configure the X-terminal and terminal server for fonts to be used and other special parameters.
Step 2: Cable and set up your modem for use with XRemote (access over asynchronous lines only), or cable the NCD terminal directly to the Cisco terminal server.
Step 3: Set up the NCD terminal's X Server, Network, and Serial Parameters. Refer to your NCD manual for specific details of configuing these parameters.
Depending on the fonts to be used on the terminal, you may need to specify the location of a font server. The NCD terminal contains a small set of built-in fonts in local ROM. It is recommended that these fonts be used, as loading fonts over a serial line can increase application start-up time. The default for an NCD terminal is to use built-in fonts.
When an X terminal application requests a font which is not stored in the NCD ROM, the X terminal makes a request for a font file from the terminal server. The terminal server uses the trivial file transfer protocol (TFTP) to load the font from the font server, and then passes the font to the X terminal using the XRemote protocol. The process of loading fonts from the terminal server to the X terminal can take 30 to 45 seconds, depending on the size of the font file.
An X server can display only the fonts it finds in the directories in its font path. The X server's default font path includes only the built-in fonts. To access fonts stored on a host, you must add the host's font directories to the X server's font path. To do this, use the UNIX command xset with the [fp+] argument to add fonts to the end of the server's font path.
For example, to allow your display station to access the 100 dpi (dots per inch) fonts found in the standard font directory, run the following command (at the host system prompt):
host_prompt%xset fp+ /usr/lib/x11/ncd/fonts/100dpi
For more information, refer to the NCDware XRemote User's Manual.
Using three global configuration commands, several terminal server options can be set that identify font loaders (hosts), set buffersize, and specify the number of font loader retries. These system configuration commands are available only when the terminal server privilege level has been enabled, allowing access to the configure command. Once you've accessed the system configuration facility, use the xremote tftp global configuration commands to modify these parameters. The only parameter that generally must be set is the font loader host identification (only if you intend to download fonts to the X terminal).
Use the global configuration command xremote tftp host to add a specific font server as a source of fonts for the terminal (and the terminal server). This command has the following syntax:
xremote tftp host [hostname]Each time a new host name is entered, the list on the terminal server is updated. Font servers are queried in the order of their definition when the X terminal requests a font.
The command no xremote tftp host [hostname] removes a font server from the list maintained by the terminal server.
Use the global configuration command xremote tftp buffersize to set the terminal server buffer size for specific font requirements. This command has the following syntax.
xremote tftp buffersize [decimal value]This xremote command sets the buffer size used for loading font files to a specified value (in decimal bytes). When the X terminal requests that a font file be loaded, the terminal server must first load the font file into an internal buffer before passing it to the X terminal. The default value of 32768 is adequate for most font files, but the size can be increased as necessary for non-standard font files.
The buffer size may be set as low as 4096 bytes, and as large as the available memory on the terminal server will allow.
The command no xremote tftp buffersize restores the buffer size to the default of 32768 bytes.
Use the global configuration command xremote tftp retries to specify the number of retries the font loader will attempt before declaring an error condition. This command has the following syntax:
xremote tftp retries [value]The default value is 3. Under certain conditions, you may need to increase this number, particularly if the font server(s) is(are) known to be heavily loaded. Acceptable values range from 1 to 15.
The command no xremote tftp retries restores the retries number to the default of 3.
The following brief discussion outlines recommendations for modem setup when using XRemote to access remote resources via a Cisco terminal server.
In general, you can use any modem that provides acceptable performance for your application. The following guidelines apply to XRemote operation using a modem:
You can use the EXEC command show xremote to list XRemote connections and monitor XRemote traffic through the terminal server. The syntax for this command is as follows:
show xremoteThis show command provides XRemote pararameters applied to the entire system, as well as statistics that are pulled for all active XRemote connections (listed by terminal server line). The following example illustrates screen output resulting from a show xremote command when XRemote is enabled on a terminal server, and XRemote sessions are active.
ts_prompt>show xremote
Xremote server-wide parameters:
Font buffersize: 72000 Font retries: 3
Font memory errors: 0
Font load statistics for host 131.108.1.111:
Bytes read: 2697239 Files read: 258
Network errors: 4 File errors: 0
Xremote statistics for tty2:
Current clients: 9 Total clients: 17
Requesting client: 5 Current request size: 0
Replying client: 6 Current reply size: 0
XDM state: 10 Next timeout: 172460
Retransmit counter: 0 Local UDP port: 53616
Keepalive dormancy: 180 Session id: 94
Unread input: 0 Unwritten output: 0
Input buffer size: 1024 Output buffer size: 108
Protocol version: 2 Line state: Connected
Transmit packets: 50768 Receive packets: 49444
Transmit errors: 0 Receive errors: 37
Retransmissions: 403 Receive out of sequence: 76
Round trip time: 383 Retransmit interval: 766
Transmit window: 7 Receive window: 7
Transmit next: 6 Receive next: 3
Transmit unacked: 6 Receive unacked: 0
Connection 0 - TCP connection from 131.108.1.55 [Display Manager]
Client state: CS_ACTIVE Byte order: MSBfirst
Unread input: 0 Unwritten output: 0
Input buffer size: 1024 Output buffer size: 1024
Connection 1 - TCP connection from 131.108.1.55
Client state: CS_ACTIVE Byte order: MSBfirst
Unread input: 0 Unwritten output: 0
Input buffer size: 1024 Output buffer size: 1024
Connection 2 - TCP connection from 131.108.1.55
Client state: CS_ACTIVE Byte order: MSBfirst
Unread input: 0 Unwritten output: 0
Input buffer size: 1024 Output buffer size: 1024
You can use the EXEC command show xremote line to list XRemote connections and monitor XRemote traffic for specific lines on a terminal server. The syntax for this command is as follows:
show xremote line numberThe variable number is a decimal value representing the physical asynch terminal lines available on a terminal server. The following example illustrates screen output resulting from a show xremote line command when XRemote is enabled on a terminal server, and XRemote sessions are active. Only information specific to an individual terminal line is provided.
chaos#show xremote line 3
Xremote statistics for tty3:
Current clients: 11 Total clients: 19
Requesting client: 10 Current request size: 0
Replying client: 10 Current reply size: 0
XDM state: 10 Next timeout: 173304
Retransmit counter: 0 Local UDP port: 28384
Keepalive dormancy: 180 Session id: 29
Unread input: 0 Unwritten output: 0
Input buffer size: 1024 Output buffer size: 108
Protocol version: 2 Line state: Connected
Transmit packets: 28875 Receive packets: 18644
Transmit errors: 0 Receive errors: 13
Retransmissions: 53 Receive out of sequence: 41
Round trip time: 384 Retransmit interval: 768
Transmit window: 7 Receive window: 7
Transmit next: 2 Receive next: 7
Transmit unacked: 2 Receive unacked: 0
Connection 0 - TCP connection from 131.108.1.27 [Display Manager]
Client state: CS_ACTIVE Byte order: MSBfirst
Unread input: 0 Unwritten output: 0
Input buffer size: 1024 Output buffer size: 1024
Connection 1 - TCP connection from 131.108.1.27
Client state: CS_ACTIVE Byte order: MSBfirst
Unread input: 0 Unwritten output: 0
Input buffer size: 1024 Output buffer size: 1024
Connection 2 - TCP connection from 131.108.1.27
Client state: CS_ACTIVE Byte order: MSBfirst
Unread input: 0 Unwritten output: 0
Input buffer size: 1024 Output buffer size: 1024
Although several privileged EXEC debugging commands are provided with the Cisco XRemote implementation, they are generally used for internal Cisco technical support purposes. The following is a listing of these debug commands. For each debug command, there is a corresponding undebug command to disable the reports.
The debug xremote-bytestream-flow command enables logging of XRemote bytestream state machine flow.
debug xremote-bytestream-protocol
The debug xremote-bytestream-protocol command enables logging of XRemote bytestream protocol packets.
The debug xremote-deltas command enables logging of XRemote delta compression information.
The debug xremote-files command enables logging of XRemote file access.
The debug xremote-flow command enables logging of XRemote client flow.
The debug xremote-replies command enables logging of XRemote replies.
The debug xremote-requests command enables logging of XRemote requests.
The debug xremote-packet command enables logging of XRemote packets.
The debug xremote-xdm command enables logging of XRemote XDMCP protocol and state machine events.
The following XRemote global configuration commands specify system-wide parameters for XRemote support.
[no]xremote tftp buffersize [decimal value]
Sets the terminal server buffer size for specific font requirements.
This xremote command sets the buffer size used for loading font files to a specified value (in decimal). When the X terminal requests that a font file be loaded, the terminal server must first load the font file into an internal buffer before passing it to the X terminal. The default value of 32768 is adequate for most font files, but the size can be increased as necessary for non-standard font files.
The buffer size may be set as low as 4096 bytes, and as large as the available memory on the terminal server will allow.
The command no xremote tftp buffersize restores the buffer size to the default of 32768 bytes.
[no] xremote tftp host [hostname]
Adds a specific font server as a source of fonts for the terminal (and the terminal server). Each time a new host name is entered, the list on the terminal server is updated. Font servers are queried in the order of their definition when the X terminal requests a font.
The command no xremote tftp host [hostname] removes a font server from the list maintained by the terminal server.
[no]xremote tftp retries value
Specifies the number of retries the font loader will attempt before declaring an error condition. The argument value is an integer.
The default value is 3. Under certain conditions, you may need to increase this number, particularly if the font server(s) is(are) known to be heavily loaded. Acceptable values range from 1 to 15.
The command no xremote tftp retries restores the retries number to the default of 3.
|