Network coded TCP - a brief overview
Introducing coding in TCP has generally suffered from the problem that block approaches or rateless approaches are ill matched to the sliding window structure of TCP. The use of random linear network coding (RLNC) obviates the issues of structure that makes the use of both block and rateless codes difficult with TCP. In this talk, we argue that using acknowledgements on degrees of freedom rather than decoded packets provides the flexibility needed to combine RLNC and TCP. We show how such acknowledgements allow us to create a coded version of TCP. This type of TCP, which we term coded TCP (CTCP), can be analyzed using generalizations of standard techniques from TCP performance modeling. Besides allowing end-to-end coding, CTCP allows re-encoding without termination of the TCP connection (hence the usefulness of using network codes, which might be end-to-end, but can always be modified in the network). By the same token, it also allows for multiple re-encodings without the need to decode. Such a feature permits a very efficient generalization of CTCP to multiple path TCP (MPTCP). We conclude with some open areas of research.
Joint work with Joao Barros, Jason Cloud, Flavio du Pin Calmon, Kerim Fouli, Michael Heindlmaier, Minji Kim, Ashutosh Kulkarni, Doug Leith, Marie-Jose Montpetit, Ali ParandehGheibi, Giovanni Pau, Devavrat Shah, Shirley Shi, Jay-Kumar Sundararajan, Surat Teerapittayanon, Leo Urbina, Linda Zeger and Weifei Zeng.