A protocol that requires a 3-way handshake. This is a guaranteed delivery of data since TCP will have to require a reliable connection. It tracks every packet, ensuring they arrive in exact order they were sent, and will resend if they get lost.
We basically use TCP when we really cannot afford to have lost data. Such as sending a goal destination in ROS 2.