How can I speed up data transfer between local computers on a WiFi network?
The best I've ever seen for pure TCP throughput over 802.11g is maybe 30 mbits/sec in an ideal RF environment (strong signal, no interference), and that was with a client and AP using chipsets from the same vendor, allowing them to do frame bursting tricks to maximize throughput. The other endpoint of the TCP connection was a wired Ethernet machine cabled into a LAN port on the AP.
Given real-world RF conditions (less than ideal signal and noise), and if both your machines are wireless (causing the bandwidth to be halved as Chris Nava mentioned), then the roughly 8 mbit/sec throughput you're seeing is about what one would expect out of a property functioning b/g network. The biggest win available to you would be to wire in one of your machines via Ethernet, for an instant roughly doubling of your throughput. Other than that, you could spend a lot of effort squeezing another 10% out of it by using more efficient protocols, moving your devices closer to your AP, choosing a channel with less interference, etc.
You should consider upgrading your Wi-Fi gear rather than suffering along on nearly decade-old tech. 802.11g is from 2003, and it isn't any faster than 802.11a from 2002. Since late 2009 we've had 802.11n 3x3 MIMO (3 spacial streams) systems, with 40MHz-wide channels, capable of signaling rates up to 450mbps. That's a potential 833% speedup over 802.11g. The best consumer APs are usually simultaneous dual-band now as well, so you can leave older gear and smartphones and things to stay on 2.4GHz where they have to compete with Bluetooth and wireless game controllers and microwave ovens and baby monitors and webcams and everything else, and you can move your important laptops and desktops to the less congested 5GHz band, improving throughput for the most throughput-intensive applications.
First, transferring via two WiFi connected machines HALVES your bandwidth because the data must be transmitted to the access point and then back out to the client over the same channel. Connect one of the machines via wire to the access point to double your available transfer bandwidth.
Then, use a different protocol. SMB (AKA Windows file sharing) is very slow compared to alternatives.
Finally, try transferring fewer files by zipping folders on the host and unzipping on the client after transferring. Each file costs some overhead (sometimes far more than actually transferring the data of a small file) so transferring many files as a single (not to mention compressed) archive can have large benefits.
The bandwidth available as supported by your router is shared among all computers in the area using the channel your access point/router is listening on. If the router supports 150Mbps, for example, there is at most 150Mbps total available for all devices to try and claim.
This means that if you want to transfer between two devices on the same router, the best you can hope for is half of that, as one device will first send to your access point, and the access point must then re-send each packet from there to the intended device, and they have to share the available airtime. And in fact it's even worse than that, as wireless technologies don't have a mechanism for perfect time sharing. One device may try to transmit a packet while the another is still active, and force both devices to re-send for that packet. In networking terms, we say wireless cells are unswitched and half-duplex. Other non-computer interference sources can make things even worse. Also, it runs in inverse proportion to your connection speed. If a single device has a weak signal such that it can only connect at 11Mbps instead of 150Mbps, and fills up that 11Mbps with data, it's using up all the potential 150Mbps of air time.
When all is said and done, you're lucky to even get the 8Mbps on shared wireless that you're reporting. If you really care about performance, go wired or go home.
But to get the best you can out of the wireless connection you have, there are a few simple things to look for:
- Turn off 802.11b
- Set your router for the least-used channel in your area
- Use the 5Ghz band if possible
- Avoid 2.4Ghz cordless phones, microwaves and running showers
- Get closer to your access point
- Use 40Mhz wide channels if your device supports it.