On Fri, 1 Sep 2006 01:46:35 +0400 Alexey Kuznetsov <[EMAIL PROTECTED]> wrote:
> Hello! > > > Expecting any performance with one byte write's is silly. > > I am not sure why you are so confident about status of ABC. > I missed the discussions, when it was implemented. Apparently, > it was noticed that ABC in its pure form does not make sense > with snd_cwnd counted in packets and there were some reasons, > why it still was not adapted. I implemented it but don't think ABC is the correct thing to be doing in all cases. If you read the RFC3465, the problem it is trying to address is that of small packets causing growth of congestion window beyond the capacity of the link. It makes a number of assumptions that may not be true for Linux: * ABC doesn't take into account congestion window validation RFC2861 already prevents most of the problem of inflated growth. * ABC assumes that the "true" capacity of the link is limited by byte count not packet count. > That's what I am sure: if congestion control causes delack syndrome, > it is difficult to advocate this congestion control scheme. > It must be repaired, if there is even the smallest possibility > to do this. > > > The first idea: > > Behaviour is broken, when we have < 2*MSS in flight. In that > case receiver falls to delack timeout and breaks ACK clock. > > thresh = tp->mss_cache; > > if (tp->snd_nxt - tp->snd_una <= tp->mss_cache) { > thresh = 1; > if (tp->send_head) > thresh = tp->send_head->len; > /* If send_head is empty, it disables ABC. > * If send_head is good mss sized segment, ABC is in work. > * If send_head is a small segment, it is half-way. > */ > } > > if (tp->bytes_acked < thresh) > return; > > Probably, do this only when TCP_NODELAY is set, but actually it does not > matter. If it is nagled/corked, cwnd will not be used/increased in any case. Maybe it makes better sense to add a bonus to bytes_acked on each ack to try and make small packets get an increase sooner, and try and make the cwnd * mss_cache estimate be more accurate. In the ideal case, during slow start with small packets cwnd should increase at the same rate that it would with larger packets. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html