[mod.protocols.appletalk] a couple appletalk items

Tappan@G.BBN.COM (Dan Tappan) (11/03/86)

We've recently run into a couple of appletalk "subtleties" that it
may be worth recording to save other people some time.

1) A week or so ago I sent out a message about a problem we were
having communicating between a QMS-PS800 and a Kinetics FastPath. At
first it looked like the PS800 wasn't able to receive the Kinetic's
packets. To make a long story short: the final result was that there
was nothing wrong with either device. We had a short in one of the
connectors on our Appletalk cabling. The Kinetic's uses GND and +5 for
signaling levels (vs -5 and +5 for a Mac) which is fine on a working
net but not quite enough to drive a PS800 on the other end of a busted
one. The moral here is:
   When you put an appletalk cable together it's not enough to plug
   devices in and see if it works. It may appear fine but really be
   on the edge of collapsing. Scope it out.

2) For the second time I've been bitten by the "Lost TRel" problem.
The way ATP is designed the TRel packet which terminates a transaction
is sent unreliably. If it gets lost, and you are using "Exactly Once"
transactions, then your server will hang until the release timer goes
off (up to several minutes). The solution is to take a hint from
"Inside Appletalk" (ATP pp17,18) and design your protocols so that
there will only be one transaction outstanding from a single host.
Then never send a response synchronously, send it async and cancel it
if you get in a subsequent transaction from that host.
-------