You don't have a 1GB (gigabyte) network card. You may have a 1 Gbps
(gigaBIT per second). While a 1GB file might, at best, take 8 seconds
to transfer over a 1 Gbps connection, there is the overhead of adding
the protocol headers in each packet sent from source to target host;
however, it shouldn't take 10 times that to transfer the file - if the
file were entirely in memory in the source host and entirely copied into
memory at the target host - which is not the case here.
So what's the transfer speed of your hard disks at both source and
target hosts? Maybe you only get an effective 33 to 55 Mbps burst speed
(and continuous transfer speed would be less). You're not going to
transfer files over the network faster than you can read them from one
hard disk and then write them to another hard disk. The network
transfer could be a lot faster than the storage devices that end up
limiting how effective is the overall transfer rate. Despite the 4"
main service pipe into your house might deliver 200 gal/minute and the
1/2" water pipe to your bathroom might deliver 12-15 gal/minute, the
faucet might not deliver it faster than 2.2 gal/minute (ask someone
familiar with the plumbing codes to get more accurate figures but you'll
need to know supply PSI, city pump capacity, etc); these were just
examples).
You can using something like HD Tune to find out what are the
*sustained* (more important) and burst (less important) ratings for your
mass storage subsystem (hard disks, controllers, etc). Alas, the free
version only shows the speeds for reads, not writes. Say your source
hard disk has an average read transfer rate of 40 MB/s:
1 GB = 2^9 bytes
1 MB = 2^6 bytes
1 GB / 40 MB/sec = 2^9 bytes / (40 * 2^6 bytes/second) = 1000/40 sec =
25 seconds
That's just to read from the source disk. There will also be some
additional time to store the bytes into a buffer and add the protocol
headers to generate the packets sent out to the network. There's also
time to write to the hard disk on the target disk on the other host to
decode the packets and then write to that hard disk. Write speed is
less than read speed so let's say it took 30 seconds to write the 1 GB
file to the target hard disk; however, there is also overlap in the 2
separately controlled hard disks (while one is writing the other can be
reading and generating more packets). Benchmarks assume that no other
non-involved processes are whacking the CPU usage and you have
sufficient free system RAM. In other words, your source and target
hosts are assumed to be lightly loaded.
You won't get 1 GB/sec transfer with a 1 GB/sec NIC. One, it's not
gigabytes per second rated but gigaBITS per second. So multiply the
above numbers by 8 (8 bits per byte). Similarly, your 1 megabyte (MB)
file is 8 megabits (Mb). Two, that is its maximum rating under special
setup. Typically you'll get somewhere around 72% of the rated transfer
speed with multiple sources for traffic, and much less if you have lots
of other network traffic due to the time needed for conflict resolution.
Ethernet works by resolving conflicts. Ethernet is a Carrier Sense
Multiple Access with Collision Detection (CSMA/CD) protocol; read
http://en.wikipedia.org/wiki/Carrier_sense_multiple_access_with_collision_detection
and see the flow chart there. Only one host can be connected at a time
to one target host, and other hosts trying to concurrently access the
channel get a collision and are required to wait a random interval
before retrying. Multiple access is not the same as concurrent access.
That's why companies slice up their corporate network into subnets to
reduce collisions and reduce lag to improve overall throughput. We
don't know if you quiesced all other network traffic while you were
performing the file transfer. Maybe you were using a shared printer
over the network, or browsing the web, or receiving automatic updates to
Windows, Adobe Reader, anti-virus software, or something else.
Then you're going through the switch in the router. The Netgear DG834G
allows only 54 Mbps when using wireless connects (under ideal setup).
Just where did you see in its specifications that this router supports 1
Gbps bandwidth? I see only a 10/100 Mbps switch mentioned (one tenth of
what you claimed). From the manual at:
ftp://downloads.netgear.com/files/dg834g_reference_manual.pdf
it says, "The DG834G 54 Mbps Wireless ADSL Firewall Router provides
continuous, high-speed 10/100 Ethernet access between your wireless and
Ethernet devices." It doesn't say 1000 (Mbps) or 1 G(bps). Section A
lists the LAN interface as supporting 10BASE-T or 100BASE-Tx (10/100).
So now multiply the time to transfer your files by 10 from when you
previously thought you had 1 Gbps transfer speed.
You aren't delivering (reading) and receiving (writing) the bytes as
fast as you could transfer them over the network. Your 1 GB/s NIC is
faster than your, say, 40/30 MB/s (read/write) hard disks. You don't
have a 1 Gbps LAN switch in your router but just 100 Mbps. Just like
the pipe example above, you can't push 1000 gallons per minute through a
pipe that can only deliver 100 gallons per minute (and where the smaller
"pipe" won't let you increase the pressure). 100 Mbps is all you get to
push through the router no matter using NICs that are *capable* of
delivering more.
To get rid of the choke points, you'll need to get MUCH faster hard
disks (very expensive) or setup RAID and play with stripe sizing (but
probably still won't get over 400 MB/s and perhaps only 180 MB/s) in
trying to up the effective transfer speed of your mass storage system
along with getting a LAN switch (inside a router) that is actually rated
for 1000 Mbps (versus yours at 100 Mbps). Unless you want to do lots of
research on RAID setups to determine the best controller and drives that
give decent speedup, start with replacing your router.