Re: telnet...


Charles Hedrick (njin!aramis.rutgers.edu!athos.rutgers.edu!hedrick@princeton.edu)
8 Jul 88 03:53:25 GMT


Unfortunately Mark is for once giving Unix more credit than it is due.
Berkeley's TCP/IP includes a telnetd that runs as a user process. It
reads characters from a net connection and copies them into a pty, and
visa versa for the echo. There is kernel support available that makes
this unnecessary, but as far as I know, the only vendor that has decided
to distribute this code is Pyramid (and it isn't released yet). This
makes an enormous difference to responsiveness of a telnet connection
on a heavily loaded machine. So it's worth doing on our Pyramid
timesharing systems. It has not seemed necessary for our other
systems (primarily Suns), which are either single-user or have only a
few users. In my opinion the best implementation (which is what our
Unix code does) is a combination of the two approaches. There is a
telnet daemon. It is used to do connection opening and closing and
handles all option and control sequence processing. It uses an ioctl
to crosspatch the network to the pty. The kernel then handles passing
characters as long as they are "easy". When it detects an IAC from
the network (the beginning of a telnet option of some sort), the
crosspatch is broken and control returns to the daemon. Thus the
kernel handles the normal case, for which performance is important,
but need not be complicated by negotiations, etc. This code is
available, but so far no one has reported success in getting it to run
on machines other than the Pyramid and some other unnamed system which
I assume is not a VAX. A number of people have taken copies of it and
not told me the results. I'd be happy to send it to you, but only if
you are serious about doing the kernel work necessary to get it to
work, and telling me the results.



This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:42:50 GMT