After completing these activities you should be able to:
In this lesson, we discuss basic aspects of networking, and introduce the TCP/IP Stack, the most common networking stack employed across the globe. The TCP/IP Stack is based on the concept of layering, in which the various networking protocols are separated into distinct layers, each with a specific purpose.
The basic purpose of networking is provide a means for two remote entities to communicate with each other.
In subsequent lessons, we will explore some of these protocols, services, and utilities. For now, though, let's take a look at different types of protocols, and how they interact.
Here's an example dialog between call signs S7 and CC:
CC: "Sierra Seven this is Charlie Charlie, radio check, over." S7: "This is Sierra Seven, roger, over." CC: "Sierra Seven, Charlie Charlie, immediate execute, turn starboard niner, I say again, turn starboard niner, standby ... execute, over."
The different protocols that make up the Internet are organized into what's viewed as stacked layers. A quick note, the Internet and the web are not the same thing; we will clarify the distinction between both in the coming discussions. Before we define this model, called the TCP/IP Stack, we will consider an analogy.
Mail Analogy. In simple correspondence by snail mail, say you and Grandma are writing letters and cards, we can view the whole process as consisting of four layers:
------------------------------------- You Grandma ← Correspondent Layer ------------------------------------- mail man mail man ← Carrier Layer ------------------------------------- post office post office ← Depot Layer ------------------------------------- | | ← Shipping Layer +-- planes, trains, & autos --+ -------------------------------------
In this model, there are two important features:
As the letter travels down one side of the stack, over to the other side at the bottom layer, then up the stack on other side — these interactions are governed each by their own protocol. For example, to send a letter via the Correspondent Layer you need to follow the addressing, stamping rules, and you need to signal to Carrier Layer that the letter is ready for pick up (raise flag, drop in mail box). What happens after that doesn't matter to you, as long as the letter is not returned. To receive, of course, you just have to know to check your mail box. Once again, how the other layers operate is not something you, at the Correspondent Layer, need to know about. If you're operating at the Carrier Layer, you just need to know: where to pick up your bag of letters at the post office, how to read the addresses so you can deliver letters to mail boxes, and where at the post office to bring the outgoing letters you picked up from peoples' mail boxes along your route. The messages between the Correspondents, and whether the letters will be sent via train or ship by the Shipping layer are both irrelevant to you. And so it goes with the other layers as well. Any individual within this system can be identified as acting at one of these layers, whether it's Grandma, Mr. McFeely the Postman , or Jenny the C-2 Pilot.
The TCP/IP Stack – Networking Layers. In the mail example, we started with a system we already knew all about and understood well, and organized it into a layered protocol stack. Now, we'll start with the layered protocol stack organization for the Internet; we'll learn about and discuss the Internet based on the TCP/IP Stack. The layers in the TCP/IP stack are:
----------------- Application Layer ----------------- Transport Layer ----------------- Network Layer ----------------- Data Link Layer ----------------- Physical Layer -----------------
Application Layer. The Application Layer is about programs running on different hosts that want to communicate — like you and Grandma in our snail mail analogy. Our most familiar example of an application layer protocol is HTTP, the protocol that governs communication between web servers and browsers; example the communications between the Chrome web browser on your laptop and Facebook. Ideally, web servers and browsers need to know two things: the language they speak to one another (the HTTP protocol), and the protocol that governs interactions with the next layer down: the Transport Layer.
Transport Layer. To understand the Transport Layer, we should really understand what kind of service application-layer programs need. Let's focus on the application-layer programs we're most familiar with: web-servers and web-clients. Basically, a client needs to send a bunch of bytes to the server (its request), and then waits and around and ultimately receive a bunch of bytes from the server (the server's response). The server needs the reverse. This is the service browsers and web servers need the Transport Layer to provide. In the case of HTTP, the browser specifies the host it wants to connect to, the bytes it wants sent and waits around for an answer. In order to make a connection, send all those bytes, and receive the response bytes back, the Transport Layer has to on one side break the request/response message up into small pieces and wrap each piece up with an address to form a datagram, and on the other side reconstitute the received datagrams into a full message. Getting each individual datagarm from one host to the other is not the business of the Transport Layer. That's done by the next layer down: the Network Layer.
Network Layer. The Network Layer is responsible for routing packets across the Internet from the source host to the destination host through the various networks that make up the Internet. The protocol that governs it, the Internet Protocol (IP), defines what constitutes a valid addressz and what format the bytes that make up a packet have to follow. What's interesting is that IP makes no guarantees about delivering packets. Packets may get to their destination ... or not. A sequence of packets sent from one host to another may arrive in the proper order ... or not. The service is fundamentally unreliable. You're only guaranteed best effort delivery. (Same with MIDN. We prof's are not guaranteed that Midshipman X will learn the material, only that we'll get Midshipman X's best effort. We are guaranteed of that, right? ... right?) If some kind of guarantee of delivery and proper ordering is required, that guarantee becomes an extra duty of the Transport Layer.
Data Link Layer. The Network Layer routes packets between different networks. Actually getting the packet between hosts within the same network is the job of the Data Link Layer.
Physical Layer. The lowest layer is the Physical layer is wires and radio waves. Relatively little of what goes on in this course deals with this layer directly, so we won't say too much about it. In EC310 – Cyber II, you'll learn a lot more about it; oh, it's good to remember that the material you are learning in will be used in future courses.
At the source, the process is known as encapsulation. The Application Layer protocol has data, a message, that it wants to send. The Transport Layer protocol adds header information to the message, and sends the datagram to the Network Layer. The Network Layer protocol adds its header information, and sends the packet to the Data Link Layer. Next, the Network Layer protocol adds its header and footer information, and sends the frame across the Physical Layer. In the diagram below, the Data Link Layer (Link Layer) information is in the Frame Header and Frame Footer. The mechanics of the physical layer vary significantly by connection type.
At the destination, the process is reversed, and is known as de-encapsulation. When the frame arrives at the Data Link Layer from the Physical Layer, the frame header and footer are stripped away, and the packet is passed to the Network Layer. There, the Network Layer data are stripped away, and the datagram goes to the Transport Layer. The Transport Layer strips away the last of the header information, and passes the message to the Application Layer program.
TCP/IP Stack Summary. To summarize the upper three layers, which are most important to us in this course:
Physical Layer protocols are focused on transmitting and receiving digital data across a transmission medium. Details of issues that a physical layer protocol needs to address are beyond the scope of , and involve Electrical Engineering and Computer Engineering. As such, your Junior year course (EC310) run by the Electrical and Computer Engineering Department will focus on digital communications at the Physical Layer more. We introduce the basics of the Physical Layer, and discuss a few terms.
The Physical Layer focuses on converting digital data (bits and bytes) into a digital signal, and sending and receiving digital signals. A digital signal is simply an encoding of digital data for transmission in the electromagnetic spectrum. The digital signal is then sent (transmitted) across the transmission medium. There are three common mediums that digital signals are transmitted across: cables or wires (electricity through copper/silicon), fibre (light through glass), or wirelessly (radio frequency through and around space, air, ground, and water). In the Fleet and Marine Corps we use a mix of all three communication mediums.
Since the Physical Layer focuses solely on transmitting and receiving digital signals, any errors that arrise during transmission have to be addressed by a layer higher up the TCP/IP Stack. An example of such a Physical Layer error would be interference you hear on an over the air radio station (i.e. not a sateliite radio station) in a car when you are near the outer range of coverage. Another example would be active jamming of a frequency by an advsersary.