Transmission Control Protocol
It runs on top of the Internet Protocol - the internetworking layer in TCP/IP. That layer is unreliable - packets carried by it may be delayed, damaged, duplicated, re-ordered, or lost. TCP therefore has to use a number of mechanisms to built a reliable stream out of the unreliable substrate.
To do that, it uses checksums (to prevent and detect damaged data), sequence numbers (each byte sent over the channel is individually numbered), acknowledgements, timeouts (to look for missing acknowledgements), and re-transmissions (of data which was damaged, or never acknowledged, and thus was somehow lost).