[Vortex] Slow throughput over bandwidth-limited socket
sroberts at uniserve.com
Mon Apr 21 04:41:40 CEST 2008
On Sun, Apr 20, 2008 at 7:08 PM, Jens Alfke <jens at mooseyard.com> wrote:
> The problem's at a lower level. Because of the way BEEP windowing works,
> after the sender sends 4k of data, it has to wait to receive a SEQ frame as
BEEP doesn't specify a 4k window. It specifies 4k as the initial
MINUMUM size of the window/per channel. The window size can increase
dynamically, though I doubt most BEEP implementations will do that.
Vortex may allow you to set the initial window size. If not, try
setting it higher in code.
> acknowledgement. This introduces a round-trip delay between every 4k chunk
> of data sent. It doesn't matter how you send or interleave the messages.
Sender shouldn't have to wait. RFC 3081 says "large messages should be
segmented into frames no larger than two-thirds of TCP's negotiated
maximum segment size". MSS should be about 1500 bytes if you have
ethernet between the two hosts. So 4k should take at least 3 frames.
By the time the sender is sending the 3rd frame the receiver should be
acknowledging the first frames. After a few frames this should
stabilize to frames being acknowledged as fast as they are received,
and sender continuously being a few frames ahead.
Bit-blasting was an important feature of BEEP, see RFC3117, I don't
think the limitation is in BEEP. It might be in vortex.
More information about the Vortex