Underwater communications is a very challenging topic due to its singular channel characteristics. Most protocols used in terrestrial wireless communications can not be directly applied in the underwater world. A high bit error rate and low propagation delay make the design of reliable transport protocols especially awkward. In this paper, we first propose four schemes that combine forward error correction mechanisms at the bit and/or packet level to increase the reliability in a non-cooperative scenario. The broadcast property of the underwater environment allows us to extend them to a cooperative setting. Based on our analyses, we introduce ADELIN: an adaptive reliable transport protocol for underwater sensor networks. We suggest an architecture for implementation and compare our protocol to other schemes. We show that it succeeds in a better probability and energy tradeoff for both single- and multi-hop communications.