But there are several things to consider: First, just because a port/device is rated at 100 Mbps, and maybe even modulates the link to spec, doesn't mean that you will actually see the promised performance. A poor driver or interface is not uncommon, limiting the actual performance to something much less.
Next, it should be noted that hubs are, by design, "half duplex". They will transfer at full capacity in one direction at a time. Routers and switches will operate in "full duplex" mode (assuming they are set correctly and auto-negotiation hasn't set them to half duplex), meaning they can send in both directions at full capacity.
Finally, it is important to consider how you are measuring the capacity. Every device in the path can affect the apparent throughput. And if you are using a TCP-based data transfer client as your measuring tool, you will very likely have a very poor measure. TCP is affected by many different things including the tuning and configuration of the workstation it is running on. You should use a hardware solution like SmartBits, or a software solution like iPerf on a properly configured host, to flood the path properly.
This was first published in August 2003