TCP provides a reliable, byte-stream, full-duplex
inter-process communications service to application
programs/processes. The service is
connection-oriented and uses the concept of
port numbers to identify processes.
Reliable
All data will be delivered correctly to the destination
process, without errors, even though the underlying packet delivery
service (IP) is unreliable -- see later.
Connection-oriented
Two process which desire to communicate using TCP must first
request a connection. A connection is closed when
communication is no longer desired.
Byte-stream
An application which uses the TCP service is unaware of the
fact that data is broken into segments for
transmission over the network.
Full-duplex
Once a TCP connection is established, application data can flow
in both directions simultaneously -- note, however, that many
application protocols do not take advantage of this.
Port Numbers
Port numbers identify processes/connections in TCP.