On Friday 28 January 2011 23:04:27 Phillip Hutchings wrote:
> >> I was referring to Freenet's custom congestion control. There is no
> >> resending of UDP packets, unless Freenet pro-actively resends it.
> > 
> > Right, and what we do is we resend packets if they are not acknowledged 
> > after a few round trips. Which is pretty much what TCP does.
> I'm not entirely sure how Freenet does it, but it doesn't sound quite the 
> same as TCP.
> Disclaimer: I'm not an expert on TCP
> In TCP congestion control is handled by the window size, the exponential 
> backoff algorithm and estimated round-trip time.
> The window size controls how many bytes can by 'in-flight', that is sent 
> without an ACK received. This is advertised by the receiver as part of the 
> handshake.
> If an ACK isn't received after a given delay the packet is resent and the 
> window is decreased, say by a power of two. When the ACKs are received in a 
> timely fashion the window size is increased linearly. This stabilises the 
> transmission rate fairly well.

Right. We do exactly this, in the link-level AIMD's. However, the congestion 
window at the moment operates at a relatively high level, not directly 
controlling the packets in flight, but only controlling the 
queued-plus-in-flight block transfer messages (not all packets). This is one of 
several things that needs to be fixed.
> TCP is more complex than this brief summary, as it also implements a 
> slow-start algorithm and makes an effort to avoid hitting backoff by the 
> linear increase.

We also have slow start, and the RFC-specified hack to avoid increasing the 
window size when we're not filling it. But we need the window to be a true 
window that applies to all packets, and at the transfer level, not to block 
transfer messages only.

Attachment: signature.asc
Description: This is a digitally signed message part.

Support mailing list
Unsubscribe at http://emu.freenetproject.org/cgi-bin/mailman/listinfo/support
Or mailto:support-requ...@freenetproject.org?subject=unsubscribe

Reply via email to