Telnet TTYLOC: Telnet terminal location number option
A Telnet option that passes a compact 64-bit number saying which terminal on which host a user is connecting from.
Nedved, R., "Telnet terminal location number option", RFC 946, DOI 10.17487/RFC0946, May 1985, <https://www.rfc-editor.org/info/rfc946>.
@misc{rfc946,
series = {Request for Comments},
number = 946,
howpublished = {RFC 946},
publisher = {RFC Editor},
doi = {10.17487/RFC0946},
url = {https://www.rfc-editor.org/info/rfc946},
author = {R. Nedved},
title = {{Telnet terminal location number option}},
pagetotal = 4,
year = 1985,
month = may,
} RFC text
Contents
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.
AI ELI5
On this page
§1Why Send a Terminal Location
Many systems can tell where a user is logged in from, often including a telephone extension or office occupant names. That helps with physically locating people or calling them. For incoming network connections only the remote host's name is available, so this option and the Telnet Terminal Location option (RFC 779) give the system that information. The system can then pass it to tools such as FINGER and WHOIS.
In March of 1982, CMU built a terminal location database based on its PUP-based network, using a 64-bit number called the Terminal Location Number or TTYLOC. CMU wanted to extend it to the TCP-based networking replacing PUP. The number is cheap to store and to pass between layers, while sending a location string of unfixed length looked expensive.
When someone calls from another building, a number can tell you which desk they are at.
§2The TTYLOC Number
The TTYLOC number is 64 bits, made of two 32-bit numbers. One is the official ARPA Internet host address (any one of them for a multi-homed host). The other is a number for the terminal on that host.
A host address of 0.0.0.0 means unknown. A terminal number of FFFFFFFF (hex) means unknown, and FFFFFFFE means detached, for processes not attached to a terminal. Bytes go from most significant to least significant.
The number has two halves: which building, and which desk inside it. Special values mean unknown or not at a desk.
§3Commands and Negotiation
The option is TTYLOC, code 28. WILL offers or confirms sending the information, and DO requests or confirms receiving it. WON'T and DON'T refuse, and by default the information is neither sent nor received. The data goes in IAC SB TTYLOC <format> <number> IAC SE, with IAC doubling, and the 64-bit number uses format 0.
The user Telnet can start with WILL TTYLOC and the server answers DO TTYLOC, or the server can start with DO and the user answers WILL. Either way the user then sends the number. If sending the TTYLOC number is refused, it is recommended to try the Telnet Terminal Location option (SEND-LOCATION in RFC 779).
The computers ask each other if they want to share the desk number, and only then is it sent.
- IAC WILL TTYLOCAsks if it can send the 64-bit number.
- IAC DO TTYLOCAgrees to accept it.
- IAC SB TTYLOC 0 <64-bit number> IAC SESends the location number.