I have a linux server connected to a small netgear DG834G box using the 100Mbps ethernet switch on the back. It is connected to a Windows XP Workstation via this switch using cat5 cables. Both the linux server and the xp workstation detect their links up at 100Mbps but when I am moving files from the workstation to the server I get appallingly slow speeds as follows:
Code:
# ifstat
       eth0
 KB/s in  KB/s out
  808.35     38.22
  763.30     35.93
  226.73     11.50
  964.94     45.11
  935.02     43.78
  995.17     46.58
 1214.59     56.95
  286.66     14.01
  841.36     39.43
  955.50     44.71
  995.30     46.52
  973.76     45.58
  660.65     31.22
  320.71     15.59
  956.05     44.53
  779.64     36.56
  760.13     35.66
  516.97     24.56
  423.88     20.24
  858.45     40.23
  785.63     36.84
 1011.87     47.35
  983.24     46.02
The traffic rate should be many multiples times this speed, so why isn't it? If the link wasn't up properly then surely ethtool would say half duplex or show a reduced speed but it doesn't so I'm not sure why throughput is so appalling.

Any suggestions on how I can improve this and make it work properly are most appreciated.