Date: Wed,  7 Apr 93 04:30:13 PDT
From: Advanced Amateur Radio Networking Group <tcp-group@ucsd.edu>
Errors-To: TCP-Group-Errors@UCSD.Edu
Reply-To: TCP-Group@UCSD.Edu
Precedence: Bulk
Subject: TCP-Group Digest V93 #91
To: tcp-group-digest


TCP-Group Digest            Wed,  7 Apr 93       Volume 93 : Issue   91

Today's Topics:
                Problems with packet on a SUN (2 msgs)
                          Say it ain't so...
                    Utah Backbone/Network Services

Send Replies or notes for publication to: <TCP-Group@UCSD.Edu>.
Subscription requests to <TCP-Group-REQUEST@UCSD.Edu>.
Problems you can't solve otherwise to brian@ucsd.edu.

Archives of past issues of the TCP-Group Digest are available
(by FTP only) from UCSD.Edu in directory "mailarchives".

We trust that readers are intelligent enough to realize that all text
herein consists of personal comments and does not represent the official
policies or positions of any party.  Your mileage may vary.  So there.
----------------------------------------------------------------------

Date: Tue, 6 Apr 1993 18:18:16 -0400 (EDT)
From: jbj@USDesign.COM (Jeff Johnson)
Subject: Problems with packet on a SUN
To: tcp-group@ucsd.edu

Greetings --

I've been watching a TCP/IP problem and I'm not quite sure
what is wrong. I have a sun ELC running SUNOS 4.1.3 with the
ax25ip driver from ucsd.edu using a PK232. I have been trying to
ftp a file from another node without success. After watching the
packets using tcpdump-2.2.1, I think I understand what *IS* happening.
I thought that some of you might be able to explain what *SHOULD*
be happening.

The configuration is a little complicated.

  A(sun ELC)
  ^
  | 145.55, 1200b
  v
  B(NOS) <-145.55, 1200b-> D(NOS)
  ^
  | 145.55, 1200b
  v
  C(NOS)

My machine A can hear (ie has arp entries) all the other machines.
Machines B and D are near by, C is about 30 miles away.

Since I can hear C directly, machine A routes directly to C.
Machine C has a route to my subnet that goes to machine B.
Consequently, I *believe* I have an asymmetric path for packets:

 A -> C -> B -> A

I am able to initiate ftp transfers and do telnet connections, even
though the routes are non-optimal.

I am seeing a lot of fragmentation, however, when I initiate an ftp
transfer from C to A. Here are the maximum segment and window sizes
as best as I can tell:

  MSS WINDOW
 ----------------------
 A 960 24768
 B 196 754
 C 216 1560

I see 2 fragments, one of 196 bytes, the second of 20 bytes, confirming
that the return path is C->B->A and that the MSS is as described. I am
able to transfer 1 to 8 K succesfully from machine C to machine A before
the transfer hangs.

The transfers hangs soon after machine B starts ARP'ing for machine A.
Machine A does not ARP reply. Other simultaneous connections from A
to B or C are also hung.

Clearly, there is a *LOT* of room for tuning here :-). I am addressing
these issues, but any suggestions are gratefully received. I also
have the following questions:

1) Should machine B ARP for machine A in the middle of an ftp transfer?
I would have expected that the ARP cache would not timeout for an
active connection; this may be naive.

2) If machine A *CAN* ARP for machine B in the middle of an active
connection, why doesn't the AX25ip driver respond? I suspect there
may be a software problem there. BTW there is a problem using ax25ip
in promiscuous mode. It is possible to panic due to a NULL pointer
in ax_btom. The "quick" but possibly incorrect fix is to check for
a NULL pointer near the end of ax_btom:

  cp += count;
  len -= count;
  mp = &m->m_next;
 }
! if(ax->ah_pid== AX25PID_ARP && top != NULL) {
  top->m_off += sizeof(ifp); /* XXX ax_ax2etherarp() weak */
  ax_ax2etherarp(top);
  top->m_off -= sizeof(ifp);
 }

 return top;

I will post a more complete fix as soon as I can figger out what is happening.

3) Many of the parameters, including timeouts during connection and MSS,
on a virgin SUN TCP implementation are not appropriate for 1200b packet. 
Any suggestions about what to change and what to watch out for are appreciated.

73 de Jeff N3NPQ
jbj@USDesign.COM

------------------------------

Date: Wed, 7 Apr 93 0:04:20 PDT
From: Bill Healy <healy@moriah.ee.unr.edu>
Subject: Problems with packet on a SUN
To: tcp-group@ucsd.edu (tcp-group)

> 
> Greetings --
> 
> I've been watching a TCP/IP problem and I'm not quite sure
> what is wrong. I have a sun ELC running SUNOS 4.1.3 with the
> ax25ip driver from ucsd.edu using a PK232. I have been trying to
> ftp a file from another node without success. After watching the
> packets using tcpdump-2.2.1, I think I understand what *IS* happening.
> I thought that some of you might be able to explain what *SHOULD*
> be happening.
> 
> The configuration is a little complicated.
> 
>   A(sun ELC)
>   ^
>   | 145.55, 1200b
>   v
>   B(NOS) <-145.55, 1200b-> D(NOS)
>   ^
>   | 145.55, 1200b
>   v
>   C(NOS)

Well there's your problem, you are operating on a frequency reserved for
space operations, shuttle and MIR!  :-)

Bill

------------------------------

Date: Tue, 6 Apr 93 17:11:43 -0700
From: karn@qualcomm.com (Phil Karn)
Subject: Say it ain't so...
To: mg@bds.bds.com, tcp-group@ucsd.edu

I added the ibuf stuff some years ago in an attempt to reduce NOS's
interrupt latencies. Since malloc and free can get called either in a
task or at interrupt time, I had to disable interrupts in order to
protect the heap from corruption, and when these functions execute for
an appreciable time they can delay interrupts.

But it all just got too clumsy. Interrupt buffers were of a single,
fixed size, and there were only so many available. If you wanted more,
you had to take them away from the regular heap.  If you wanted a
bigger one in an interrupt handler, you had to make them all bigger
and waste the extra space when you only wanted a small one.

Also, developments like faster CPUs and the 16550A FIFO buffered UART
lessened the overall limits on interrupt latency in NOS.  And there
were other contributors to interrupt latency that I couldn't do anything
about (like certain DOS calls).

I also discovered, through some "stopwatch" testing, that the typical
execution times for free() (the slower of the two) were much less than
I had expected. And there were probably some other things I have since
forgotten that finally made me decide to rip them all out.

So I got rid of the ibuf stuff from my own code. It has apparently
lingered in other versions, however.

Phil

------------------------------

Date: Wed, 7 Apr 1993 10:10:35 +1000
From: makinc@hhcs.gov.au
Subject: Utah Backbone/Network Services
To: tcp-group@ucsd.edu

Marvin wrote;

> Lyndon Nerenburg wrote:
>>  software. Gigabit networks are about as useful as 1200 bps networks
>>  if there are no applications to layer on top of them."

> Agreed, but no applications are going to be written until a high-speed
> network is in place.

You have to have a reason to build the high speed network in the first
place.  It's fine for the techies to want to build a whizz bang network
just for the fun of it but unless you're blessed with having a couple of
millionaire techies around it takes user capital to buy the bits.

>Carl Makin wrote:
>> "eh?  Without applications, at *any* speed, packet radio is
>>  only a toy.  Asignificant part of what has made packet radio popular is
..
..
>>  Applications have to be developed *at the same time* as the network they
>>  will run on!"

> Carl, this is a good point. Now, I'm trying to push some high-speed
> hardware, guys are looking into the protocols, who's writing applications?
> I see nobody. (If I'm incorrect, flame away) Why? Nothing to run them on.

Nope.  I don't agree with that.  There are better reasons for the limited
number of applications available for packet.  The vast majority of users
are, if not computer illiterate, then "unsophisticated" in the full
capabilities of the equipment they are running.  The equipment is capable
of considerably more than the vast majority put it to but they have either
been conditioned to believe that what they have is all packet is, or that
the rest is for the techies.

> Sure not going to happen as long as we're stuck with the 1200 baud AX.25
> boondoggle.

I ran TCP/IP over 1 digipeater at 1200 baud and transferred megabytes of
information.  I had interactive sessions and mail running and we had a
small IP routing network running.  1200 baud isn't too slow for serious
work.  It's just a little tedious. :-)

> Case in point. Why do all the BBS's have to forward everything to every
> other BBS? Why not just propogate pointers the way Gopher does? It's
> because the current network (sic) can't do it, that's why.

Because forwarding to every BBS is more efficient and practical than a
worldwide distributed message database.  The network load would be
frightening if there were a million users trying to access messages across
a distributed network.  Even the internet couldn't cope.  At the moment the
BBS network is handling a million users worldwide and doing it via
300/1200/4800/9600 and some higher speed links, but mainly 1200 baud links.
 Now I don't think the current BBS system is perfect, but it does provide a
service that is in high demand worldwide.

Along with building our higher speed networks we should be looking at
providing services to replace the outdated services currently operational
such as the BBS network, DXCluster(ugh) ROSE and netrom nodes and such.


Carl.
(Soapbox off)
--
Carl Makin   (VK1KCM)  Systems Programmer
Internet:    makinc@hhcs.gov.au
Amprnet:     vk1kcm@vk1kcm.act.aus.oc
Work Phone:  +61 6 289-9443

------------------------------

End of TCP-Group Digest V93 #91
******************************
******************************