The TCP/IP Model#
The protocols are divided among multiple "layers", each describing the function or objective of a protocol that operates at that layer. The confusing thing about this layer system is there are different definitions:
- RFC 1122, Internet STD 3
- Cisco Academy
- Arpanet Reference Model
- OSI model
The "OSI model" is by far the most commonly referenced among them all, but I'm going to be using the much simpler, easier to work with TCP/IP model, which looks like this:
- Link Layer
- Internet Layer
- Transport Layer
- Application Layer
Just four layers to remember and work with, and we're not even going to bother with the "Link Layer" as you simply won't need to work with it in a public Cloud based environment. That being said let's briefly review each layer so that we can understand its functional and objective in the model.
The part of this that reads, "The link includes all hosts accessible without traversing a router" means everything on the local network segment or the LAN (Local Area Network.)
At home you likely have a router that your computer connects to, your mobile phone, your tablet, and so on - they're all connected to your own LAN. If they talk to each other then they're operating at the Link Layer because they do not need to "leave" your LAN (which requires a router.) If they want to talk another system on the Internet, say Google, then they need to leave the Link Layer, via a router, and enter the Internet Layer.
This concept doesn't really translate to any of the work you're going to be doing in public Cloud environments as the Link Layer is abstracted away for you. And although you will work with subnets, which work at the Link Layer, you'll treat them more as "containers" of systems at the network level versus the physical nature the Link Layer refers to.
So now we're talking about one network talking to another network. Even though your local computer, mobile phone, tablet, etc. do not represent an entire network (they're a node on the network) they are inside of a network (a LAN.) Because you're trying to talk to another node inside of another network, you're now talking about internetworking which is how the entire concept of the (public) Internet works.
By trying to talk to another computer in another network, you need to route the connection between the two networks. We use IP addresses to achieve this and that's why we talk about IPv4 and IPv6 later in this chapter.
This is where TCP, UDP and QUIC come into the picture. At this layer we're talking about how we "wrap" up data inside of TCP, UDP and QUIC segments and then send them to another machine using the Internet Layer. This layer is "envelope" that you put your letter inside of, and the Internet Layer is the address you write on the front.
In my opinion this is the layer where all the fun happens. It's this layer where we find HTTP(S), DNS, SSH, TLS/SSL, IMAP, POP and all the other protocols we use daily as we consume Internet facing services like Google and Reddit.
This is the layer where most of your work gets done, as the lower level stuff doesn't change all that much or that often. Instead as an engineer working in the public Cloud space you'll mostly be setting things up to work with these higher level protocols.