Path: utzoo!attcan!uunet!lll-winken!lll-lcc!ames!ll-xn!mit-eddie!uw-beaver!cornell!rochester!udel!princeton!njin!aramis.rutgers.edu!athos.rutgers.edu!hedrick From: hedrick@athos.rutgers.edu (Charles Hedrick) Newsgroups: comp.protocols.tcp-ip Subject: Re: telnet... Message-ID:Date: 8 Jul 88 03:53:25 GMT References: <8807061753.AA07059@TOTO.MIT.EDU> <12412329728.8.MRC@PANDA.PANDA.COM> Organization: Rutgers Univ., New Brunswick, N.J. Lines: 25 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.