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

  1. Network Working Group                                         J. Rekhter Request For Comments:  1041             T.J. Watson Research Center, IBM                                                             January 1988 
  2.  
  3.                         Telnet 3270 Regime Option 
  4.  
  5.  STATUS OF THIS MEMO 
  6.  
  7.    This RFC specifies a proposed standard for the Internet community.    Hosts on the Internet, that want to support 3270 data stream within    the Telnet protocol, are expected to adopt and implement this    standard.  Distribution of this memo is unlimited. 
  8.  
  9. 1.  Command Name and Code 
  10.  
  11.    3270-REGIME     29 
  12.  
  13. 2.  Command Meaning 
  14.  
  15.    IAC WILL 3270-REGIME 
  16.  
  17.       Sender is willing to send list of supported 3270 Regimes in       a subsequent sub-negotiation. 
  18.  
  19.    IAC WON'T 3270-REGIME 
  20.  
  21.       Sender refuses to send the list of supported 3270 Regimes. 
  22.  
  23.    IAC DO 3270-REGIME 
  24.  
  25.       Sender is willing to receive a list of supported 3270 Regimes in a       subsequent sub-negotiation. 
  26.  
  27.    IAC DON'T 3270-REGIME 
  28.  
  29.       Sender refuses to accept the list of supported 3270 Regimes. 
  30.  
  31.    IAC SB 3270-REGIME ARE REGIME-LIST IAC SE 
  32.  
  33.       Sender sends the list of all possible 3270 Regimes it is able to       support.  The code for ARE is 1. 
  34.  
  35.       REGIME-LIST is an ASCII string which has meaning to both sides of       the negotiation.  This string may be composed of different       terminal type names (as specified in the "Assigned Numbers") which       are separated by space character.  Terminal type names which have 
  36.  
  37.  
  38.  
  39. Rekhter                                                         [Page 1] 
  40.  RFC 1041               Telnet 3270 Regime Option            January 1988 
  41.  
  42.        imbedded spaces should escape it with backslash character ('\').       Backslash character imbedded into terminal type name should be       escaped with another backslash character. 
  43.  
  44.       Empty REGIME-LIST means, that sender is able to support only NVT       ASCII terminal as defined in [4]. 
  45.  
  46.    IAC SB 3270-REGIME IS REGIME IAC SE 
  47.  
  48.       Sender is stating the name of the terminal it is willing to       support.  The code for IS is 0. 
  49.  
  50.       REGIME is an ASCII string (possibly empty) which is substring of       the received REGIME-LIST string.  Empty string means that the       sender is willing to support only NVT ASCII terminal as defined in       [4]. 
  51.  
  52. 3.  Default 
  53.  
  54.    WON'T 3270-REGIME 
  55.  
  56.       3270 Regime will not be established. 
  57.  
  58.    DON'T 3270-REGIME 
  59.  
  60.       3270 Regime will not be established. 
  61.  
  62. 4.  Motivation for the option 
  63.  
  64.    This option allows a telnet server running VM or MVS to negotiate    with the telnet client on the type of data stream (3270 or NVT ASCII)    which both sides are willing support. 
  65.  
  66.    The main reason for this option is to allow simple and efficient way    to: 
  67.  
  68.       o state, that both client and server want to exchange 3270 data         stream, 
  69.  
  70.       o switch from 3270 Regime into NVT ASCII Regime and back into 3270         Regime, 
  71.  
  72.       o dynamically renegotiate 3270 Regime parameters (like terminal         type). 
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80. Rekhter                                                         [Page 2] 
  81.  RFC 1041               Telnet 3270 Regime Option            January 1988 
  82.  
  83.     Support for 3270 data stream requires that both sides: 
  84.  
  85.       o be able to exchange binary data, 
  86.  
  87.       o be able to put well defined delimiters into inbound/outbound         data stream, 
  88.  
  89.       o be able to establish the agreement between client and server on         what type of terminal will be used. 
  90.  
  91.    Current implementations requires 3 different options, TERMINALTYPE    [1], BINARY [2] and EOR [3], to be successfully negotiated between    client and server prior to establishing 3270 Regime.  Moreover, it is    unclear at what point in this negotiation process, 3270 regime is    actually established (whether after TERMINALTYPE or after BINARY or    after EOR).  Also, order for these negotiations was never specified. 
  92.  
  93.    Subnegotiation for the TERMINALTYPE is possible with only single    terminal type at a time. 
  94.  
  95.    Once 3270 Regime is established, there is no standard of how to get    out of this regime back into NVT ASCII mode. 
  96.  
  97.    Based on the 3270 Regime requirements, which stated above, we feel    that separate negotiation for EOR and BINARY should not be done.    Rather, 3270 Regime establishment should imply that: 
  98.  
  99.       o each character in the Telnet data stream should be interpreted         as 8 bits of binary data, 
  100.  
  101.       o both sides agreed to use a certain character sequence(Telnet IAC         EOR) as a delimiter in inbound/outbound Telnet data stream, 
  102.  
  103.       o both sides agreed on the type of the terminal they are willing         to support. 
  104.  
  105.    By providing the list of possible terminals which Telnet client can    support, telnet server could select the type of the terminal it can    support and pass it back to the Telnet client, thus eliminating    multiple TERMINALTYPE negotiations. 
  106.  
  107.    As stated in [5], "The purpose of the Telnet Protocol is to provide a    fairly general, bi-directional, eight-bit byte oriented communication    facility."  Therefore we feel that such issues as color support,    graphics support, extended data streams mapping, etc., do not belong    logically to the Telnet protocol, but rather should be considered as    a part of a separate protocol which defines 3270 inbound/outbound    data stream (see [5], [6], [7], [8]).  The purpose of this memo is 
  108.  
  109.  
  110.  
  111. Rekhter                                                         [Page 3] 
  112.  RFC 1041               Telnet 3270 Regime Option            January 1988 
  113.  
  114.     not to describe (or define) protocols which are used in 3270 Regime,    but rather define a new option for the Telnet Protocol, which would    allow both sides to negotiate for the 3270 Regime establishment over    the telnet connection. 
  115.  
  116.    While this options does not include direct negotiation for such    things as colors, graphics, structured fields, etc., certain features    (like the ability to support colors) may be negotiated indirectly by    using certain terminal type names specified in 3270-REGIME    subnegotiation. 
  117.  
  118.    We also feel that such issues as keyboard mapping, whether to have    one telnet for both ASCII and 3270 mode or two separate programs, one    for ASCII and another for 3270 mode, are implementation dependent and    should be considered as a local matter. 
  119.  
  120. 5.  Description of the Option 
  121.  
  122.    WILL and DO commands are used to obtain and grant permission for the    subsequent subnegotiation.  Both sides must exchange WILL 3270-REGIME    and DO 3270-REGIME prior to subnegotiation.  The actual exchange of    information is done within the option subcommand (IAC SB    3270-REGIME). 
  123.  
  124.    Either Telnet client or Telnet server can initialize 3270-REGIME    negotiation.  However, in order to simplify negotiation, only Telnet    client is allowed to send IAC SB 3270-REGIME ARE... IAC SE command,    and only Telnet server is allowed to reply with IAC SB 3270-REGIME    IS... IAC SE command. 
  125.  
  126.    Since this negotiation is asymmetric, each time Telnet client/server    decide to negotiate/renegotiate this option they have to perform    complete negotiation process (DO...  WILL... SB 3270-REGIME...). 
  127.  
  128.    The following is an example of use of the option: 
  129.  
  130.       1.  Host A: IAC DO 3270-REGIME 
  131.  
  132.       2.  Host B: IAC WILL 3270-REGIME 
  133.  
  134.       3.  Host B: IAC DO 3270-REGIME 
  135.  
  136.       4.  Host A: IAC WILL 3270-REGIME 
  137.  
  138.       5.  (At this point side which runs Telnet client can start           subnegotiation.) 
  139.  
  140.  
  141.  
  142.  
  143.  
  144. Rekhter                                                         [Page 4] 
  145.  RFC 1041               Telnet 3270 Regime Option            January 1988 
  146.  
  147.        6.  Host A: IAC SB 3270-REGIME ARE 'ibm3279-3 ibm3279-2 ibm3278-3'           IAC SE 
  148.  
  149.       7.  Host B: IAC SB 3270-REGIME IS 'ibm3279-2' IAC SE 
  150.  
  151. 6.  Implementation Suggestions 
  152.  
  153.    If the side is able to support more that one terminal type, then    terminal type names are listed in REGIME-LIST from most desirable to    least desirable.  Other side upon receive of the REGIME-LIST scans it    from left to right and finds the first terminal type which it is able    to support returns it in REGIME part of the 3270-REGIME IS    subnegotiation. 
  154.  
  155.    The side which wants to switch into NVT ASCII mode should send empty    REGIME-LIST.  Since empty string is a subset of empty string, the    side which receives empty REGIME-LIST should reply with empty REGIME.    At that point both sides are switched to NVT ASCII mode. 
  156.  
  157.    It is possible to renegotiate 3270 Regime parameters (like terminal    type).  Certain precaution should be taken to insure that such    renegotiation would not cause switch into NVT ASCII mode.  As a    possible measure, the side which wants to renegotiate for another    terminal should include both the current and the new terminal type    names into REGIME-LIST.  This way, if the other side is unable to    change 3270 Regime terminal type, it will continue to use current    terminal type. 
  158.  
  159.    Since IAC character (255 decimal) is used as a delimiter (together    with EOR) in inbound/outbound data stream, care must be taken to    escape IAC characters which are part of data stream itself with    another IAC character. 
  160.  
  161.    To prevent ambiguity in interpreting inbound/outbound data stream    during negotiation process the following rules should be observed: 
  162.  
  163.        1.  Telnet client should not accept any data from the user as soon           as it enters 3270 Regime negotiation. 
  164.  
  165.       2.  Telnet client should not send any data to the Telnet server           after it sends "3270-REGIME ARE....". 
  166.  
  167.       3.  Telnet server should try not to send any data to the telnet           client while negotiation is in progress. 
  168.  
  169.       4.  Telnet server may reply with "3270-REGIME IS..." to the telnet           client only after all outstanding data have been already sent 
  170.  
  171.  
  172.  
  173. Rekhter                                                         [Page 5] 
  174.  RFC 1041               Telnet 3270 Regime Option            January 1988 
  175.  
  176.            to the Telnet client. 
  177.  
  178.       5.  Telnet server can switch from its previous regime to the new           regime only after it sends "IAC SB 3270-REGIME IS 'regime' IAC           SE" to the telnet client. 
  179.  
  180.       6.  Telnet client can switch from its previous regime to the new           regime only after it receives "IAC SB 3270-REGIME IS 'regime'           IAC SE". 
  181.  
  182.       7.  Switch from one regime to another may require flushing of all           outstanding data in both telnet client and telnet server. 
  183.  
  184. 7.  References 
  185.  
  186.    [1] RFC-854, Telnet Terminal Type Option. 
  187.  
  188.    [2] RFC-856, Telnet Binary Transmission. 
  189.  
  190.    [3] RFC-885, Telnet End Of Record Option. 
  191.  
  192.    [4] RFC-854, Telnet Protocol Specification. 
  193.  
  194.    [5] IBM 3270 Information Display System.  3274 Control Unit        Description and Programmer's Guide.  GA23-0061-1. 
  195.  
  196.    [6] IBM 3279 Information Display System: Color and Programmed        Symbols.  GA33-3056-1. 
  197.  
  198.    [7] IBM 3270 Information Display System. Data Stream Programmer's        Reference. GA23-0059-1. 
  199.  
  200.    [8] IBM 3270 Information Display System.  Description and        Configuration: APL/Text Feature.  GA18-2044-0. 
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218. Rekhter                                                         [Page 6] 
  219.  
  220.