[net.micro.pc] TCP on a LAN

romkey%mit-borax@sri-unix.UUCP (01/23/84)

From:  romkey@mit-borax (John L. Romkey)

Hi,
	For the past several years I've been working in a research project
here at MIT to implement the TCP/IP protocols on an IBM PC. At first the
idea was merely to see if it could be done. The first implementation was
done using a serial line as the medium with our own framing protocol for
packets. The line was usually run at 9600 baud or 19.2kbaud and there was a
gateway which sat between a bunch of serial lines and a 10Mbps ring we have.
Telnet, over the 9600 baud line, is usable, but not as nice as a hardwired
9600 baud terminal since you lose so much bandwidth. Still, it's quite
usable and a professor here has a leased line from LCS to his home where he
has his PC, and he can do a lot of work at home this way.

	When 3COM announced their 10Mbps ethernet interface for the PC we
got one right away and ported the code to it. Before we broke our terminal
emulator somewhat (built into telnet, emulates an h19) we frequently got
better performance than 9600 baud hardwired lines. A simple file transfer
protocol called TFTP has also been implemented and we usually get 15kbps or
better out of a file transfer to the floppy disk, or around 70kbps to IBM's
winchester. In testing, it's broken 110kbps, but there it was just dropping
data as soon as it received it. We haven't done a full FTP because our TCP
implementation only supports a single connection and FTP requires two. Maybe
someday we'll fix this but for now we don't really need it.

	Now why would you want a PC to run server telnet, anyway? Something
else we've done is to take a remote virtual disk protocol which our vaxen
use and implement it on the PC so that it can access disks over the net. The
protocol gives an interface to a remote RAW disk, not to a remote
filesystem. It's kind of like 3COM's remote disk code except that it's IP
based and we never did a server for the PC. We don't get blazing speed out
of this but that's because of known problems with the implementation which I
haven't had the strength to fix.

	There's also a net interface available from Proteon for their ring.
We have a fairly large ring here with about 25 vaxen, one PDP 11, several
gateways and a PC on it. I've been working on a driver for the ring for our
programs.

	Overall, I think that something like the PC can't drive an ethernet
or a ring like a vax can, but then again, a single vax can't use the net up.
When you scale down performance wishes along with processor power, the PC
lives up to expectations. I wrote this message while telnetting to my VAX
from my PC. I don't do most of my work on the PC because I hate it as a
development environment, and lately I've been developing some very hard
feelings about the 8088. But it can talk tcp.

	If you'd like a copy of our programs, you should contact Prof. Jerry
Saltzer (saltzer@mit-multics). He's led this project from the start. I can't
yet give you a copy of the remote virtual disk code because it's not fully
debugged yet (= it's still somewhat embarassing). I hope this has helped
somewhat; feel free to ask more questions.

**addendum**
	I just looked over your message again, and I think one of us has the
worng idea about local are networks. Lots of people have them. MIT has a
ring and an ethernet. I know that Udel and CMU and ISI and Berkeley all have
ethernets. Take a look at the NIC host table. Arpanet and Milnet are long
haul networks and there are a couple of other nets which aren't local
area class, but I think you'll find that most of them are actually local
area networks. The Arpanet is NOT the Internet. The Internet is far vaster
than the Arpanet, and the protocol is designed to allow the interconnection
of LOTS of networks. My PC here, two gateways away from the arpanet, can
talk tcp/ip to another pc out at isi, at least another gateway away from the
arpanet. Now the packets do get transported over the arpanet in the process,
but...
						- John Romkey
						  romkey@mit-borax