TCP, IP (and UDP) Protocol Suite

(See Dordal 1.15)

The intent behind this protocol was that, even if some of the network went down, it'd still work. They really focused on layers 3,4:

Recall from the OSI Seven Layer Model they argued so much about the higher layers that it really didn't matter. Here they focused on the lower layers where more of the decision needs to be made.

Let's look at each layer in depth.

Network to Host Layer (IP: Layer 3)

This is a Netowork-to-Host Layer or Network Interface Layer. Here the level 2 PDU is the frame, with header, data (and maybe trailer). But now at this layer (3) the PDU is called a datagram:

packet/datagram

A datagram (a level 3 PDU). A packet really is just the generic term for the payload of a level 3 PDU. Don't use packet since it's a generic term (we call many different things a packet).

What about layer 4 though?

segment

A segment is a level 4 PDU.

Just for completeness:

frame

A frame is a level 2 PDU.

Note that the TCP/IP Protocol suite does not really address or worry about these layers - they just assumes they work.

Now at this layer we have routing. It picks the path across the network. It's unreliable (when data is dropped on the wire, it doesn't care and leaves it be), and does error detection only on the header.

This layer is also Connection-Less (Protocol), and only runs on the hosts (not on the networking devices).

TCP: Transmission Control Protocol

Again, this is a segment now. It provides a reliable delivery of data:

reliable (networking)

We mean that something is reliable in networking when data within the payload needs to be sent and corrected to what it actually is.

The data is in-order and error free. It also does flow control between two devices.

It's also Handshake Protocol (Connection Oriented).

UDP?

Now UDP is the User Datagram Protocol, which is an unreliable layer 4. There's only optional error detection, and no flow control. UDP is Connection-Less (Protocol).
Now why use UDP? The reason is expense. Some things don't need UDP, like voice-calls. Another reason why some of the internet uses UDP is that TCP requires overhead, and thus requires hardware/software that uses it (it's more complicated, so more expensive).

Application Layer

This can really be anything, like HTTP(s), FTP, DNS, SNMP, SMTP, RIP, Ping, Traceroute, ...