I have 09 iMac and had a very similar issue. Here are a couple things to try, which are mostly found already here, but this may be more succinct.
In 09/10 models, there appears to be a known issue in which the internet connection sleeps prematurely, as if you haven't had any activity, and pretty much stays that way. Sorry, my lingo probably isn't accurate.
This worked best for me: OSX by default already has a continuous ping but, well, apparently it doesn't always work on certain models. I manually set up a continuous ping (to Yahoo) using the Terminal function in Utilities. This takes up very little bandwidth and I pretty much left it going all day. I couldn't readily find a link for what I'm talking about but here it is.
I kept this in a text file on my desktop:
ping yahoo.com
64 bytes from 98.137.149.56: icmp_seq=91 ttl=52 time=27.806 ms
64 bytes from 98.137.149.56: icmp_seq=92 ttl=52 time=27.763 ms
64 bytes from 98.137.149.56: icmp_seq=91 ttl=52 time=27.806 ms
64 bytes from 98.137.149.56: icmp_seq=92 ttl=52 time=27.763 ms
Open up Terminal and paste that into it. You can see it sending the ping. Then just minimize it.
Interestingly, I haven't had to do this at all since updating to the latest OS.
Also, try changing the channel on your wifi. If you live near several other people with wifi there's a very good chance that you're all using a default channel setting that is crowding bandwidth. Many IT people say this shouldn't matter at all but internet performance noticibly improved after I did this. Then again, mine is relatively old compared to what's available now.
The only issue I've had of late came from a new Windows 8 laptop. It's default settings ate up nearly my entire wifi & internet connection until I muted most of it's 'functions'. I couldn't even get email on my iPod Touch..
Again, sorry I'm short on the tech lingo. Hope this helps you.