📄 rfc1184.txt
字号:
Network Working Group Telnet Working GroupRequest for Comments: 1184 D. Borman, EditorObsoletes: RFC 1116 Cray Research, Inc. October 1990 Telnet Linemode OptionStatus of this Memo This memo describes a Draft Standard for the Internet community, and requests discussion and suggestions for improvements. This RFC specifies an IAB standards track protocol for the Internet community. Please refer to the current edition of the "IAB Official Protocol Standards" for the standardization state and status of this protocol. Distribution of this memo is unlimited.Changes from RFC1116: Two new mode bits have been added, SOFT_TAB and LIT_ECHO. These bits allow the server to give the client some advise on how to echo tabs and non-printable characters. Several new special character mappings have been added for cursor motion when visual editing is supported. These are: Move cursor one character left/right (SLC_MCL/SLC_MCR), move cursor one word left/right (SLC_MCWL/SLC_MCWR), move cursor to begining/end of line (SLC_MCBOL/SLC_MCEOL), enter insert/overstrike mode (SLC_INSRT/SLC_OVER), erase one character/word to the right (SLC_ECR/SLC_EWR), and erase to the beginning/end of the line (SLC_EBOL/SLC_EEOL).Overview Linemode Telnet is a way of doing terminal character processing on the client side of a Telnet connection. While in Linemode with editing enabled for the local side, network traffic is reduced to a couple of packets per command line, rather than a couple of packets per character typed. This is very useful for long delay networks, because the user has local response time while typing the command line, and only incurs the network delays after the command is typed. It is also useful to reduce costs on networks that charge on a per packet basis. Please send comments to the telnet-ietf@cray.com mailing list.Telnet Working Group [Page 1]RFC 1184 Telnet Linemode Option October 1990Table of Contents 1. Command Names and Codes 2 2. Command Meanings 3 2.1 The LINEMODE function 3 2.2 LINEMODE suboption MODE 4 2.3 LINEMODE suboption FORWARDMASK 5 2.4 LINEMODE suboption SLC, Set Local Characters 6 2.5 New control characters 10 3. Default Specification 11 4. Motivation 11 5. Implementation Rules 13 5.1 User Interface 13 5.2 End of line terminators 14 5.3 Output processing 14 5.4 A terminal driver in Telnet? 14 5.5 Setting of Local Characters 14 5.6 FORWARDMASK and SLC_FORW1 and SLC_FORW2 15 5.7 Valid and invalid modes and values 16 5.8 Flushing input and output 16 5.9 State diagram for SLC 18 5.10 Example of a connection 19 6. Other Telnet options and RFCs 22 7. Security Considerations 23 8. Author's Address 231. Command Names and Codes LINEMODE 34 MODE 1 EDIT 1 TRAPSIG 2 MODE_ACK 4 SOFT_TAB 8 LIT_ECHO 16 FORWARDMASK 2 SLC 3 SLC_SYNCH 1 SLC_BRK 2 SLC_IP 3 SLC_AO 4 SLC_AYT 5 SLC_EOR 6 SLC_ABORT 7 SLC_EOF 8 SLC_SUSP 9 SLC_EC 10 SLC_EL 11Telnet Working Group [Page 2]RFC 1184 Telnet Linemode Option October 1990 SLC_EW 12 SLC_RP 13 SLC_LNEXT 14 SLC_XON 15 SLC_XOFF 16 SLC_FORW1 17 SLC_FORW2 18 SLC_MCL 19 SLC_MCR 20 SLC_MCWL 21 SLC_MCWR 22 SLC_MCBOL 23 SLC_MCEOL 24 SLC_INSRT 25 SLC_OVER 26 SLC_ECR 27 SLC_EWR 28 SLC_EBOL 29 SLC_EEOL 30 SLC_DEFAULT 3 SLC_VALUE 2 SLC_CANTCHANGE 1 SLC_NOSUPPORT 0 SLC_LEVELBITS 3 SLC_ACK 128 SLC_FLUSHIN 64 SLC_FLUSHOUT 32 EOF 236 SUSP 237 ABORT 2382. Command Meanings2.1 The LINEMODE function IAC WILL LINEMODE The sender of this command REQUESTS permission to begin sub- negotiation of the editing/signaling status. This should only be sent by the client side of the connection. IAC WONT LINEMODE The sender of this command DEMANDS that sub-negotiation of the editing/signaling status not be allowed.Telnet Working Group [Page 3]RFC 1184 Telnet Linemode Option October 1990 IAC DO LINEMODE The sender of this command REQUESTS that the remote side begin sub-negotiation of the editing/signaling status. This should only be sent by the server side of the connection. IAC DONT LINEMODE The sender of this command DEMANDS that the remote side not begin sub-negotiation of the editing/signaling status.2.2 LINEMODE suboption MODE IAC SB LINEMODE MODE mask IAC SE The sender of this command CONFIRMS, or REQUESTS permission for, a switch to the mode defined by "mask". The "mask" is a bit mask of various modes that the connection can be in. Under normal operation, the server side of the connection will initiate mode changes, and the client will confirm the mode changes. The currently defined modes are: EDIT When set, the client side of the connection should process all input lines, performing any editing functions, and only send completed lines to the remote side. When unset, client side should not process any input from the user, and the server side should take care of all character processing that needs to be done. TRAPSIG When set, the client side should translate appropriate interrupts/signals to their Telnet equivalent. (These would be IP, BRK, AYT, ABORT, EOF, and SUSP) When unset, the client should pass interrupts/signals as their normal ASCII values. FLOW Logically, this belongs in the "mask". However, this would overlap the Telnet TOGGLE-FLOW-CONTROL option, so the Telnet TOGGLE-FLOW-CONTROL option is used instead. When DO/WILL LINEMODE is negotiated, DO/WILL TOGGLE- FLOW-CONTROL should also be negotiated. See RFC 1080, "Telnet Remote Flow Control", for correct usage. ECHO Logically, this belongs in the "mask". However, this would overlap the Telnet ECHO option, so the Telnet ECHO option is used instead. The client side should never negotiate "WILL ECHO". When the server has negotiated "WILL ECHO", the client should not echo data typed by theTelnet Working Group [Page 4]RFC 1184 Telnet Linemode Option October 1990 user back to the user. When the server has negotiated "WONT ECHO", the the client is responsible for echoing data typed by the user back to the user. See RFC 857, "Telnet ECHO OPTION" for a complete discussion on the use of the Telnet ECHO option. SOFT_TAB When set, the client side should expand the Horizontal Tab (HT) code, USASCII 9, into the appropriate number of spaces to move the printer to the next horizontal tab stop. When unset, the client side should allow the Horizontal Tab code to pass through un-modified. LIT_ECHO When set, if the client side is echoing a non-printable character that the user has typed to the users screen, the character should be echoed as the literal character. If the LIT_ECHO bit is not set, then the client side may echo the character in any manner that it desires. (Many systems echo unprintable characters as two character sequences, for example, they will echo "^A" for an ASCII 1 value.) When the client side of a connection receives a MODE command, it MUST agree with at least the state of the EDIT and TRAPSIG bits. If a MODE command is received with a mode mask that is currently in use (ignoring the MODE_ACK bit), the MODE command is ignored. If a MODE command is received that is different from the current mode mask, then a reply is sent with either the new mode mask and the MODE_ACK bit set, or a subset of the new mode mask. The only exception is that if the server receives a MODE with either the EDIT or TRAPSIG bits not set, it may set the EDIT and TRAPSIG bits in the response, and if the client receives a MODE with the EDIT or TRAPSIG bits set, it may not clear them in the response. When a MODE command is received with the MODE_ACK bit set, and the mode is different that what the current mode is, the client will ignore the new mode, and the server will switch to the new mode. This ensures that both sides of the connection will resolve to the same mode. In all cases, a response is never generated to a MODE command that has the MODE_ACK bit set.2.3 LINEMODE suboption FORWARDMASK IAC SB LINEMODE DO FORWARDMASK mask0 mask1 ... mask31 IAC SE The sender of this command request that the other side send any buffered data when any of the ASCII characters defined by the bit mask are received. Only the side of the connection that sent DO LINEMODE (the server side) may negotiate this. The mask is up toTelnet Working Group [Page 5]RFC 1184 Telnet Linemode Option October 1990 32 octets long. Each octet represents 8 ASCII character codes. The high order bit of mask0 corresponds to an ASCII code of 0. The low order bit of mask0 corresponds to an ASCII code of 7. The high order bit of mask1 corresponds to an ASCII code of 8. The low order bit of mask1 corresponds to an ASCII code of 15, and so on. The mask list may be terminated before the end of the list, in which case all the rest of the mask octets are assumed to be reset (equal to zero). When the server side is in DONT TRANSMIT-BINARY mode, then only the first 16 octets of the mask (ASCII codes 0 through 127) are used. If any individual octet of the mask is equal to IAC, it must be sent as a double IAC. IAC SB LINEMODE DONT FORWARDMASK IAC SE The sender of this command requests that the other side stop using the forward mask to determine when to send buffered data. IAC SB LINEMODE WILL FORWARDMASK IAC SE This command is sent in response to a DO FORWARDMASK command. It indicates that the forward mask will be used to determine when to send buffered data. IAC SB LINEMODE WONT FORWARDMASK IAC SE This command is sent in response to a DO FORWARDMASK command. It indicates that the forward mask will not be used to determine when to send buffered data.2.4 LINEMODE suboption SLC, Set Local Characters The SLC suboption uses a list of octet triplets. The first octet specifies the function, the second octet specifies modifiers to the function, and the third octet specifies the ASCII character for the function. IAC SB LINEMODE SLC <list of octet triplets> IAC SE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -