home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1091.txt < prev    next >
Text File  |  1996-05-07  |  13KB  |  261 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                  J. VanBokkelen Request for Comments: 1091                         FTP Software, Inc. Obsoletes: RFC 930                                      February 1989 
  8.  
  9.                        Telnet Terminal-Type Option 
  10.  
  11. Status of This Memo 
  12.  
  13.    This RFC specifies a standard for the Internet community.  Hosts on    the Internet that exchange terminal type information within the    Telnet protocol are expected to adopt and implement this standard. 
  14.  
  15.    This standard supersedes RFC 930.  A change is made to permit cycling    through a list of possible terminal types and selecting the most    appropriate. 
  16.  
  17.    Distribution of this memo is unlimited. 
  18.  
  19. 1. Command Name and Code 
  20.  
  21.       TERMINAL-TYPE   24 
  22.  
  23. 2. Command Meanings 
  24.  
  25.       IAC WILL TERMINAL-TYPE 
  26.  
  27.          Sender is willing to send terminal type information in a          subsequent sub-negotiation. 
  28.  
  29.       IAC WON'T TERMINAL-TYPE 
  30.  
  31.          Sender refuses to send terminal type information. 
  32.  
  33.       IAC DO TERMINAL-TYPE 
  34.  
  35.          Sender is willing to receive terminal type information in a          subsequent sub-negotiation. 
  36.  
  37.       IAC DON'T TERMINAL-TYPE 
  38.  
  39.          Sender refuses to accept terminal type information. 
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49. VanBokkelen                                                     [Page 1] 
  50.  RFC 1091              Telnet Terminal-Type Option          February 1989 
  51.  
  52.        IAC SB TERMINAL-TYPE SEND IAC SE 
  53.  
  54.          Server requests client to transmit his (the client's) next          terminal type, and switch emulation modes (if more than one          terminal type is supported).  The code for SEND is 1. (See          below.) 
  55.  
  56.       IAC SB TERMINAL-TYPE IS ... IAC SE 
  57.  
  58.          Client is stating the name of his current (or only) terminal          type.  The code for IS is 0.  (See below.) 
  59.  
  60. 3. Default 
  61.  
  62.       WON'T TERMINAL-TYPE 
  63.  
  64.          Terminal type information will not be exchanged. 
  65.  
  66.       DON'T TERMINAL-TYPE 
  67.  
  68.          Terminal type information will not be exchanged. 
  69.  
  70. 4. Motivation for the Option 
  71.  
  72.    On most machines with bit-mapped displays (e.g., PCs and graphics    workstations) a client terminal emulation program is used to simulate    a conventional ASCII terminal.  Most of these programs have multiple    emulation modes, frequently with widely varying characteristics.    Likewise, modern host system software and applications can deal with    a variety of terminal types.  What is needed is a means for the    client to present a list of available terminal emulation modes to the    server, from which the server can select the one it prefers (for    arbitrary reasons).  There is also need for a mechanism to change    emulation modes during the course of a session, perhaps according to    the needs of applications programs. 
  73.  
  74.    Existing terminal-type passing mechanisms within Telnet were not    designed with multiple emulation modes in mind.  While multiple names    are allowed, they are assumed to be synonyms.  Emulation mode changes    are not defined, and the list of modes can only be scanned once. 
  75.  
  76.    This document defines a simple extension to the existing mechanisms,    which meets both of the above criteria.  It makes one assumption    about the behaviour of implementations coded to the previous standard    in order to obtain full backwards-compatibility. 
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  VanBokkelen                                                     [Page 2] 
  83.  RFC 1091              Telnet Terminal-Type Option          February 1989 
  84.  
  85.  5. Description of the Option 
  86.  
  87.    Willingness to exchange terminal-type information is agreed upon via    conventional Telnet option negotiation.  WILL and DO are used only to    obtain and grant permission for future discussion.  The actual    exchange of status information occurs within option subcommands (IAC    SB TERMINAL-TYPE...). 
  88.  
  89.    Once the two hosts have exchanged a WILL and a DO, the sender of the    DO TERMINAL-TYPE (the server) is free to request type information.    Only the server may send requests (IAC SB TERMINAL-TYPE SEND IAC SE)    and only the client may transmit actual type information (within an    IAC SB TERMINAL-TYPE IS ... IAC SE command).  Terminal type    information may not be sent spontaneously, but only in response to a    request. 
  90.  
  91.    The terminal type information is an NVT ASCII string.  Within this    string, upper and lower case are considered equivalent.  The complete    list of valid terminal type names can be found in the latest    "Assigned Numbers" RFC [4]. 
  92.  
  93.    The transmission of terminal type information by the Telnet client in    response to a query from the Telnet server implies that the client    must simultaneously change emulation mode, unless the terminal type    sent is a synonym of the preceding terminal type, or there are other    prerequisites for entering the new regime (e.g., having agreed upon    the Telnet binary option).  The receipt of such information by the    Telnet server does not imply any immediate change of processing.    However, the information may be passed to a process, which may alter    the data it sends to suit the particular characteristics of the    terminal.  For example, some operating systems have a terminal driver    that accepts a code indicating the type of terminal being driven.    Using the TERMINAL TYPE and BINARY options, a telnet server program    on such a system could arrange to have terminals driven as if they    were directly connected, including special functions not available to    a standard Network Virtual Terminal. 
  94.  
  95.    Note that this specification is deliberately asymmetric.  It is    assumed that server operating systems and applications in general    cannot change terminal types at arbitrary points in a session.  Thus,    the client may only send a new type (and potentially change emulation    modes) when the server requests that it do so. 
  96.  
  97. 6.  Implementation Issues 
  98.  
  99.    The "terminal type" information may be any NVT ASCII string    meaningful to both ends of the negotiation.  The list of terminal    type names in "Assigned Numbers" is intended to minimize confusion 
  100.  
  101.  
  102.  
  103. VanBokkelen                                                     [Page 3] 
  104.  RFC 1091              Telnet Terminal-Type Option          February 1989 
  105.  
  106.     caused by alternative "spellings" of the terminal type.  For example,    confusion would arise if one party were to call a terminal "IBM3278-    2" while the other called it "IBM-3278/2".  There is no negative    acknowledgement for a terminal type that is not understood, but    certain other options (such as switching to BINARY mode) may be    refused if a valid terminal type name has not been specified. 
  107.  
  108.    In some cases, either a particular terminal may be known by more than    one name, for example a specific type and a more generic type, or the    client may be a workstation with integrated display capable of    emulating more than one kind of terminal.  In such cases, the sender    of the TERMINAL-TYPE IS command should reply to successive TERMINAL-    TYPE SEND commands with the various names.  In this way, a telnet    server that does not understand the first response can prompt for    alternatives.  If different terminal emulations are supported by the    client, the mode of the emulator must be changed to match the last    type sent, unless the particular emulation has other Telnet options    (e.g., BINARY) as prerequisites (in which case, the emulation will    switch to the last type sent when the prerequisite is fulfilled).    When types are synonyms, they should be sent in order from most to    least specific. 
  109.  
  110.    When the server (the receiver of the TERMINAL-TYPE IS) receives the    same response two consecutive times, this indicates the end of the    list of available types.  Similarly, the client should indicate it    has sent all available names by repeating the last one sent.  If an    additional request is received, this indicates that the server (the    sender of the IS) wishes to return to the top of the list of    available types (probably to select the least of N evils). 
  111.  
  112.    Server implementations conforming to the previous standard will cease    sending TERMINAL-TYPE SEND commands after receiving the same response    two consecutive times, which will work according to the old standard.    It is assumed that client implementations conforming to the previous    standard will send the last type on the list in response to a third    query (as well as the second).  New-style servers must recognize this    and not send more queries. 
  113.  
  114.    The type "UNKNOWN" should be used if the type of the terminal is    unknown or unlikely to be recognized by the other party. 
  115.  
  116.    The complete and up-to-date list of terminal type names will be    maintained in the "Assigned Numbers".  The maximum length of a    terminal type name is 40 characters. 
  117.  
  118. 7. User Interfaces 
  119.  
  120.    Telnet clients and servers conforming to this specification should 
  121.  
  122.  
  123.  
  124. VanBokkelen                                                     [Page 4] 
  125.  RFC 1091              Telnet Terminal-Type Option          February 1989 
  126.  
  127.     provide the following functions in their user interfaces: 
  128.  
  129.    Clients supporting multiple emulation modes should allow the user to    specify which of the modes is preferred (which name is sent first),    prior to connection establishment.  The order of the names sent    cannot be changed after the negotiation has begun.  This initial mode    will also become the default with servers which do not support    TERMINAL TYPE. 
  130.  
  131.    Servers should store the current terminal type name and the list of    available names in a manner such that they are accessible to both the    user (via a keyboard command) and any applications which need the    information.  In addition, there should be a corresponding mechanism    to request a change of terminal types, by initiating a series of    SEND/IS sub-negotiations. 
  132.  
  133. 8. Examples 
  134.  
  135.    In this example, the server finds the first type acceptable. 
  136.  
  137.       Server: IAC DO TERMINAL-TYPE 
  138.  
  139.       Client: IAC WILL TERMINAL-TYPE 
  140.  
  141.          (Server may now request a terminal type at any time.) 
  142.  
  143.       Server: IAC SB TERMINAL-TYPE SEND IAC SE 
  144.  
  145.       Client: IAC SB TERMINAL-TYPE IS IBM-3278-2 IAC SE 
  146.  
  147.    In this example, the server requests additional terminal types, and    accepts the second (and last on the client's list) type sent (RFC 930    compatible): 
  148.  
  149.       Server: IAC DO TERMINAL-TYPE 
  150.  
  151.       Client: IAC WILL TERMINAL-TYPE 
  152.  
  153.          (Server may now request a terminal type at any time.) 
  154.  
  155.       Server: IAC SB TERMINAL-TYPE SEND IAC SE 
  156.  
  157.       Client: IAC SB TERMINAL-TYPE IS ZENITH-H19 IAC SE 
  158.  
  159.       Server: IAC SB TERMINAL-TYPE SEND IAC SE 
  160.  
  161.       Client: IAC SB TERMINAL-TYPE IS UNKNOWN IAC SE 
  162.  
  163.  
  164.  
  165.  VanBokkelen                                                     [Page 5] 
  166.  RFC 1091              Telnet Terminal-Type Option          February 1989 
  167.  
  168.        Server: IAC SB TERMINAL-TYPE SEND IAC SE 
  169.  
  170.       Client: IAC SB TERMINAL-TYPE IS UNKNOWN IAC SE 
  171.  
  172.    In this example, the server requests additional terminal types, and    proceeds beyond the end-of-list, to select the first type offered by    the client (new-type client and server): 
  173.  
  174.       Server: IAC DO TERMINAL-TYPE 
  175.  
  176.       Client: IAC WILL TERMINAL-TYPE 
  177.  
  178.          (Server may now request a terminal type at any time.) 
  179.  
  180.       Server: IAC SB TERMINAL-TYPE SEND IAC SE 
  181.  
  182.       Client: IAC SB TERMINAL-TYPE IS DEC-VT220 IAC SE 
  183.  
  184.       Server: IAC SB TERMINAL-TYPE SEND IAC SE 
  185.  
  186.       Client: IAC SB TERMINAL-TYPE IS DEC-VT100 IAC SE 
  187.  
  188.       Server: IAC SB TERMINAL-TYPE SEND IAC SE 
  189.  
  190.       Client: IAC SB TERMINAL-TYPE IS DEC-VT52 IAC SE 
  191.  
  192.       Server: IAC SB TERMINAL-TYPE SEND IAC SE 
  193.  
  194.       Client: IAC SB TERMINAL-TYPE IS DEC-VT52 IAC SE 
  195.  
  196.       Server: IAC SB TERMINAL-TYPE SEND IAC SE 
  197.  
  198.       Client: IAC SB TERMINAL-TYPE IS DEC-VT220 IAC SE 
  199.  
  200. 9. References: 
  201.  
  202.      [1]  Postel, J., and J. Reynolds, "Telnet Protocol Specification",           RFC 854, USC Information Sciences Institute, May 1983. 
  203.  
  204.      [2]  Postel, J., and J. Reynolds, "Telnet Option Specification",           RFC 855, USC Information Sciences Institute, May 1983. 
  205.  
  206.      [3]  Solomon, M., and E. Wimmers, "Telnet Terminal Type Option",           RFC 930, University of Wisconsin - Madison, January 1985. 
  207.  
  208.      [4]  Reynolds, J., and J. Postel, "Assigned Numbers", RFC 1010,           USC Information Sciences Institute, May 1987. 
  209.  
  210.  
  211.  
  212.  VanBokkelen                                                     [Page 6] 
  213.  RFC 1091              Telnet Terminal-Type Option          February 1989 
  214.  
  215.  Reviser's note: 
  216.  
  217.    I owe much of this text to RFCs 884 and 930, by Marvin Solomon and    Edward Wimmers of the University of Wisconsin - Madison, and I owe    the idea of the extension to discussions on the "tn3270" mailing list    in the Summer of 1987. 
  218.  
  219. Author's Address 
  220.  
  221.    James VanBokkelen    FTP Software, Inc.    26 Princess Street    Wakefield, MA 01880-3004 
  222.  
  223.    Phone: (617) 246-0900 
  224.  
  225.    Email: jbvb@ftp.com 
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  VanBokkelen                                                     [Page 7] 
  260.  
  261.