ADC Home > Reference Library > Technical Notes > Legacy Documents > Networking >
Important: This document is part of the Legacy section of the ADC Reference Library. This information should not be used for new development.
Current information on this Reference Library topic can be found here:
|
Retries and tickle mechanism for nonAppleShare connectionsDate Written: 12/28/92 Last reviewed: 3/1/93 We're experiencing time-outs in the .MPP driver communications between our non-AppleShare server and applications that talk to it, when the connection is low-speed (for example, an AppleTalk Remote Access connection). We have no problems over local area nets or with AppleShare connected over our low-speed connection. What values should we use for the ATP timeOutVal and retryCount? The reason you don't see problems with AppleShare connections is that AppleShare uses the AppleTalk Filing Protocol (AFP) and AFP is built on the AppleTalk Session Protocol (ASP). ASP uses an infinite retry count on its ATP transactions and a tickle mechanism to detect broken session connections. If ASP's tickle mechanism finds the session connection is dead, it kills all outstanding asynchronous ATP calls with PKillSendReq and PKillGetReq. ASP clients don't have to worry about time-out conditions except when the network connection fails. The AppleShare workstation determines the timeOutVal to pass to AFP/ASP by using the Apple Echo Protocol. Here's how you could use the echo protocol to determine the timeOutVal for your program:
We recommend building a session protocol something like ASP on top of ATP so that you can use infinite retries and let a tickle mechanism tear down a broken connection. A tickle mechanism is also easy to implement. For example, to implement a tickle mechanism like the one AppleTalk protocols use, just start a VBL task with a vblCount of 2 minutes (120 ticks) on both ends of the connection. Every time you receive a packet of any kind from the other side of the connection, reset the vblCount to 2 minutes again. If the VBL task ever gets called, the connection was broken. To send the tickle packets, just call PSendRequest (or PNSendRequest) to send a small tickle request with an infinite retry count and a retry period of 30 seconds. Whenever you receive a tickle packet from the other side of a connection, simply ignore it (if you don't respond, ATP will keep retrying every 30 seconds, which is what you want). If you don't want to use a tickle mechanism, you'll have to decide how many times you want ATP to retry. The value you use should balance how long you want a user to wait for something to happen and how reliable the user's network is at delivering packets -- something that isn't at all easy to determine. For more information, see the Macintosh (Networking) Technical Note "AppleTalk Timers Explained." MPP stands for Macintosh Protocol Package handlerDate Written: 2/28/92 Last reviewed: 2/28/92 What does "MPP" stand for? We know it's a lower-level driver that contains code to implement ALAP (Link Access Protocol), DDP (Datagram Delivery Protocol), NBP (Name Binding Protocol), and RTMP (Routing Table Maintenance Protocol) stuff, but we're curious to the point of not being able to do any work :) Macintosh Packet Protocol? Multiple Problem Protocol? MPP stands for Macintosh Protocol Package handler. XPP stands for eXtended Protocol Package handler; ATP stands for AppleTalk (originally AppleBus) Transaction Protocol handler; DSP is Data Stream Protocol handler; LTM is Link Tool Manager; and MNP is Microcom Networking Protocol, implemented by AppleTalk Remote Access across the remote link. Hope you can get some work done now ;) RAM-based AppleTalk driver fixes Mac Plus PNSendRequest errorDate Written: 1/1/91 Last reviewed: 1/1/91 I get an odd address error when using PNSendRequest on the Macintosh Plus. The Macintosh Plus has version 19 of the .MPP driver. Is there is an INIT or something that patches the older Macintosh models with the newer drivers? Inside Macintosh suggests checking the .MPP driver version to see if the new driver is available (version >= 48). You need the RAM-based AppleTalk drivers on the older Macintosh models to use the calls documented in Inside Macintosh Volume V. The RAM-based AppleTalk driver is available as an AppleTalk System file, and you need to place it in the System Folder of your Mac Plus. X-Ref: "The AppleTalk Manager," Inside Macintosh Volume V PKillNBP aKillQEl pointerDate Written: 6/12/92 Last reviewed: 9/15/92 Where can I get the Q element pointer for a PLookupName call in order to call PKillNBP?
The pointer that you pass in the parameter block to
Each asynchronous lookup request along with other asynchronous requests to the
drivers get queued for processing. The Downloadables
|
|