The term program is usually used to provide host-to-host services over a modem or serial line. However, sometimes it is useful to establish a term connection between two machines that communicate via telnet. The most interesting example is connecting two hosts which are separated by ethernet firewalls or SOCKS servers. Such firewalls provide facilities for establishing a telnet connection through the firewall, typically by using the SOCKS protocol, to allow inside machines to get connections out, and requiring outside users to telnet first to a gateway machine which requires a one-time password. These firewalls make it impossible to, for instance, have X clients on an inside machine communicate with an X server on an outside machine. But, by setting up a term connection, these restrictions can all be bypassed quite conveniently, at the user level.