[net.unix-wizards] TCP/IP Communications

elvy@harvard.UUCP (Marc Elvy) (02/01/84)

I am trying to connect an 11/780 (this machine) and an 11/750 together
using the Internet Protocol packages supplied with 4.2BSD.  At the present
time, however, our Local Area Network is not installed, so I would like
to connect the two Vaxes together via a port on a dz11 until the LAN
is installed.  I want to use IP because I want to spend a minimum amount
of time converting it to the LAN when it arrives.

Has anyone done this sort of thing before?  If so, what advice can you
offer; what steps need I take?  Eventually, there will be an LH11 and
an IMP connected also, and I want everything to be as consistent as
possible.

Thanks,
Marc


				     Marc A. Elvy
		    ({genrad,allegra,ihnp4,ima}!wjh12!harvard!elvy)
			     Aiken Computation Laboratory
				  Harvard University

james@umcp-cs.UUCP (02/05/84)

We ran IP over a 4800 baud phone line once, using an 'asy' protocol
which I believe was supplied by BBN with their sys.[8-10] network
kernel for 4.1bsd.  It is slow, but gets the job done.  I won't bother
posting the sources, but I'll mail them where requested.  This asy
protocol for rs232 serial lines is completely guaranteed to NOT work
without major hacking on 4.2 systems, and on systems not using BBN's
network code.  A better idea would be asking Berkeley if they have
anything similar to this, and to check your distribution for any
network pseudo-devices which are really serial lines.

  --Jim O'Toole

ra@seismo.UUCP (Rick Adams) (02/10/84)

Newsgroups: net.unix-wizards
Subject: Re: TCP/IP Communications (on a tty line)
References: <16475@sri-arpa.UUCP>

I have modified the 4.2BSD TCP/IP facility to work over serial lines in
addition to the currently supported devices. It supports the full
TCP/IP functionality just like all the other devices (although
obviously slower). One instalation is running an IMP, ethernet and
several serial lines, so there shouldn't be any problems with
compatibility.  As, a bonus, it will talk to systems running UNET. (It
uses the same line encapsulation as UNET. This was determined with a
line monitor, so there should be no problems distributing it. It's not
very clever anyway. Just a frame marking character and an escape so you
can have a frame character embedded in your data).

There are basically 4 files involved. One is a user mode program,
/etc/slattach, which configures a tty as a device (I decided not to
build in specific lines when the kernel was built. It is much more
flexible to do it in the /etc/rc file.) The others are kernel modules. One is
/sys/vaxif/if_sl.c (sl for serial line).  The others are modified
net/route.c and net/ip.c

It was necessary to modifiy the routing, because the 4.2 implementation
cannot handle the idea of more than one physical device (each serial
line is treated as if it were a seperate device) on one logical
network.  This means that if you wanted all of your machines to be on
the same logical network(e.g. a class C network hanging off of an ARPAnet
imp), the old code couldn't handle it. It would shove everything onto
the Ethernet (if you had one) instead of checking for a more specific
connection.

This implementation goes through part of the tty driver. I did it this
way so I would not have to write a specific driver for every dz/dh/dmf
in creation.  Files transfer at about 8500 baud on a 9600 baud line.
(The ip and tcp headers are not counted, so it's using most of the
line). There doesn't seem to be much of an impact on the vax, so it
probably isn't worth doing a device specific driver.

Basically the way it works is that an outgoing packet is encapsulated
and put on the clist (so it doesn't go through "most" of the tty
driver). The tty structure is conned into thinking that it is running a
different line discipline, so it hands over incoming characters to a
routine which unencapsulates it and hands it to IP.

It's been running here for about 4 months and seems quite stable.  The
only problem with distributing it (for the first few people anyway)
would be making sure that I send you "eveything" I modified. I did the
majority of the work 5 months ago, so I'm not 100% sure of all the
routines I changed.

I am willing to distribute it to anyone with a 4.2 source license.
(I'm not sure what use it would be if you didn't have 4.2, but we might
as well be paranoid about these things)

Rick Adams
ra@seismo.ARPA
{ihnp4|philabs|hao|harpo|rlgvax}seismo!ra