文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院网络技术网络协议RFC596 - Second thoughts on Telnet Go-Ahead
精品推荐
特别推荐
·ISIS路由协议
·Telnet入侵最完全手册
·网络协议基础知识 SMTP协议和UDP协议
·新的宽带认证方式——IEEE 802.1x协议
·ARP协议揭密
·网络沟通的桥梁-协议X档案
·TCP/IP协议简介
·NGN网络协议解析
·HTTP协议基础
·电子商务安全协议
·SSL协议介绍
·SIP、SAP及SDP协议组合应用的研究
·在Windows 2000 Server中配置TCP/IP协议
·Catalyst8500配置实例之HSRP协议培植
·计算机网络体系层次结构的划分
·OSPF计算路由
热点TOP10
·Ad Hoc网络协议栈通用要求研究
·关于Sniffer Pro
·RFC791 - Internet Protocol
·在Windows 2000 Server中配置TCP/IP协议
·透析ICMP协议(四): 应用篇ping(RAW Socket)
·传输控制协议(Transmission Control Protocol, TCP)
·对BitTorrent通信协议的分析与检测
·完全用Linux工作 摈弃Windows
·ISIS路由协议
·TCP/IP协议原理
·Telnet入侵最完全手册
·RFC4098 - Terminology for Benchmarking BGP Device Convergence in the Control Plane
·RFC3447 - Public-Key Cryptography Standards (PKCS) #1: RSA Cryptography Specifications Version 2.1
·闭路电视监控系统CCTV资料
·IRIS Traffic Analyzer简易教程
·新的宽带认证方式——IEEE 802.1x协议
·HTTP协议基础
·新一代的AAA协议——Diameter
·IP PBX方案篇
·ARP协议揭密

RFC596 - Second thoughts on Telnet Go-Ahead

日期:2007年5月5日 作者: 查看:[大字体 中字体 小字体]



  Network Working Group E. Taft
Request for Comments: 596 PARC-MAXC
NIC: 15372 8 December 1973

Second Thoughts on Telnet Go-Ahead

INTRODUCTION

In this RFCwe present objections to the requirement that hosts
implement the Telnet Go-Ahead (GA) command, as specified in the
Telnet Protocol Specification (NIC #15372). The thrust of these
objections is in three major directions:

1. The GA mechanism is esthetically unappealing, both to myself
and to many other people I have talked to. I shall attempt to
describe why this is so.

2. As specified in the Protocol, GA will not, in general, work;
i.e. it will not serve its intended purpose unless hosts make
various unwarranted assumptions about how other hosts operate.

3. GA is impossible for most hosts to implement correctly in all
cases. This is certainly true of the PDP-10 operating systems
with which I am familiar (10/50 and Tenex).

The purpose of this RFCis to advocate either complete removal of the
GA mechanism or relegating it to the status of a negotiated option
whose default state is that it be suppressed.

TERMINOLOGY

"Half-duplex" is a two-way communication discipline in which
transmission takes place in only one direction at a time and the
receiving party is constrained not to transmit until the transmitting
party has explicitly given up control of the communication path
("turned the line around").

This definition is distinct from a common (but incorrect) use of the
terms "half-duplex" and "full-duplex" to designate local and remote
character echoing.

"Reverse break" is a means by which a computer connected to a
terminal by a half-duplex path may regain control of the path for
further typeout after previously having relinquished it.

This is the complement of the "break" or "attention" mechanism,
implemented by all half-duplex terminals, by means of which the user
may gain control of the line while it is in use by the computer.

ESTHETIC OBJECTIONS TO GA

One assumption that permeates the Telnet Protocol specification (and
is explicitly stated on Page 7) is that the "normal" mode of
communication between computers and terminals is half-duplex, line-
at-a-time. While historically this is partially true, it is also
clear, both within the ARPA Network community and elsewhere, that the
trend is toward highly interactive man-machine communication systems
which are difficult to implement under half-duplex communication
disciplines.

The GA mechanism is an attempt to solve a specific problem, that of
switching control between computer and user in a subset of those
hosts utilizing IBM 2741 or equivalent terminals. I say "a subset"
because in fact the problem arises only in the case of TIPs from
2741s (with reverse break); from what experience I have had, I think
the TIP does a very good job of turning the line around at the right
moments. (I am told this is also the case at Multics).

Given the trend toward more interactive communication, and given the
fact that terminals on the Network requiring a Go-Ahead mechanism are
a distinct minority of all terminals, I think we should be reluctant
to burden our protocols with kludges that are so clearly a concession
to obsolete design.

I have little doubt that before long somebody (if not IBM) will
produce a full-duplex 2741-like terminal (indeed, perhaps it has
already been done). There is an obvious need for a terminal with
Selectric quality keyboard and hard-copy better suited to
interactive applications (i.e. full-duplex).

As a more practical consideration, it makes little sense to have the
default state of the GA option be the one that benefits the least
number of hosts and terminals.

There is no question that most parties to Telnet communication
will immediately negotiate to suppress GA. To do otherwise will
double the amount of network traffic generated by character-at-a-
time typein, and will increase it by a non-negligible amount even
for a line-at-a-time typein.

It strikes me as worthwhile to minimize the number of such
"necessary" option negotiations, especially in view of the large
number of TIPs and mini-hosts on the Network. Many such hosts

must, due to resource constraints, implement only a limited subset
of the available options. It follows, then, that the default
state of all options should be the one most hosts will be willing
to use.

WHY GA WON'T WORK

We now show that a server process's being "blocked on input" (as
specified in the Protocol) is not itself a sufficient condition for
sending out GA.

This is due to the fact that the user Telnet has no control over the
packaging of a "line" of information sent to the server; rather, this
is a function of the NCP, which must observe constraints such as
allocation and buffering. Consider the following example:

A user types a line of text, which is buffered by his host's user
Telnet until he signals end-of-line. His keyboard then becomes
locked (this being the behavior of half-duplex terminals while the
computer has control of the line), and stays locked in
anticipation of the server's eventual response and subsequent GA
command.

The user Telnet transmits this text line over the connection;
however, due to insufficient allocation or other conditions, the
text actually gets packaged up and sent as two or more separate
messages, which arrive at the server host in the correct order but
separated by some amount of time.

The server Telnet passes the contents of the first message to the
appropriate process, which reads the partial text line and
immediately blocks for further input. At this moment (assuming
the second message hasn't arrived yet), the server telnet, in
accordance with the Protocol, sends back a GA command.

The rest of the text then arrives in response, the server process
may generate a large volume of output. Meanwhile, however, the GA
command has caused the user's keyboard to become unlocked and
computer output thereby blocked. Hence we have a deadlock, which
will be resolved only when the user recognizes what has happened
and (manually) gives control back to the computer.

Of course, this particular problem is avoided if the Telnet protocol
is modified to specify that the server Telnet will transmit GA only
if the server process is blocked for input AND the most recent
character passed to that process was end-of-line.

I claim that this solution is bad in principle because it assumes
too much knowledge on the part of the serving host as to what
constitutes "end-of-line" in the using host.

Furthermore, the Protocol explicitly (and quite rightly) specifies
that the user Telnet should provide some means by which a user may
signal that all buffered text should be transmitted immediately,
without its being terminated by end-of-line.

One must conclude, then, that in general the server Telnet has no
precise way of knowing when it should send GA commands.

IMPLEMENTATION PROBLEMS

The foregoing analysis illustrates the problems that arise with the
GA mechanism in communication between servers and users whose normal
mode of operation is half-duplex, line-at-a-time. When we turn to
hosts that provide full-duplex service, such as the PDP-10s and many
other hosts on the Network, the problems are much more severe.

This is particularly true of operating system such as Tenex that
exercise such tight control over terminal behavior that they
prefer to operate in server echoing, character-at-a-time mode.
This will probably become less necessary as protocols such as
Remote Controlled transmission and Echoing Option come into
general use, enabling servers to regulate echoing and break
character classes in user Telnets.

Even in hosts such as 10/50 systems that provide reasonable service
to line-at-a-time users for most subsystems (e.g. excluding DDT and
TECO), GA is impossible to implement correctly. This is true for
several reasons.

First, there are a number of subsystems that never block for terminal
input but rather poll for it or accept it on an interrupt basis. In
the absence of typein, such processes go on to do other tasks,
possibly generating terminal output.

Processes of this sort come immediately to mind. The user telnet,
FTP, and RJE programs are implemented in this fashion by almost
all hosts. 10/50 has a subsystem called OPSER, used to control
multiple independent subjobs from a single terminal.

Since these programs never block for input, GA commands will never
be sent by the server Telnet in such cases even though the
processes are prepared to accept terminal input at any time.

Second, there is not necessarily a one-to-one relationship between
processes and terminals, as seems to be assumed by the Telnet
Protocol specification.

For example, in Tenex one process may be blocked for terminal
input while another process is generating output to the same
terminal. (Such processes are typically parallel forks of the
same job).

Third, there is the possibility of inter-terminal links, such as are
provided in many systems.

By this I do not mean special Telnet connections established
between a pair of NVTs for the express purpose of terminal-to-
terminal communication, as is suggested on page 9 of the Protocol
specification. Rather, I am referring to facilities such as the
Tenex LINK facility, in which any number and any mixture of local
and Network terminals and processes may have their input and
output streams linked together in arbitrarily complex ways.
Clearly the GA mechanism will fall flat on its face in this case.

Also, the notion that one user of an inter-terminal link should
have to "manually signal that it is time for a GA to be sent over
the Telnet connection" in order to unblock another user's keyboard
offends me to no end.

Finally, most systems provide means by which system personnel and
processes may broadcast important messages to all terminals (e.g.
SEND ALL in 10/50, NOTIFY in Tenex). Clearly such asynchronous
messages will be blocked by a half-duplex terminal that has been
irrevocably placed in the typein state by a previous GA.

This strikes me as such an obvious problem that I am forced to
wonder how half-duplex hosts handle it even for their local
terminals.

[ This RFCwas put into machine readable form for entry ]
[ into the online RFCarchives by Mirsad Todorovac 5/98 ]
[1] [2] 下一页 




上一篇:RFC597 - Host status

下一篇:RFC595 - Second thoughts in defense of the Telnet Go-Ahead

RFC596 - Second thoughts on Telnet Go-Ahead 相关文章:
·Telnet高级入侵攻略及原理
·telnet命令
·Telnet入侵最完全手册
·Windows 2000 telnet服务简明教程
·捕获telnet登录口令
·Telnet密码破解软件Letmein1.0
·重负载Telnet BBS系统优化和维护经验谈
·用Telnet快速收发电子邮件
·你真的了解telnet吗
·快速开启对方机器(win2000)的telnet服务
RFC596 - Second thoughts on Telnet Go-Ahead 相关软件:
·InterAccess TelnetDV4.0 Build 7
·防止黑客TELNET登陆
·Mocha W32 Telnet V5.2 特别版
·PowerTCP Telnet Tool v1.8.2 注册机
·telnet 2000V1.2
·AbsoluteTelnetV3.80

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn