A better test is to use something like iperf to see what the underlying TCP limits are like: in the case of something like SMB or AFP, it can be particularly confusing if you haven't adequately accounted for buffering and async writes – I've seen copies which “completed” considerably before the network traffic stopped. If it is window scaling, adding the following to /etc/sysctl.conf should make a considerable differ…
net.inet.tcp.win_scale_factor
To something higher than the default of 3, 5-8 should work.