In an off-list discussion in the protocols interest groups, I got involved in a rather deep discussion of packet rate, congestion control, network neutrality, jitter and choices in Internet design, which are actually quite interesting to share.
A little background here – one person asked if it was true (it is) that the cwnd (congestion window) internal stack variable doesn’t have an immediate impact on the network, because TCP updates its actual rate only once per RTT in the congestion avoidance phase, so the cwnd += SMSS*SMSS/cwnd update with each ACK is only an internal calculation. You got that?
Which went on to the question posed to me – “While I now believe that it would actually be ‘legal’ according to the spec. to implement a TCP sender like this (no one seems to say that you MUST saturate your window at all times)…”
Wait partner. Going back into the Internet Wayback Machine and chatting with some of the earlier worker bees, it turned out it actually started out this way, and congestion backoff fell right out of this.