分享
 
 
 

RFC559 - Comments on The New Telnet Protocol and its Implementation

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Network Working Group Abhay K. Bushan

Request For Comments #559 MIT Project MAC

NIC # 18482 August 15, 1973

Comments on the new TELNET Protocol and its Implementation

We at MIT-DN have implemented the new TELNET protocol (both server

and user). This RFCdescribes our eXPerience with the implementation

(particularly the use of GO AHEAD) and in bringing the new User and

Server TELNET's in operation (the new TELNET is not compatible with the

old). We have a few suggestions here which should help other

implementors and lead to a smoother transition to the new protocol.

I. OUR TELNET SERVER IMPLEMENTATION

Our new server TELNET accepts both the "old" and the "new" TELNET

"control sequences". Currently we have the ECHO and the "Suppress Go

Ahead" options implemented and do the "right thing" to varying degrees

with the Interrupt Process (IP), Erase Character (EC), Abort Output

(AO), Are You There (AYT), Break, and Synch character sequences.

A. The ECHO Option

The TELNET server comes up in the default local echo mode and

accepts both the old and the new TELNET control sequences. The server

starts the negotiation for remote echo (server echoing) by sending the

sequence "IAC WILL ECHO" but changes the echo mode only when an

affirmative "IAC DO ECHO" is received. After the cutoff date for old

protocol we will stop "honoring" the old TELNET control sequences.

B. The Go Ahead and Suppress GA option

The server comes up in the send GA mode and transmits the required

"IAC GA" sequence whenever the server detects that it needs to send a

GA. It should be noted that our scheme for sending GA's works most but

not all of the time.

There is really no reliable way for our server TELNET to find out

when a process is actually waiting for network input. On our system,

the server TELNET does not "control" user's process, it only acts as a

terminal handler at the TTY level.

A quick investigation revealed that the above problem (of sending

GA's reliably) is not confined to the ITS operating system alone. In

fact TENEX (ref. conversation with Ray Tomlinson) and DEC-10 (ref.

conversation with Ed Taft at Harvard) systems will encounter similar

problems.

Our solution to the GA sending problem was to have the server wait

2.5 seconds after sending output to see if there is more output to be

sent. If the server has been "idle" for more than 2.5 seconds in the

"output-sent" state it sends a GA and goes in an I/O wait state (looking

for input or output). This scheme works most (but not guaranteed all)

of the time and doesn't cause any noticeable delay. It is possible for

the server to send an extra GA. Our experimentation revealed that 1-5

seconds was a good range for this "idling time constant".

We do implement the "suppress GA" option and will not send GA to

hosts who agree to negotiate out of it. Our server tries to negotiate

these suppress GA option.

C. Other Options and TELNET Control Sequences

Our server will refuse all other options by sending the appropriate

DONTs and WONTs. In addition to the ECHO and Suppress GA options we

recognize the following TELNET "control sequences".

1. Interrupt Process (IP) - The server substitutes the system wide

interrupt character <control-Z> (ACII SUB) which immediately interrupts

the process, moving control to the immediately superior process. If the

user is several levels down his process tree he may have to send several

IP's to reach top level. It should be noted that the IP does not

interrupt the running process in the sense a <control-G> interrupts

muddle but only passes control to the superior.

2. Erase Character (EC) - The server substitutes the system wide

standard erase character <rubout> (ACII DEL). The deletion however is

done not by the server but by the receiving process. It is conceivable

that some process (sUCh as a user TELNET) take no action on receiving

EC. Most processes will echo the deleted character(s). Several EC's

will delete the several previous characters. (If the console is

declared to be an IMLAC, the deleted character is removed from the

screen).

3. Abort Output (AO) - The server substitutes the character <control-S>

(ACII DC3). The control-S convention is followed by many but not all of

our programs. The action taken on receiving AO varies with the program.

A normal occurrence is that output and the current command are aborted

(without necessarily going to completion). In many programs there is no

way to stop output except by sending an IP and "killing" the inferior

process.

4. Are You There (AYT) - The server will print the message

"****connections still open*****" preceded and followed by CRLF's upon

receiving an AYT. At some later time we may report on the state of the

user's job as well.

5. Erase Line (EL) - since we are a character-at-a-time system, the EL

has little meaning on our system and we throw it (and the preceding IAC)

away.

6. Break (BRK) - We substitute three NUL's upon receiving BRK. This

convention is consistent with what happens when the "Break" key is hit

on local teletypes. The programs generally do nothing useful when break

is received (except echo "@@@") but sending BRK may cause strange

program reactions, so beware.

7. Synch - Whenever the server receives the synch INS, it flushes all

except the interesting (control sequences) characters till the receipt

of a DM. We also cause an implicit IP on receipt of SYNCH.

8. We follow the CRLF and CRNUL convention for transmitting EOL and CR

respectively.

II. OUR USER-TELNET IMPLEMENTATION

The new user-TELNET (implemented in CALICO NETWORK by using a new

"TELCOM" subroutine), accepts negotiation for the ECHO and suppress GA

options. The program tries to negotiate out of receiving GA's and tries

the ECHO negotiation if the settings file for the host indicate remote

echo. Special characters and symbols are defined for EC, EL, AO, AYT,

BRK, SYNCH, IP, and the ESCAPE character to command level. These

symbols have a default character value which the user can change by

typing the symbol followed by the new character value at NETWRK command

level. To send EC, EL, etc, the user only has to type the special

character for the function. In addition the user can send these

characters by using the send.special command at NETWRK command level.

In "line mode", EC and EL do a "local" character and line erase rather

than send the EC and EL to the remote host. The following are the

default values for the "special" characters in TELNET :

ESCAPE - backslash

EC - <DEL>

EL - <CAN> or X

AO - S

IP - R

AYT - T

Synch - Y

Break - no preassigned value.

The user can change his echo mode by escaping to NETWRK command

level and using the commands "echo.local" or "echo.remote". Note that

the modes are changed only when the negotiation for mode change is

successful. In either event the user is notified of the results of the

negotiation.

III. INSTALLING THE NEW TELNETS

On Monday July 2, we brought up the user and server TELNETs briefly

to find that most of the hosts did not "recognize" IAC's and did not

honor the new protocol. Much to our dismay usage of both our server and

user TELNET's was chaotic. Consequently, we did not install the new

user and server TELNETs, and the old TELNETs remain operational.

The new and the old TELNETs are definitely not compatible. The

server tries to (and should try to) negotiate out of sending GA's and

also to send echo. This negotiation causes problems with the

"old-style" user TELNETs. Also if the negotiation for Suppress GA is

unsuccessfully (which is the case with "old" user-TELNETs) the server

will keep sending IAC GA's when appropriate. One solution we found to

making our "new" server compatible with "old" user TELNETs was to come

up in a mode that does not start any option negotiation and does not

send GA's unless requested to do so (ie default is to suppress GA"s).

As mentioned earlier the server also accepts the old "TELNET control"

sequences. This solution makes the server compatible with both the old

and the new user TELNETs (except it violates protocol by not sending

GA's). We propose to install this server on our socket 1.

To promote experimentation with the new TELNET protocol, we have

installed the new server TELNET on socket 60 (octal 105). This new

server follows the new protocol (ie it sends GA's) and starts

spontaneous negotiation for remote echo and suppress GA. The

implementors on other Hosts are encouraged to use this service to debug

their user TELNETs (and our server). We feel that transition to the new

protocol will be smoother if new TELNET servers are brought up on

experimental sockets. We are also willing to help debug other servers

from our User TELNET.

Finally we would like to lobby for making suppress GA the default

(as our present server on socket 1). It appears that only a few Hosts

require the GA's (AMES-67 and UCLA-CON). It seems to me that the reason

why sending GA is default in the current specification of protocol is

that representatives from the concerned Hosts wanted the GA to be

implemented. It doesn't matter to them if sending GA or suppress GA is

default, as long as they can get a remote server to send a GA. The

protocol can be so specified as to require every one to implement a

"send GA option". Making "suppress GA" the default will have the

advantage that it will obviate unnecessary negotiation in a great

majority of cases. Another advantage is that not sending GA's makes the

new server compatible with both old and new user TELNETs.

[ This RFCwas put into machine readable form for entry ]

[ into the online RFCarchives by Serge Hallyn 9/97 ]

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有