There are a number of factors related to this – and some of them are entirely out of your control – others can be at least accounted for.
Part of what’s missing in your initial description is exactly what you’re trying to measure.
Are you measuring peer-to-peer through an access point (with both sides wireless)?
Are you measuring wireless client to wired server?
Are there any other pieces of network “stuff” in-between?
That said, here are the other key pieces that you need to think about. I’m sure some of our other members can supplement these with their own experiences.
1) There is a small but measurable amount of overhead for session setup. But this should not affect your overall measurements as described. There’s something else going on to account for the disparity in your observations.
2) Can you verify that the link/network was entirely devoid of any other traffic during your measurements?
3) Were the two tests you describe run with the exact same equipment, operating systems, etc.?
4) Since you’re talking wireless, were the distances and relative placement of equipment involved identical?
5) 802.11b lives on the 2.4 gigahertz band, and is subject to interference from microwave ovens, cordless phones and other wireless installations. How “clean” of variables like this is your test environment? Really serious measurements like this are performed in a Faraday cage to completely block out external interference.
6) To address the TCP issue itself, you’re dependent on two primary factors. The MTU (Max Packet size effectively), and the sliding window. The purpose of the sliding window is to allow TCP to adjust itself to varying conditions. The basics of the mechanism boil down to how much information can be transmitted to the other end of the connection without the necessity for acknowledging it. This allows for a more continuous use of bandwidth in the sending direction of the data – as opposed to the acknowledging direction, and the retransmission of unacknowledged data.
7) There may also be some performance issues that are dependent on the chipsets used in the wireless equipment, the different drivers written by various vendors for the same chipset, the bandwidth of the wireless adapter, the bus speed of the system it’s plugged into, whether or not either system has to deal with virtual memory.
Once you can account for, and detail some of these conditions, then we might be able to take a better whack (that’s a technical term) at it.