Are you sure that's the issue? The backlog is in incoming, is it not?
Having dealt with moderately long delays push TB between timezones, have you set
your window size up? Set /proc/sys/net/ipv4/tcp_adv_win_scale to 5 or 6 and see
if that helps. You may have to go into /proc/sys/net/core and crank up the
rmem_* settings, depending on your distribution.
This allows the server to push a lot of data without an ack, which is what you
want, the ack will be delayed by the long latency, so this helps. You can
calculate how large to make the setting, but "make it bigger until tcpdump never
shows the window size < 2k" is the best way, even a bit larger than that wont
hurt, although it will take a bit of memory.
--
Bill Davidsen <davidsen@tmr.com>
"We have more to fear from the bungling of the incompetent than from
the machinations of the wicked." - from Slashdot
--