Comment Re:stupid non network guy question (Score 1) 401
Like someone else said, these are called NACKS. In theory, this would be a good way to do it but I think there are implementation problems. Also, using regular ACKS doesn't incur as much overhead and is useful in other ways:
1) ACKS are cumulative, not one for every packet. TCP sends packets in groups (windows) and the entire group gets acked at once if received correctly. (note: varying the size of the group/window is how the send rate is adjusted which is what started this whole discussion)
2) ACKS can often be piggy-backed onto data being sent in the opposite direction and in fact every TCP frame has a field especially for this purpose. This greatly reduces the number of dedicated ACK packets that need be sent.
3) The congestion control algorithms that are in use now (and are used by FAST) work by having congested routers set bits in the ACK packets going back to the source. When the sender sees these panic bits, it slows down. This requires a steady stream of packets going back to the sender which you can't depend on with a pure NACK approach.
1) ACKS are cumulative, not one for every packet. TCP sends packets in groups (windows) and the entire group gets acked at once if received correctly. (note: varying the size of the group/window is how the send rate is adjusted which is what started this whole discussion)
2) ACKS can often be piggy-backed onto data being sent in the opposite direction and in fact every TCP frame has a field especially for this purpose. This greatly reduces the number of dedicated ACK packets that need be sent.
3) The congestion control algorithms that are in use now (and are used by FAST) work by having congested routers set bits in the ACK packets going back to the source. When the sender sees these panic bits, it slows down. This requires a steady stream of packets going back to the sender which you can't depend on with a pure NACK approach.