[comp.protocols.appletalk] MacTCP applications hanging

steve@bass.cc.utas.edu.au (Steve P. Andrewartha) (01/02/91)

I'm posting this on behalf of the NCSA Telnet(MacTCP) users on our
campus, and also for a developer trying to use the MacTCP Toolkit
XCMDS for HyperCard. Both parties are suffering from hanging Macs.
Mostly, the Macs are running System 6.0.5 and MacTCP 1.0.1

The basic problem is that MacTCP Telnet and HyperCard stacks that use
the MacTCP Toolkit XCMDS hang occasionally when talking, via the
Multigate (a LocalTalk/Ethernet gateway) to a terminal server on our 
local ethernet. I've used 'etherfind' and Peek to track the packets on 
the ethernet and LocalTalk sides of the Multigate, and discovered the 
following sequence of events -

1) The terminal server sends packets, mostly 1-10 data bytes and never
more than 200 data bytes, to the Mac, which acknowledges them correctly.
The terminal server consistently advertises a window size of 4096 bytes.

2) The terminal server sends a 5 data byte packet which appears on the
LocalTalk, but the Mac's next response indicates that the packet should
be resent (i.e. the acknowledgement field is equal to the sequence number
in the original 5-databyte packet).

3) The Mac's response appears on the ethernet, but is ignored for a time
by the terminal server, which continues to send data with increasing
sequence numbers. In this time, the Mac requests the lost packet two more
times. The Mac's window size, which had been dropping steadily from 4970
bytes down to 1604 bytes, increases sharply to 4226 bytes over the two
response packets.

4) Finally, the terminal retransmits a packet with the same sequence
number as the original lost packet, but this time it is 536 data bytes
in size. A second (sequentially contiguous) packet of 414 data bytes 
follows, after which it continues to transmit from where it left off.

5) After hearing nothing more from the Mac since (3), the terminal
server retransmits contiguous packets (536, 536, 536 and 310 data bytes)
followed by further retransmissions of 536 data byte packets with the
lost packet's sequence number. The Mac has hung.

If its relevant, the MTU on the Multigate is 586 for the zone.
Further along in the Peek dump, I notice that the Mac still responded
to a packet from the Multigate with "IPADDRESS:131.217.1.94" in it.

Can anyone suggest why the Mac failed to accept the retransmissions of
the lost packet, or why it stopped communicating at all? Does anyone else
have this problem with MacTCP?

---------------------------------------------------------------------------
Steve Andrewartha,                 Phone : (002) 202811 (work)
University of Tasmania,                    (002) 391283 (home)
Box 252C, GPO, HOBART,             Email : steve@bass.cc.utas.edu.au
TASMANIA, AUSTRALIA. 7001.