[Vortex] Slow throughput over bandwidth-limited socket
jens at mooseyard.com
Mon Apr 21 05:52:59 CEST 2008
On 20 Apr '08, at 7:41 PM, Sam Roberts wrote:
> BEEP doesn't specify a 4k window. It specifies 4k as the initial
> MINUMUM size of the window/per channel. [...]
> Vortex may allow you to set the initial window size. If not, try
> setting it higher in code.
Yup. I understand about the window size. But Vortex doesn't currently
have any way to change it. See my message earlier today, wherein I
describe how I plan to implement a vortex_channel_set_window_size
> 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.
It took me several readings of this paragraph and RFC 3081 to figure
out what I think you mean here. What you're saying (?) is that the
sender should send out very small frames (less than 1k), so that by
the time it fills up the current window, the receiver's had a chance
to send back a SEQ frame moving the window forwards. So the window
never fills up, and the sender never has to block.
I don't believe Vortex does this. From the log messages produced, it
appears to break large payloads up into frames the full size of the
window (4k), blocking after each one. After quickly skimming the code,
it looks like this is determined by the code around vortex_sequencer.c:
/* calculate how many bytes to copy from the payload
* according to max_seq_no */
if ((next_seq_no + message_size) > max_seq_no)
size_to_copy = max_seq_no - next_seq_no + 1;
size_to_copy = message_size;
But I'm not familiar with this layer of Vortex and wouldn't feel
competent to just wade in and start changing the algorithms. :/
So hopefully just increasing the window size will help enough for my
PS: Thanks a lot for the explanation!
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 1875 bytes
Desc: not available
Url : http://lists.aspl.es/pipermail/vortex/attachments/20080420/c6d20409/attachment.bin
More information about the Vortex