TCP provides reliable, ordered, and error-checked delivery of data between applications running on hosts communicating over an IP network. It uses three-way handshake for connection establishment, acknowledgments and retransmissions for reliability, flow control using sliding windows, and congestion control using slow start and congestion avoidance. TCP has timers for retransmissions, persistence, keepalives, and ensuring connections have terminated.