From: dhb@westford.ccur.com (Don Barstow)
Subject: SLIP+Telebit+Annex+Flow Control = Problem
Organization: Concurrent Computer Corp.
Date: Fri, 10 Apr 1992 17:24:43 GMT


I ported the PD 386 SLIP streams module to my machine (not
a 386, but still a STREAMS TCP/IP environment).  Between two
machines with a direct null-modem link at 19200, I have had no
problems.  But when I set it up over the phone line as seen in
this picture, I have a real problem.

______                     ______
|    |   ____       ____   |    |
| C1 |===|M1|-------|M2|===| C2 |-/\/\Ethernet
|    |   ----       ----   |    |
------                     ------

C1 is me on my machine at home.  M1 is a Telebit T2500, M2 is a T1600,
and C2 is really an Annex terminal server Ethernetted into all the
machines at work.  The connection established between the two modems
is V.32 with V.42 and V.42bis (I get the CONNECT 9600/LAP-M message
when it connects).  The M1-C1 link is locked at 19200, while the 
M2-C2 connection is locked at 38400.

I have no problem with rlogins or telnets.  My problem comes with file
transfers.  With hardware flow control set at both ends, after a little
while, I see my modem (M1) turn off CTS and leave it off forever.  This
is much more common if C1 is rcp'ing to C2 (really thru C2 to something on
the Ethernet).  Both directions seem worse with binary files than ASCII
files.

If I disable flow control at my end (I don't have control of the M2-C2
end), the protocols seem to get confused and my rcp just hangs.  Occasionally,
I see on a data line monitor something get sent to M2, but no response comes
back.  This, too, is more of a problem with binary data than ASCII.  I usually
^C the rcp, and then try pinging C2.  Usually this works once or twice, and
then stops working on the third or fourth try.  (By the way, I don't get any
overruns on C1 without flow control, but I don't know what the modem gets.)

Any ideas about what might be going on?

I try netstat -s, and don't get any real clues from that, but then I am not
a TCP/IP expert (so any help on what to look for there would be appreciated).

More specifically:

1. The RTS/CTS flow control only controls the computer to modem flow.
How do the modems regulate flow control between themselves over the phone line?
So is my modem (M1) turning off CTS because M2 is telling it to stop, and is
never restarting? Or is it just within the M1 to C1 connection that there is
a problem? Could the problem be due to a T2500 talking to a T1600 with V.32?
(i.e., bugs in either of those modems).

2. Does anyone know the MTU for the Annex SLIP?  I was using 1006 as in the
PD streams module, but incoming packets seem to be more around 256 bytes, or
a little less.  I dropped the MTU to 576 (512 + 64), and this seems to have
helped a little, but it still hangs up - it just takes a little longer now.
Also, does changing the input buffer size on the Annex port really help? (it
is currently 16).

3. Should I get flow control disabled or enabled at the Annex end? (it is 
enabled now). One of the Telebit documents from the net I was reading
(UNIX.setup) suggested trying no flow control on the line - let TCP do the
flow control.

I would really appreciate any help.  This has had me stuck for several weeks.
I think I practically have the registers all memorized on the T2500 since I
have been trying so many different combinations!

-- 
Don Barstow   (508)392-2444  fax (508)392-2492  dhb@westford.ccur.com
Concurrent Computer Corp             ...!{harvard,uunet}!masscomp!dhb
1 Technology Way, Westford, MA 01886 
Newsgroups: comp.dcom.modems