TCP Self-clocking Allen B. Downey Olin College Although Jacobson described TCP self-clocking in 1988, subsequent models of TCP have ignored it. As a result, a lot of what we think we know about TCP turns out to be wrong. If there is enough buffer space at the bottleneck link to support self-clocking, the following statements are all false: 1) During TCP slow start, the congestion window grows exponentially. 2) In steady state, the congestion window grows linearly between drops. 3) When the congestion window exceeds the bandwidth-delay product, packets get dropped. 4) In steady state, TCP uses additive-increase, multiplicative- decrease congestion avoidance. 5) In steady state, throughput is proportional to 1/sqrt(p), where p is the drop rate. 6) When connections share a bottleneck, they get throughput proportional to 1/rtt, where rtt is the round trip time. 7) After slow start, TCP is slow to discover available capacity. I will present a simple network model that allows us to correct these statements. I will also present measurements that show that self-clocking is common in the Internet, and that when it occurs, the predictions of the model are correct.