TCP (Transport Control Protocol)

In this section, we really do not give TCP enough space and detail, but it is critical to understand TCP whenever talking about IP.  TCP is a layer 4 protocol that runs hand-in-hand with the layer 3 IP.  

In fact, many people refer to them as a pair, or TCP/IP.  It's primary function is to take the connectionless IP packets, and add information to them to make their transport "reliable". 

A combination of two packet-switching protocols (Transport Communications Protocol and Internet Protocol) that forms the basis of all Internet communications.  At the sending end, TCP hands it's packets down to the IP layer, and IP headers with routable addresses are added.

TCP is the protocol used to break messages handed down by the Session layer, into packets in the sending computer, and also to reassemble them in the destination computer.

TCP on the receiving computer keeps track of the packets as they are received. Since all the consecutively-numbered packets that make up the original file might have taken different routes across the internet, some get delayed or lost. If TCP on the receiving computer detects that the next packet has not arrived, it notifies the sending computer to ask for another copy of the packet. If nothing is heard from the sender, the receiver asks again and again at increasing intervals until it decides to give up and break the connection. TCP is so highly developed on the Internet that it can be used to establish functioning connections that work even if half the packets get lost on the way.

IP is the protocol that routes packets across the Internet from source to destination.

Each IP packet contains the data to be transmitted, plus the sender's and recipient's IP addresses.

The checksum is called CRC (Cyclic Redundancy Check).  CRC takes the sum of all the 1s in the packet's data and adds them together. The result is stored as a hexadecimal value in the packet. The receiving device adds up the 1s in the payload and compares the result to the value stored in the trailer. If the values match, the packet is good. But if the values do not match, the receiving device sends a request to the originating device to resend the packet.