  We introduce CTCP, a reliable transport protocol using network coding. CTCP
is designed to incorporate TCP features such as congestion control,
reliability, and fairness while significantly improving on TCP's performance in
lossy, interference-limited and/or dynamic networks. A key advantage of
adopting a transport layer over a link layer approach is that it provides
backward compatibility with wireless equipment installed throughout existing
networks. We present a portable userspace implementation of CTCP and
extensively evaluate its performance in both testbed and production wireless
networks.
