I think this problem may be specific to Airport Extreme cards. My iBook G3 recently died and was using a regular old Airport card and it never had this problem. I bought a circa 2004 iBook G4 with Airport Extreme to replace it and I have been struggling with this ever since. According to what I've read, this has been an issue since 10.4.10 (heckuva job, Apple!) I'm running 10.4.11 and I've seen lots of posts about how downgrading to 10.4.9 will solve the problem. I may try that next although I've been hoping to avoid that, if not step up to Leopard where this issue (from what I've read) still exists.
Other suggestions from Apple's support forums that I've tried have failed to work:
-
Set up a script to ping the router every 15 seconds. I set up such a script and it did not work at all.
-
Change energy saver settings. No particular settings seem to fix it.
-
Trash the network preferences file in /Library/Preferences/SystemConfiguration/. Didn't do squat.
-
Change router channel. Does it on every channel I've tried so far.
-
Leave the laptop plugged in (suggesting a power management issue may be to blame.) No difference whether it's plugged in or running on battery power.
-
Switch from WPA to WEP. Not a bit of difference other than making me far more vulnerable to hackers.
-
Turn on SSID broadcast (I tend to leave mine off.) No difference.
I've checked the system log after these disconnects and there is nothing being logged. It's literally like the Mac doesn't realize the connection is gone. I've left a ping running during these disconnects and the funny thing is that the ping times get very long just before the disconnect (up to 6000 ms.)
The only consistent thing I've noticed about this is that if I let the laptop sit long enough (say 10-12 minutes) the connection will come back on its own. I'm not sure what to make of that, but when I leave the ping running through the disconnect, the first few pings when it comes back are very high (again up to 6000 ms.) They settle back down to a normal ping time after the first dozen pings. Weird.
[edit: to add two other tests I did that I forgot to list.]