Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!gem.mps.ohio-state.edu!pacific.mps.ohio-state.edu!tut.cis.ohio-state.edu!ucbvax!D1.DARTMOUTH.EDU!c11234 From: c11234@D1.DARTMOUTH.EDU (Stan Dunten) Newsgroups: comp.protocols.appletalk Subject: Re: ATP timeouts Message-ID: <8910231712.AA16158@dartvax.dartmouth.edu> Date: 23 Oct 89 20:12:00 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 41 Van Jacobson (van@LBL-CSAM.ARPA) did some great work with stream (tcp) protocol timeouts. The copy I have came from Article 2361 of comp.protocols.tcp-ip. Basically he suggests measuring the average reply delay and it's variation then using a timeout of average+2*variation. When an reply comes in, the elapsed reply time, request->reply, is used in these equations: diff = reply time - ave ave = ave + diff/T1 dev = dev + (abs(diff)-dev)/T2 The timeout for later requests is ave+2*dev. He suggests a T1 of 8 and a T2 of 4. Also if a packet is lost (timeout goes off) he doubles the average. I have both modeled and used this. It works great. But this is for a stream protocol. The lumpiness of atp and the requirement to provide an 8 packet timeout are real pains. If atp ignored the callers time out time (what does he know) and computed its own by: Use the atp request -> first data packet time in the above equations to compute a timeout. Restart the timeout each time a good packet comes in. Your equation 32*(8*20+50) = 7 sec then becomes 32*(1*20+50) = 2.2 sec. My tracing of an AppleShare file transfer shows 16 short atp interactions plus those for the actual data. If most file transfers are less than 16 atp interactions (16*8*512 = 65K files) then most users will be doing short interactions. The Jacobson equations should react to this further reducing the 2.2 sec. Users scratching their heads will help still more. If you have software control of only one side of the atp interaction then: When making requests the preceding can be used. When responding to requests your software could: Only send 1 or 2 data packets even though more were requested. Setting the STS bit creates a 1 packet reply for use in the Jacobson equations. Early timeouts from the requesting end would be ignored. Disclaimer: We haven't tried any of the atp ideas. Good luck. all run spell*** "<*pass1"