TCP stands for Transmission Control Protocol.
It is a low level IP protocol that is used to send a reliable data stream from one machine to another.
The main concept behind TCP is to offer a simple reliable channel to stream data. To that end, it provides the following guarantees:
- Connection oriented. You have to first connect to the remote entity you wish to send data to or receive data from in order to start using it. This connection establishment takes a bit of time, and maintaining the connection eats up resources as well
- Reliability. If you send data over TCP, you are guaranteed that it either got delivered or the connection got closed. This is achieved by an acknowledgement mechanism in TCP
- Ordering. Data sent will be received in the same order it was sent. Sequence numbering and a windowing mechanism in TCP takes care of it
- Data sent over TCP is a single long stream of data. Splitting it into messages is up to the application by means of parsing and knowing the type of data being sent and received
- Flow control mechanisms. TCP will change the bandwidth it can eat up based on the status of the network
TCP is used by various signaling protocols, though not all of them. It is also used by HTTP which runs the internet as we know it.
The secured variant of TCP is TLS.