RFC 946 PROPOSED STANDARD TELNET · TERMINAL LOCATION

Telnet TTYLOC: Telnet terminal location number option

A Telnet option for sending a compact terminal and host location identifier.

On rfc-editor.org ↗
PUBLISHED
May 1985
AUTHORS
R. Nedved
STREAM
Legacy
TTYLOC SIZE
64 bits
TELNET OPTION CODE
28
DOI
10.17487/RFC0946

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                          R. Nedved
Request for Comments: 946                     Carnegie-Mellon University
                                                                May 1985

                 TELNET TERMINAL LOCATION NUMBER OPTION


Status of this Memo

   This RFC proposes a new option for Telnet for the ARPA-Internet
   community, and requests discussion and suggestions for improvements.
   Distribution of this memo is unlimited.

Overview

   In a community of users that share a large degree of common
   facilities, it is often advantageous to use some common feature to
   improve software performance and reduce initial implementation costs.

   In March of 1982, CMU designed and implemented based on the growing
   CMU PUP-based network a terminal location database and modified
   existing network software to handle a 64-bit number which some call
   the Terminal Location Number or TTYLOC for short.  The number can be
   efficiently stored in operating systems tables and can be passed
   between various levels of operating system and network layering with
   minimum modifications to existing software.  An initial evaluation of
   changing software to communicate an unfixed or reasonable length
   terminal location string indicated it would be expensive.

   CMU now wishes to extend this mechanism into the TCP-based networking
   support that is replacing the existing PUP-based software.  The
   mechanism is not viewed as a replacement for the Telnet Terminal
   Location (SEND-LOCATION) Option but as a shorthand mechansim for
   communicating hosts in the same community.

TTYLOC Number

   The TTYLOC number is a 64-bit number composed of two (2) 32-bit
   numbers: The 32-bit official ARPA Internet host address (may be any
   one of the addresses for multi-homed hosts) and a 32-bit number
   representing the terminal on the specified host.  The host address of
   [0.0.0.0] is defined to be "unknown", the terminal number of FFFFFFFF
   (hex, r or-1 in decimal) is defined to be "unknown" and the terminal
   number of FFFFFFFE (hex, or -2 in decimal) is defined to be
   "detached" for processes that are not attached to a terminal.

Telnet Terminal Location Number Option


1. Command Name and Option Code

   TTYLOC  28

2. Command Meanings

   IAC WILL TTYLOC

      The sender offers to send the TTYLOC information or confirms that
      it can send the TTYLOC information.

   IAC WON'T TTYLOC

      The sender refuses to send the TTYLOC information.

   IAC DO TTYLOC

      The sender requests to receive the TTYLOC information or confirms
      that it will receive the TTYLOC information.

   IAC DON'T TTYLOC

      The sender refuses to receive the TTYLOC information.

   IAC SB TTYLOC <format> <TTYLOC number with IAC doubling> IAC SE

      The sender is transmitting the TTYLOC information. The 64-bit
      TTYLOC number has format 0. The first 32-bits is the Internet host
      number and the second 32-bits is the line on the specified
      Internet host. The bytes are in most significant 8-bit byte to
      least significant byte order.

3. Default Specification

   WON'T TTYLOC

      TTYLOC information will not be sent.

   DON'T TTYLOC

      TTYLOC information will not be received.

Telnet Terminal Location Number Option


4. Motivation

   Many systems provide a mechanism for finding out where a user is
   logged in from usually including information about telephone
   extension and office occupants names. The information is useful for
   physically locating people and/or calling them on the phone.

   For incoming network connections to a host, only the remote host's
   name is available. This option and the Telnet Terminal Location
   option (RFC-779) provide the information to the system so it in turn
   can provide the information to the various mechanisms (FINGER, WHOIS,
   etc.).

5. Description of the Option

   When the user Telnet connects to a remote host, it can attempt to
   send the terminal location number information by doing a
   IAC WILL TTYLOC command. If the Telnet server can use the
   information, it replies with a IAC DO TTYLOC command. The user Telnet
   then sends the TTYLOC number in the subnegotiation.

   It is recommended that if sending the TTYLOC number is refused then
   the Telnet Terminal Location (SEND-LOCATION in RFC-779) should be
   attempted.

   The following are two example usage scenarios:

      User Side First:

         (User) Host1: IAC WILL TTYLOC

            Host1 is asking if it can send the 64-bit terminal location
            number (I will send...).

         (Server) Host2: IAC DO TTYLOC

            Host2 indicates to Host1 that it will accept the 64-bit
            terminal location number in a subnegotiation (You please do
            ...).

         (User) Host1: IAC SB TTYLOC 0 <64-bit number> IAC SE

            Host1 is sending the location number to Host2 which can
            communicate the number to the operating system or other
            system components.

Telnet Terminal Location Number Option


      Server Side First:

         (Server) HostA: IAC DO TTYLOC

            HostA indicates to HostB that it would like to know the
            64-bit terminal location number (You please do ...).

         (User) HostB: IAC WILL TTYLOC

            HostB agrees to send the 64-bit terminal location number to
            HostA in a subnegotiation (I will send...).

         (User) HostB: IAC SB TTYLOC 0 <64-bit number> IAC SE

            HostB is sending the location number to HostA which can
            communicate the number to the operating system or other
            system components.

ISO Plain Language

On this page
PROBLEMA remote host may know the connecting host's name but lack information about which terminal or location the user is connecting from.
MECHANISMThe Telnet peers negotiate TTYLOC, then the client sends a 64-bit value containing a host address and a terminal number.
A COMPACT LOCATIONThe option carries a compact identifier that server software can pass to operating-system or other system components.

§1Why Pass a Terminal Location Number

The RFC describes systems that can use login-location information to help identify where a user is located or how to contact them. For incoming network connections, a host may otherwise know only the remote host name.

TTYLOC was designed as a compact value that can pass through operating-system and network layers with few software changes. The memo presents it as a shorthand for hosts in a shared community, not as a replacement for the existing Telnet Terminal Location option.

A host name alone may not tell a system which terminal a user is using. TTYLOC adds a compact terminal identifier to the Telnet connection.

§1The 64-Bit TTYLOC Value

TTYLOC consists of two 32-bit numbers: an ARPA Internet host address and a number for a terminal on that host. The address 0.0.0.0 means unknown; terminal value FFFFFFFF means unknown, and FFFFFFFE means detached.

The bytes are sent from most significant to least significant. The option's subnegotiation identifies format 0 before the 64-bit value.

The value contains a host address followed by a terminal number. Special values can say that the host or terminal is unknown or that the process has no terminal.

§5Negotiating and Sending TTYLOC

The user-side Telnet can offer to send TTYLOC with WILL TTYLOC, and the server can accept with DO TTYLOC. After agreement, the client sends the number in a subnegotiation.

The server may initiate by requesting TTYLOC, after which the user side can agree and send the value. The RFC recommends trying the existing SEND-LOCATION option if sending TTYLOC is refused.

The client and server first agree to use TTYLOC. The client then sends the host and terminal number to the server.