[comp.dcom.lans] Milking machine performance/function

swb@batcomputer.tn.cornell.edu (Scott Brim) (12/01/86)

Thanks to all the mail about terminal servers recently, I feel educated
about using terminal servers on ethernets.  How about the other
direction though ("milking machines")?  I'm talking about a situation
where you TELNET to this box and it produces asynch out the backend to
connect to hosts that don't support TCP/IP, or support it in a limited
way.  Nice user functions aren't so important in this mode, but
reliability, throughput, and routing functionality become critical.
Once again the only contenders I know of are Bridge, Cisco, and
Encore.

Is anyone using terminal servers in this mode?

What's REAL throughput like, these days, coming **from** the "terminal"
(which in this case is the host)??  I believe these boxes have been
engineered for high throughput **to** the terminal (which in my case is
the host).  How do they do if you spew characters at them from the
RS232 ports?  Do they crash?  Stagger?  Drop things on the floor?  Sail
smoothly through it?

Does Bridge understand UDP RIP yet?  (I suspect Cisco still only uses
its own proprietary routing protocol.)

On any of these boxes, is there any problem with **completely** turning
off things like welcoming banners, flow control, etc.?

					Thanks ... Scott
---------------------------------------------------------------------------
Scott W. Brim                           swb@devvax.tn.cornell.edu
Cornell University Theory Center        {decvax,ihnp4}!cornell!swb
265 Olin Hall                           bitnet: swb@crnlcs
Ithaca, NY 14853			607-255-9392

phil@amdcad.UUCP (Phil Ngai) (12/02/86)

In article <1612@batcomputer.tn.cornell.edu> swb@batcomputer.UUCP (Scott Brim) writes:
>
>Does Bridge understand UDP RIP yet?  (I suspect Cisco still only uses
>its own proprietary routing protocol.)

None of the Bridge boxes we have, which consist of GS/3 internet
routers and CS/100 terminal servers, understand Berkeley's routed
protocol. I think this is what you mean by UDP RIP. I don't know that
my terminology is more accurate than yours but vendors seem to
understand me better when I say Berkeley routed rather than RIP.

Bridge Comm's lack of routed is a problem in several ways. Because
they don't send routed packets, managing routing tables for our 100
hosts is very inconvenient. We have implemented a workaround for this
by using a host which allows forging IP source addresses. We
impersonate the GS/3 internet routers and advertise the networks
available through them.  This has been running for only a few days but
seems like it will suffice for us. It was surprisingly easy. A shell
script was used to assemble the packets and then send them to a raw
Ethernet device.  This system allows us to keep 100 hosts run by many
different system managers up to date on routing information by
changing just one file on one host.

This system is not perfect.  There would be benefit from the GS/3s
producing the routed packets themselves. For example, if one gateway
went down and an alternative route was available, hosts would
automatically use the alternative.

A worse problem is that the GS/3s don't listen to routed packets. We
have started installing Apollo domain rings with Ethernet gateways.
These gateways broadcast routed packets and if the GS/3 heard them,
they would route packets destined for a node on a ring to the
appropriate gateway. Instead, we have to get on a CS/100, use a
nonstandard protocol and modify the GS/3. Every time we install a new
Apollo ring, we have to update all eight of our GS/3s. Most times we
have to add two entries for every new Apollo ring because of our
redundant topology. Every time we install a new version of GS/3
software, we have to type in the entire routing table to each GS/3. It
gets very tiresome.

I wish I could store the routing tables as files on my VAX Unix
machine and download them.  I could probably figure out how by looking
at the packets with my LANalyzer but haven't had time yet.
-- 
 If you had everything, where would you put it?

 Phil Ngai +1 408 749 5720
 UUCP: {ucbvax,decwrl,hplabs,allegra}!amdcad!phil
 ARPA: amdcad!phil@decwrl.dec.com

hedrick@topaz.RUTGERS.EDU (Charles Hedrick) (12/02/86)

> Does Bridge understand UDP RIP yet?  (I suspect Cisco still only uses
> its own proprietary routing protocol.)

Actually, at this instant Cisco will handle either EGP or the PUP
GWINFO (the PUP version of RIP).  They are being very careful about
testing their own protocol before turning it on in customer copies.
As I understand it, they do not regard it as proprietary, and have
considered issuing an RFC.  (One might well describe routed as
proprietary, since it is not described by an RFC.  You have to figure
it out from looking at source files.  Under your license agreement,
you can't divulge the information that you have obtained, though I
suspect that this is being a bit more picky than they had in mind.)

There are several problems with routed that make it unlikely that it
will take over as a routing protocol.  One is that in large networks,
the algorithms behind RIP can lead to instability.  It's unclear to me
how many real networks have configurations that would lead to
problems, but Cisco and similar companies would like their boxes to be
usable to build networks on the scale of the Arpanet.  (NSFnet and a
number of regional networks are creating a market for routers that can
handle big networks.)  A more practical problem is that routed is
largely a Unix-only protocol.  If all your machines and gateways are
BSD, fine.  But we find it more practical to use other techniques to
distribute routing.

The most common ways to distribute routing information are routing
redirects and proxy ARP.  To use routing redirects, you set up a
default gateway for each host.  (It is common to have a convention
that host number 1 on each subnet is a gateway.)  If that gateway
turns out not to be on the best route, it will issue an ICMP redirect
pointing you to the better route.  To use proxy ARP, you set things up
so that your host issues an ARP request for every destination.  The
appropriate gateway responds to the ARP with its own Ethernet address.
Routing redirects are probably the most common.  Their use is
described in the standards.  Every TCP/IP implementation that I know
of can use them.  Proxy ARP is used primarily to handle hosts that do
not understand subnetting on a subnetted network.  However if you
prefer not to wire in knowledge of a gateway to each host, you can
also use this as your primary method for distributing routing.  This
method will always work for handling the subnet problem, but many
host can't be told to ARP destinations on other networks.

Bridge terminal servers are set up to use routing redirects.  You can
set a default gateway, and they obey ICMP redirects.  I don't know
anything about Bridge gateways, but I'd be real surprised if they
didn't issue redirects when appropriate.  Cisco terminal servers and
gateways can use either technique.  You can set a default gateway, and
they will obey ICMP redirects.  The terminal servers (but not
gateways, I think) will also issue ARP's when they can't find any
other way to get to a destination, even if it is on a different
network.  The gateways will issue redirects when appropriate, and will
also handle proxy ARP.

As far as I know, Berkeley Unix will not issue redirects when used as
a gateway, but it will obey them when used as a host.  It will also
not respond to ARP requests for other networks when used as a gateway,
but can be made to issue them when used as a host.  In my opinion,
this make Unix perfectly well-behaved as a host, but rules it out for
use as a gateway, except in a network where you know you will never
have any hosts other than Unix machines.  (These comments are
certainly true for 4.2.  It is always possible that 4.3 has added code
to issue redirects, though I haven't seen any sign of it in the
announcements and other discussions on the net.  I know that it hasn't
added code to do proxy ARP, even though a number of sites have had to
add it in order to bring up subnets.)

As to your original question about milking machine performance: Bridge
advertises their units for this purpose.  We have used it in a small-
scale way to front a PDP-11 and an IBM machine.  It works.  However
the CS-100's, at least, are very short on memory.  We have run into
problems with machines when certain combinations of things are done
with them.  E.g. when the same machine is used as a milking machine
and to drive a printer at high speed.  Bridge has been working on
these problems, and may have fixed it by now.  Performance on
connections when they are used this way is fine.  You can certainly
disable flow control.  I've never seen any problem with welcoming
banners, etc., but can't swear to the exact configurations we use.
We've never measured throughput, but terminals look like they are
running at full speed.  Cisco does not advertise their equipment for
use this way, but both they and we think they would work, at least up
to some number of ports.  There are things about the Bridge design
that might make them slightly better, except for the dratted memory
shortage.

scarter@caip.RUTGERS.EDU (Stephen M. Carter) (12/02/86)

In article <1612@batcomputer.tn.cornell.edu> swb@batcomputer.UUCP (Scott Brim) writes:

>Once again the only contenders I know of are Bridge, Cisco, and
>Encore.
>Is anyone using terminal servers in this mode?
>

We have a couple CS/100s acting as milking machines to some Prime 9950s
and a Comten.  We are about to replace the CS/100 with a cisco box for
the Primes.  In theory, the Bridge family has excellent parameters for
RS232 ports in milking machine style:
	
	- when a port is set "device=host", it will turn off the welcome
	  message and not allow the connected device to start a session
	  (this is handy of you ever seen an instance where two machines
	  start a tug-of-war with banner messages)
	- supports hardware handshaking in a number of ways, ie you should
	  have no problems with using full handshaking to the extent
	  that the user can't tell the difference between this and a real
	  telnet connection
	- allows sockets to answer to rlogin (does not implement rlogin,
	  bit will connect via telnet).  Also, you can sysgen a port to
	  answer any socket you wish, ie if you wanted to write a SMTP
	  server to reside on a rs232 port.
	- setting an IP address to either a single port or a defined group
	  of ports
	- the usual large selection of speed, parity, stop bits, flow control,
	  and all the rest (see C. Hedrick's article).

We are replacing the cs/100 with a cisco because there are problems.  The
worst design flaw of the cs/100 is the tiny buffers.  In cases where we
have all 14 ports of a box milking a host, we have cases where a connection
will break if the user attempts to type a large file without paging.
(hardware flow control will not help and we can't use ^S^Q because of
emacs). We see this most often on connections from a Unix machine to a port
and not so much from another Bridge port on the network.  We believe that
the Unix machines ask for a much larger window than another Bridge.  We
have made repeated requests to Bridge to help us out with no success.  The
marketing folks stand firm on one release per product and refuse to have a
version that is tuned for milking machines, or make use use of additional
memory on the newer versions of the hardware.  From what I have noticed,
this should only be a problem when you have a cs/100 and a number of ports
on that unit milking a host.  I assume that things would be better on a
cs/200.  Don't know about a cs/1.  We have two ports on one box connected
to a 11/44 where the remainder of the ports are office terminals with no
reported problems.  Newer versions of the software and firmware fix many
oddball bugs that show in this mode.  Get the lastest versions.

I'll post a message about our results of using a cisco box as soon as we
hook it up in about week or so.  Let me know it you want more info.


-Stephen Carter
uucp:   ...{harvard, seismo, ut-sally, sri-iu, ihnp4!packard}!topaz!scarter
arpa:   SCARTER@RUTGERS or SCARTER@RED.RUTGERS.EDU

medin@nike.uucp (Milo S. Medin) (12/03/86)

Bridge doesn't support RIP, but Encore Annex's do, and do it
quite nicely.  We have a couple here and it really simplifies
things when new nets come up.  You don't have to do anything...
They have lots of nice features, but I suspect this subject has been
beaten to death.  They also do reverse terminal serving.

Bridge doesn't do RIP, and last I heard, even their gateways
didn't do ICMP.  Which means default routes that depend on redirects
to work don't.  Maybe this has changed; anybody here have newer
information?

					Milo Medin
					medin@orion.arpa
					...!ames!medin

PS Usual disclaimers about this not being the opinion of the US
Gov't or the contractor I work for, etc...

narten@arthur.cs.purdue.edu (Thomas Narten) (12/04/86)

>In <7432@topaz.RUTGERS.EDU>, hedrick@topaz.RUTGERS.EDU (Charles Hedrick) writes:
>There are several problems with routed that make it unlikely that it
>will take over as a routing protocol.  One is that in large networks,
>the algorithms behind RIP can lead to instability.  It's unclear to me
>how many real networks have configurations that would lead to
>problems, but Cisco and similar companies would like their boxes to be
>usable to build networks on the scale of the Arpanet.  (NSFnet and a
>number of regional networks are creating a market for routers that can
>handle big networks.)  A more practical problem is that routed is
>largely a Unix-only protocol.  If all your machines and gateways are
>BSD, fine.  But we find it more practical to use other techniques to
>distribute routing.

Could you please elaborate on what "algorithms...lead to instability"? Is
this a flaw in the protocol, or would other algorithms also run into
similar problems? The fact that routed is found mostly in BSD systems is no
reason not to use it. I can turn the argument around and say that any other
routing algorithm available from other vendors is impractical cause Unix
machines don't run them.

>The most common ways to distribute routing information are routing
>redirects and proxy ARP.  To use routing redirects, you set up a
>default gateway for each host.  (It is common to have a convention
>that host number 1 on each subnet is a gateway.)  If that gateway
>turns out not to be on the best route, it will issue an ICMP redirect
>pointing you to the better route.  To use proxy ARP, you set things up
>so that your host issues an ARP request for every destination.  The
>appropriate gateway responds to the ARP with its own Ethernet address.
>Routing redirects are probably the most common.  Their use is
>described in the standards.  Every TCP/IP implementation that I know
>of can use them.  Proxy ARP is used primarily to handle hosts that do
>not understand subnetting on a subnetted network.  However if you
>prefer not to wire in knowledge of a gateway to each host, you can
>also use this as your primary method for distributing routing.  This
>method will always work for handling the subnet problem, but many
>host can't be told to ARP destinations on other networks.

I would have to dispute what you call as "most common". Routing redirects
and proxy ARPs are one way to manage routes, but all is not rosey. With
redirects, one starts with one gateway finds new and better routes cause the
gateway you are currently using tells you of a more direct path. If that new
route should go away, however, you have no way of finding out cause you
would need a redirect from the gateway that just went away. You may in fact
have another gateway that could still be used. RIP would detect gateways
that go away and either remove the route or find another gateway. In
summary, Redirects can be used to fix up incorrect entries, not to manage
routing tables. It certainly has as many and probably more problems than
RIP. 

Using "proxy ARP" may work some of the time, but it is not robust. ARP
entries are cached for about 20 minutes of non reference, hence there is no
guarantee that a route that no longer works will ever time out. If you have
only one gateway, that isn't a problem. Lots of sites have many. Besides,
using ARP/redirects for routing just pushes the problem of needing a routing
algorithm to the gateways. They cannot use this trick themselves. The
gateways will have to use some sort of algorithm (such as RIP) to get routes
straight between them. Again, having just one gateway simplyfies things.

The convention of host 1 being a gateway is a local assumption. We don't
follow that convention, and I would be surprised if many others do. Besides,
lots of sites have more than 1 gateway per net anyway. What do you do then?

>As far as I know, Berkeley Unix will not issue redirects when used as
>a gateway, but it will obey them when used as a host.  It will also
>not respond to ARP requests for other networks when used as a gateway,
>but can be made to issue them when used as a host.  In my opinion,
>this make Unix perfectly well-behaved as a host, but rules it out for
>use as a gateway, except in a network where you know you will never
>have any hosts other than Unix machines.  (These comments are
>certainly true for 4.2.  It is always possible that 4.3 has added code
>to issue redirects, though I haven't seen any sign of it in the
>announcements and other discussions on the net.  I know that it hasn't
>added code to do proxy ARP, even though a number of sites have had to
>add it in order to bring up subnets.)

4.3 BSD will issue and accept redirects if properly configured. Properly
configured means that it must have 2 or more "real" interfaces (loopback
doesn't count), otherwise it thinks it is a host. This is a wise decision,
as hosts aren't gateways, and shouldn't act as such. 4.3 will change routing
entries that are updated via redirects. It will, however, only do so if the
redirect came from the same gateway it is currently routing packets
addressed to the destination given in the redirect to. This prevents it from
installing redirects that come from a random host. 

-- 
Thomas Narten
narten@purdue.EDU or {ucbvax, ihnp4, allegra}!purdue!narten

lepreau@utah-cs.UUCP (Jay Lepreau) (12/04/86)

From "Changes in the kernel in 4.3 BSD":
  When a packet is forwarded using the same interface on which it arrived,
  if the source host is on the directly-attached network, an ICMP redirect
  is sent to the source. If the route used for forwarding was a route to a
  host or a route to a subnet, a host redirect is used, otherwise a
  network redirect is sent. The generation of redirects may be disabled by
  a configuration option, IPSENDREDIRECTS=0.

As Chuck notes, the "proxy arp" code is widely available and easy to
install; one place is from ut-sally in pub/subarp or subarp.shar.

gds@sri-spam.istc.sri.com (The lost Bostonian) (12/06/86)

In article <675@arthur.cs.purdue.edu>, narten@arthur.cs.purdue.edu (Thomas Narten) writes:
> I would have to dispute what you call as "most common". Routing redirects
> and proxy ARPs are one way to manage routes, but all is not rosey. With
> redirects, one starts with one gateway finds new and better routes cause the
> gateway you are currently using tells you of a more direct path. If that new
> route should go away, however, you have no way of finding out cause you
> would need a redirect from the gateway that just went away. You may in fact
> have another gateway that could still be used. RIP would detect gateways
> that go away and either remove the route or find another gateway. In
> summary, Redirects can be used to fix up incorrect entries, not to manage
> routing tables. It certainly has as many and probably more problems than
> RIP. 

The BBN 4.2 TCP/IP implementation pings the gateway listed in the
routing tables periodically.  When the gateway is marked "down" because
it does not answer its ping in m out of n tries (I forget the exact
numbers) the connection is retried using the "default" gateway.  This
will cause another round of redirects to be sent, until the original
route is good, or another path through the internet is found.  When a
gateway crashes which is the only gateway onto a network, communications
with that network are cut off until the gateway comes back up, but a
flurry of redirects is sent nevertheless.  There is a problem with too
much pinging contributing to network congestion, but this can be
alleviated by implementing pinging with exponential backoff.

4.3 BSD TCP/IP does not do any pinging.
 
> 4.3 BSD will issue and accept redirects if properly configured. Properly
> configured means that it must have 2 or more "real" interfaces (loopback
> doesn't count), otherwise it thinks it is a host. This is a wise decision,
> as hosts aren't gateways, and shouldn't act as such. 4.3 will change routing
> entries that are updated via redirects. It will, however, only do so if the
> redirect came from the same gateway it is currently routing packets
> addressed to the destination given in the redirect to. This prevents it from
> installing redirects that come from a random host. 

4.2 BBN TCP/IP would not enter a new route from a redirect into its
tables unless it came from a gateway which was already in its tables.

--gregbo

dcrocker@ubvax.UUCP (Dave Crocker) (12/08/86)

In article <1612@batcomputer.tn.cornell.edu> swb@batcomputer.UUCP (Scott Brim) writes:
>How about the other
>direction though ("milking machines")?  I'm talking about a situation
>where you TELNET to this box and it produces asynch out the backend to
>connect to hosts that don't support TCP/IP, or support it in a limited
>way.


Ungermann-Bass has support for TCP/IP Telnet access to hosts, in
the configuration that you describe.  Sustained, full-speed transfers
work fine.  Line speeds up to 19.2Kbps are supported.

Dave