(i) The three most important things the paper says:
1) DCCP’s decision to use the “latest packet received” for its ackno, and supplement with “Ack Vector” for summary information. Kohler et al made this decision since when considering protocols without reliability, the latest information is the most important. However since summary information is still important for congestion control, they added “Ack Vector” which is an additional cumulative history. This was an important design choice since this feature was the cornerstone for providing congestion control (Ack Vector) at the same time not loosing the importance of acks (used for security, out of order,…).
2) The use of “feedback” in the implementation of TFRC Congestion Control along with how they deal with trust issues with the receiver. Kohler et al designed this particular implementation of congestion control by using feedback from the receiver. This solution was keen enough to avoid the “seesaw” problem of TCP like approach, which is not useful for applications such as VOIP. Although in my opinion this implementation may not be good enough, since using information from the receiver doesn’t take into account other users of the same bandwidth (flow path), it still offers some smarter logic that can be leveraged by higher level protocols.
3) The carefully selected features that it deliberately left out of the design of DCCP which prevents it from making “assumptions” about higher level applications. However Kohler et al, didn’t do nothing, instead they provided features that better enabled higher level applications. For instance, their inclusion of “CCID-3” for congestion control can easily be used to add features on top of DCCP for flow control. I felt this was an important contribution because minimalism and simplicity help with adaptation and security respectively. Both of which are important for the success of the protocol.
(ii) The most glaring problem with the paper:
The biggest problem with the paper is the section on acknowledgements and saving sate information. It made the right statement when it said that “pure acknowledgements must occasionally be acknowledged”. However when asked the question of “infinite regression”, it simply said that it was sufficient to have a single acknowledgement. This response was not enough to answer the question of “lost acknowledgements”, considering the Byzantine soldier problem. Since lossyness is ok, I believe they should have added a “timeout” in which they clear the buffer of really old state information.
(iii) The future research directions of the work:
The future research of the work would be in the area of finding a better alternative that resolves the trade off between “short sequence numbers” vs “security”. At this time, using short sequence numbers (better performance) will leave a bigger window for attackers to inject data. Considering that, unlike UDP, there is a handshaking step for connection setup and end, perhaps there is some secret information that can be exchanged. And this “secret Perhaps adding some sort of “pseudo randomness