[comp.protocols.tcp-ip] historical defaults

nittmann@rusvx1.rus.uni-stuttgart.dbp.de ("Michael F.H. Nittmann ") (06/27/88)

Throwing in the following I would like to see if it is worth   
being discussed:
there are two defaults in the telnet standard that are a little bit
hampering on networks since on my opinion they cause lots of
evitable network charge: go ahead and remote echo.

On my own experience most communications in interactive telnet use are
from a workstation to a mainframe computer.
The lines are full duplex as seen from the telnet side. A virtual
circuit of two phone lines or a x.25 virtual circuit look as a 
full duplex line to the telnet.
So: why bother with a go ahead as a default start and not just set
SGA as a default.
The same I think holds for the remote echo. This is a very useful
option when operating over very unreliable lines to very unreliable
hosts. When communicating over a standard network which is reliable
as seen from the bottom side of telnet, and when the tcp/ip used
as a type 4 protocol would take care of resending characters if
they are lost or timed out, so why charge the already overcrowded
network ( re. the breakdowns early in '88) with those single
character echo packets. 
I would guess that nowadays - in 88, not in times on NCP-->TCP
transition - most communications could easily be done with SGA
and local echo. Seen from the mainframe pespective I personnally 
judge it a gigantesque waste of resources to let a multi user
mainframe echo single characters - mainframes may of course
switch that off by negotiating, as is done with SGA. The problem I
see in my experience is that some implementations heavily rely on the 
defaults. When confronted with a non default negotiation at 
communication start some implementations don't work 
correctly. They either insist negotiating their default or
just hang waiting for a GA.
By switching the defaults - SGA and local echo - I think 
we could avoid network charge - two defaults together never
would negotiate e.g. the echo since there is no reson so
they will send those silly 1 character packets.
On the other hand implementors would perhaps be oriented
to the more useful modes as is SGA. Or is there somebody
who really knows he needs the GA any more?

Perhaps this will result in a level 3 or level 4 discussion
opposed to the link level discussion on connectors.(this is OSI
terminology).
                    
And as usual: these are my personal views.

Michael F.H.Nittmann

fin@UF.MSC.UMN.EDU (Craig Finseth) (06/27/88)

Your suggestion that local echo is acceptable implies that the local
host knows exactly when and how to echo locally.  As of now, the local
host does not know when and how to locally echo (what about display
editors such as Emacs and vi?).

In the latest IETF meeting (held a couple of weeks ago), there was a
discussion about Telnet EXTENSIONS to handle this type of negotiation
on a dynamic basis (i.e., negotiate which characters are for editing,
how to handle editing, how and when to go in and out of "raw" mode,
etc.)

Craig A. Finseth			fin@uc.msc.umn.edu [CAF13]
Minnesota Supercomputer Center, Inc.	(612) 624-3375

hedrick@athos.rutgers.edu (Charles Hedrick) (06/27/88)

I agree that the telnet defaults are archaic.  However in most cases
there's going to have to be some negotiation at startup anyway (to
pass terminal type, for example).  So changing the defaults wouldn't
simplify very much, and would lead to great confusion.  Around
universities in the U.S., I think telnet is typically used with Unix
machines or DEC timesharing systems.  Both of these OS's expect
full-duplex connections.  They sometimes do things with characters
other than just echoing them.  E.g. editors like emacs move the cursor
around in response to single characters.  Even when you are not in
Emacs, there are commands for editing single lines in the normal
command scanner.  While I agree that it would be best to do as much
work locally as possible, there are few systems where you can do this
by using local echo in the sense it is defined in the telnet spec.
Since most systems these days expect various characters to trigger
special actions, in order to echo locally, the local host is going to
have to be told something about those special characters.  This means
that a new telnet option will be defined that allows the host to tell
the local system what characters are special.  Discussions are
currently going on within the Internet Engineering Taskforce about
such an option.  I think you'll see an RFC or the draft for one fairly
soon.  (Of course there are existing experimental protocols that do
this already, such as SUPDUP, and the protocol used by Encore for
their terminal servers.)

mckenzie@LABS-N.BBN.COM (Alex McKenzie) (06/28/88)

Of course, instead of the IETF inventing a new set of Telnet options, the
community could consider the (shudder) ISO Virtual Terminal Protocol, which was
designed to do all this.

Alex McKenzie
 

dzoey@TERMINUS.UMD.EDU (06/29/88)

> From: Alex McKenzie <mckenzie@LABS-N.BBN.COM>
> Subject:  Re:  historical defaults

> Of course, instead of the IETF inventing a new set of Telnet options, the
> community could consider the (shudder) ISO Virtual Terminal Protocol, which 
> was designed to do all this.

I don't think the internet community would want to do this because
the various profiles for VTP (a profile is similar to a set of telnet
options describing how all terminal capabilities should be mapped)
are still being defined at NBS.   This doesn't mean that people shouldn't
take an active interest in VTP, just that they probably won't want 
telnet to emulate it.

What is interesting is that the telnet way of doing terminal negotiation
(one attribute at a time) can be done with VTP, but only with the extended
model, not the basic one (forgive me if my terms are fuzzy, my copy of
the VTP spec is at home).   It sometimes seems that the Internet and 
ISO picked different ends of the implementation spectrum and are now
busy rushing toward each other.

That's what I like about standards, there's so many to choose from :-)

                            Joe Herman
                            U of Md.

dzoey@terminus.umd.edu

nittmann@rusvx1.rus.uni-stuttgart.dbp.de ("Michael F.H. Nittmann ") (06/29/88)

This is a lengthy mail on echo no echo remote local etc. and telnet.
Perhaps You even do not need to read it.



Just to tell, I am fully aware of char. use of vi. But what vi needs is
not the remote echo but the single character TRANSMISSION. 
And this is just the point
I wanted to go to: why not use vi together with nfs, avoid those small char. 
sequences ( these are not the 1 char. echoes of course), and get a more secure
vi session since the buffer just being edited will survive network/host 
crashes due to the statelesness of nfs. The same holds for all fullscreen
editors and unix likes. Naturally there will be some VMS or so who will
really need character mode. Let's ask: who is the most important section.

Dynamic switching of modes is also already possible: I type escape ,mode
line, return, return to the session and I am in line mode. I can change
it back to character mode when I really need it (for a direct vi session).
To do it better on a defined special character basis is a very good 
extension, let's hope that the extension rfc will come in soon.

The  point I see is that agreed defaults 	
are never renegotiated and sessions that do not need these quasi default 
modes will run with them and waste resources. Doesn't this become even
more true when there is an extended option on negotiated special characters?
I would say that then even less sessions need to start in dont SGA.
And since special characters are negotiated there is no need for single
character mode of the sending NVT.    

With "agreed defaults" of course I do not only mean rfc854 defaults since
there is already line mode stated as default for a telnet client's NVT.

To order my imprecise formulation:
only those who really have a physical half duplex terminal should need a GA, 
not the Unix-likes nor VMS.
I agree that confusion would be too big in changing that particular 
- and rfc854 standardized - default since the GA is purely optional. 

But:
A standard developed - or let's call it an implementor's easyway, or
a sneeked in maniere - that telnet clients start in character mode, 
ask for remote echo and ping pong single characters between vaxes or suns, 
where by the way in line mode the line editing could 
be easily done locally and where NVT function codes pass. (the user has of course
to enter some stty statements in his .cshrc ,.login or dec/new into login.com
to get the editings done at the appropriate place and ctl c's 
understood on the other side)
Of course some telnet implementations are really clumsy in passing 
NVT function codes and do ask the poor user to enter the escape to return to 
the client's command level and enter some sort of 'send IP' or so.
People who have to use some of these should be able to go into the single
character transmission mode WITHOUT at the same time ask for a remote echo.

So perhaps I formulate it as a request to the developers: cannot we leave
alone  the agreed or sneeked in standard of starting in char. mode with
remote echo and return to rfc defined real standard at the start of a session. 
And when a user really needs a character per character 
transmission ( it is that what is needed for vi, not the remote echo  
) do just that but do not
always request at the same time a server's echo. Vi is a very good example
here since vi does not just an echo but a reply to the single character
entry : on some escape ...A it sends cursor control to put the cursor up,
dependent on the terminal type e.g. defined in .cshrc or login.com (for
edt/tpu). And if I type a colon I do not get a colon echoed in command mode
but my cursor is placed into the down left corner of the vi window and then my
colon and command are replicated ( to use this to distinguish it from mere
echo ). What is echoed at most is a rubout sequence for the already echoed
colon. So the vi case is even worse than everything You thought of: you
let remotely echo Your entered character and then vi comes and does a rubout
on it since we do not need that colon in the middle of the screen! Couldn't
such a rubout candidate be bought cheaper by local echo?
If You properly set up Your terminal definitions on both sides, vi will
work without the echo and know when to reply a character with itself echoed.



                     
I know I have a difficulty with writing clearly and simple so breath freely,
this is my last on that.
                      

Michael F.H. Nittmann