Ahh ... questo è dove è importante per un ragazzo del server capire cosa c'è sotto il cofano. Dato che ha due anni, immagino che l'abbia già risolto. Tuttavia, per i posteri o per chiunque abbia un problema simile, probabilmente si è imbattuto in questo
(Dimensione finestra TCP * 8 bit / RTT in millisecondi) = Velocità effettiva TCP massima in bps
Mentre potresti avere una rete Gigabit, un singolo flusso TCP non sarà probabilmente in grado di raggiungere tale livello.
Ecco una semplice tabella presumendo che tu abbia le dimensioni predefinite della finestra TCP 65535Byte in Vista
RTT 10 ms => throughput TCP = 52428000 bps = 52 Mbps
RTT 20 ms => throughput TCP = 26214000 bps = 26 Mbps
RTT 50 ms => throughput TCP = 10485600 bps = 10 Mbps
RTT 100 ms => throughput TCP = 5242800 bps = 5,2 Mbps
RTT 150 ms => throughput TCP = 3495200 bps = 4.3 Mbps
RTT 200 ms => throughput TCP = 2621400 bps = 2,5 Mbps
RTT 300 ms => throughput TCP = 1747600 bps = 1,7 Mbps
RTT 500 ms => throughput TCP = 1048560 bps = 1 Mbps
A 20 MB / sec o 160 Mb / sec la latenza di andata e ritorno è probabilmente dell'ordine di circa 3 millisecondi. L'unico altro modo per accelerare ciò è utilizzare gli ottimizzatori TCP che eseguono il de-dup sul cavo o uniscono i frammenti in pacchetti più grandi. Su una LAN che probabilmente non ti farà guadagnare molto per le spese. Se stai utilizzando dispositivi SoHo come Linksys o Netgear, la tua latenza viene probabilmente introdotta dalla mancanza di buffer condivisi sullo switch. Se si tratta di uno switch più grande come una porta 24, prova a verificare che i due dispositivi siano collegati allo stesso ASIC. Ciò contribuirà al ritardo della serializzazione, ma non di molto. Se potessi lasciarlo cadere a 2ms otterresti un boost fino a circa 31-32Mbyte / sec. Se si trovano su due switch diversi, non c'è molto che si possa fare senza nuovo hardware.