The purpose of this paper is to explore the impact that a misbehaving receiver can have on TCP congestion control.
The main contribution of this paper is to describe three potential attacks allowed by malicious receivers under the current TCP specification. In addition, the paper addresses a solution to these problems in which a receiver can only _reduce_ the data transfer rate by misbehaving, thereby eleminating the incentive to do so.
(1) TCP is vulnerable to attacks by malicious receivers, three of which
are: ACK division, DupACK spoofing, and optimistic ACKing.
(2) With simple modifications to the TCP protocol that, without changing
the nature of congestion control, allow the verification of what has
historically been an implicit contract between the sender and the receiver.
I would rate this paper as a 5 because it is a breakthrough which not only describes how one could be a malicious receiver (in less than 50 lines of code), but also how to design the protocol such that these attacks can no longer happen.
By actually hacking Linux, the authors implemented the three proposed "attacks" and proved that, pretty much across the board, various operating systems were vulnerable to "TCP Daytona" attacks.
The most important limitation of this approach is that there is still no way to prevent the receiver from concealing a loss, but the cumulative nonce idea does mitigate the effects of optimistic ACKs.
One lesson researchers should take away from this work is that a valuable method of research is to try to act as a "malicious user" and then fix the problems you were able to find as a result.