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.
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Support mailing list Support@freenetproject.org http://news.gmane.org/gmane.network.freenet.support Unsubscribe at http://emu.freenetproject.org/cgi-bin/mailman/listinfo/support Or mailto:support-requ...@freenetproject.org?subject=unsubscribe