The TCP service is connection-oriented. When
communication is desired, the initiating TCP first sends a special
connection request segment, and awaits a
connection response. When it arrives, the
initiating TCP confirms connection establishment
and begins the reliable communications described earlier.
The connection is actually initiated by an Application
Process (or program in execution), which requests TCP to
establish connection to another application process running on a
remote edge system. In general, the remote process is already
waiting for connections.
Big Idea #6
TCP uses an abstract address called a Port
Number to facilitate communications between processes. A
process which is waiting for incoming connections is said to be
"at" a particular port number. A TCP connection is
made to a specific port because we have arranged, a priori,
for the desired service to be provided at that port.
Ports are the addresses of TCP. We can think of them as an adjunct
to IP addresses: the IP address specifies a particular computer,
whereas the port number specifies which process, running on that
computer, we wish to communicate with.
Terminology: A process which is waiting for connections "at" a
particular port number is said to be a server
process. A process which initiates a connection to
a server is called a client process. It's
important to note the specific meaning of these words in the
context of TCP/IP.