Transmission Control Protocol/Internet Protocol (TCP/IP) is a suite of standard protocols for connecting computers and building networks. TCP/IP is network protocol software provided with Microsoft® Windows® operating systems that implements and supports the TCP/IP protocol suite:

Display name: TCP/IP Protocol Driver Service name: Tcpip Type: kernel Path: %WinDir%\System32\drivers\tcpip.sys

Core protocols of TCP/IPThis section covers:

Address Resolution Protocol (ARP)

Internet Protocol (IP)

Internet Control Message Protocol (ICMP)

Internet Group Management Protocol (IGMP)

User Datagram Protocol (UDP)

Transmission Control Protocol (TCP)


IP addressing and routingThis section covers:

IP addressing

Subnet masks

IP routing

The IP routing table

The TCP/IP modelTCP/IP is based on a four-layer reference model. All protocols that belong to the TCP/IP protocol suite are located in the top three layers of this model.

As shown in the following illustration, each layer of the TCP/IP model corresponds to one or more layers of the seven-layer Open Systems Interconnection (OSI) reference model proposed by the International Standards Organization (ISO).

The types of services performed and protocols used at each layer within the TCP/IP model are described in more detail in the following table.

Layer Description  Protocols

Application Defines TCP/IP application protocols and how host programs interface with transport layer services to use the network. HTTP, Telnet, FTP, TFTP, SNMP, DNS, SMTP, X Windows, other application protocols

Transport Provides communication session management between host computers. Defines the level of service and status of the connection used when transporting data. TCP, UDP, RTP

Internet Packages data into IP datagrams, which contain source and destination address information that is used to forward the datagrams between hosts and across networks. Performs routing of IP datagrams. IP, ICMP, ARP, RARP

Network interface Specifies details of how data is physically sent through the network, including how bits are electrically signaled by hardware devices that interface directly with a network medium, such as coaxial cable, optical fiber, or twisted-pair copper wire. Ethernet, Token Ring, FDDI, X.25, Frame Relay, RS-232, v.35

Transmission Control Protocol (TCP)Transmission Control Protocol (TCP) is a required TCP/IP standard defined in RFC 793, "Transmission Control Protocol (TCP)," that provides a reliable, connection-oriented packet delivery service. The Transmission Control Protocol:

Guarantees delivery of IP datagrams.

Performs segmentation and reassembly of large blocks of data sent by programs.

Ensures proper sequencing and ordered delivery of segmented data.

Performs checks on the integrity of transmitted data by using checksum calculations.

Sends positive messages depending on whether data was received successfully. By using selective acknowledgments, negative acknowledgments for data not received are also sent.

Offers a preferred method of transport for programs that must use reliable session-based data transmission, such as client/server database and e-mail programs.

How TCP works

TCP is based on point-to-point communication between two network hosts. TCP receives data from programs and processes this data as a stream of bytes. Bytes are grouped into segments that TCP then numbers and sequences for delivery.

Before two TCP hosts can exchange data, they must first establish a session with each other. A TCP session is initialized through a process known as a three-way handshake. This process synchronizes sequence numbers and provides control information that is needed to establish a virtual connection between both hosts.

Once the initial three-way handshake completes, segments are sent and acknowledged in a sequential manner between both the sending and receiving hosts. A similar handshake process is used by TCP before closing a connection to verify that both hosts are finished sending and receiving all data.

TCP segments are encapsulated and sent within IP datagrams, as shown in the following illustration.

TCP ports

TCP ports use a specific program port for delivery of data sent by using Transmission Control Protocol (TCP). TCP ports are more complex and operate differently from UDP ports.

While a UDP port operates as a single message queue and the network endpoint for UDP-based communication, the final endpoint for all TCP communication is a unique connection. Each TCP connection is uniquely identified by dual endpoints.

Each single TCP server port is capable of offering shared access to multiple connections because all TCP connections are uniquely identified by two pairs of IP address and TCP ports (one address/port pairing for each connected host).

TCP programs use reserved or well-known port numbers, as shown in the following illustration.

The server side of each program that uses TCP ports listens for messages arriving on their well-known port number. All TCP server port numbers less than 1,024 (and some higher numbers) are reserved and registered by the Internet Assigned Numbers Authority (IANA).

The following table is a partial list of some well-known TCP server ports used by standard TCP-based programs.

TCP port number Description 

20 FTP server (data channel)

21 FTP server (control channel)

23 Telnet server

53 Domain Name System zone transfers

80 Web server (HTTP)

139 NetBIOS session service