This blog post is the first in a new technical series called Walk Through, I will be walking through any books I’ve read or courses I’ve studied or projects I’ve implemented, it will be more of an illustration of my perception of these technical domains. I always believe that in order to make sure that you fully understood a certain topic after learning it, you need to be able to explain it to someone. That’s my motivation behind this technical series, that’s why your feedback will be more than welcomed for improvements.
The first walkthrough series is about Computer Networking Fundamentals, A massive technical domain with a lot of insights, I will dive to a certain level that’s -from my perspective- essential for a Software Engineer to know yet, it might be not enough though, in terms of what’s essential for a Network Engineer to know, I think they need a much deeper understanding of such insights to do their daily work properly.
Computers VS Humans
Computers communicate with each other a lot like how humans do. Take verbal communication as an example. Two people need to speak the same language and be able to hear each other to communicate effectively. If there are loud noises, one person might have to ask the other person to repeat themselves. If one person only somewhat understands an idea being explained to them, that person might ask for clarification.
When it comes to how human communicates, they follow a series of rules. And computers have to do the same. This defined a set of standards that computers must follow in order to communicate properly is called a protocol. Networking involves ensuring that computers can hear each other, that they speak protocols other computers can understand, that they repeat messages not fully delivered, and a couple other things, just like how humans communicate.
The TCP/IP Five-Layer Network Model
There are a bunch of models that help explain how network devices communicate, one of the most common models is the five-layer model.
It is a lot like what it sounds. It represents the physical devices that interconnect computers. This includes the specifications for the networking cables and the connectors that join devices together along with specifications describing how signals are sent over these connections.
Data Link Layer
This layer is also known as the network interface or the network access layer. At this layer, you will see the first protocols. While the physical layer is all about cabling, connectors and sending signals, the data link layer is responsible for defining a common way of interpreting these signals, so network devices can communicate. Lots of protocols exist at the data link layer, but the most common is known as Ethernet, although wireless technologies are becoming more and more popular. Beyond specifying physical layer attributes, the Ethernet standards also define a protocol responsible for getting data to nodes on the same network.
This layer is also known as the Internet layer. It’s this layer that allows different networks to communicate with each other through devices known as Routers. A collection of networks connected together through routers is an internetwork, the most famous of these being The Internet.
While the data link layer is responsible for getting data across a single link, the network layer is responsible for getting data delivered across a collection of networks. Think of when a device on your home network connects with a server on the Internet. It’s the network layer that helps gets the data between these two locations. The most common protocol used at this layer is known as IP or Internet Protocol. IP is the heart of the Internet and most small networks around the world.
Network software is usually divided into client and server categories, with the client application initiating a request for data and the server software answering the request across the network. A single node may be running multiple client or server applications. So, you might run an email program and a web browser, both client applications, on your PC at the same time, and your email and web server might both run on the same server. Even so, emails end up in your email application and web pages end up in your web browser.
While the network layer delivers data between two individual nodes, the transport layer sorts out which client and server programs are supposed to get that data. When you heard about our network layer protocol IP, you may have thought of TCP IP, which is a pretty common phrase. That’s because the protocol most commonly used in the fourth layer, the transport layer, is known as TCP or Transmission Control Protocol.
While often said together as the phrase TCP IP, to fully understand and troubleshoot networking issues, it’s important to know that they’re entirely different protocols serving different purposes. Other transfer protocols also use IP to get around, including a protocol known as UDP or User Datagram Protocol. The big difference between the two is that TCP provides mechanisms to ensure that data is reliably delivered while UDP does not. it’s important to know that the network layer, in our case IP, is responsible for getting data from one node to another. Also, remember that the transport layer, mostly TCP and UDP, is responsible for ensuring that data gets to the right applications running on those nodes.
There are lots of different protocols at this layer, and as you might have guessed from the name, they are application-specific. Protocols used to allow you to browse the web or send receive email are some common ones. The protocols at play in the application layer will be most familiar to you since they are ones you probably interacted with directly before even if you didn’t realize it. Such as HTTP, SMTP.
Five-Layer Networking Model Summed Up
You can think of layers like different aspects of a package being delivered. The physical layer is the delivery truck and the roads. The data link layer is how the delivery trucks get from one intersection to the next over and over. The network layer identifies which roads need to be taken to get from address A to address B. The transport layer ensures that the delivery driver knows how to knock on your door to tell you your package has arrived. And the application layer is the contents of the package itself.
OSI Networking Model
In addition to the five-layer model that I’ve just illustrated, there’re other models that exist. The traditional TCP/IP Model only has four layers, as it doesn’t differentiate between the physical layer and the data link layer, but is otherwise very similar to the five-layer model. The most well known other model is The OSI model. The primary difference between the five-layer model and the seven-layer OSI model is that the OSI model abstracts the application layer into three layers total.
Cables are what connect different devices to each other allowing data to be transmitted over them. Most network cables used today can be split into two categories, Copper and Fiber. Copper cables are the most common form of networking cable. They’re made up of multiple pairs of copper wires inside the plastic insulators. Cables allow you to form point-to-point networking connections. These are networks where only a single device at each end of the link exists. Not to knock point-to-point networking connections, but they’re not super useful in a world with billions of computers.
Luckily, there are network devices that allow many computers to communicate with each other. The most simple of these devices is a Hub. A hub is a physical layer device that allows for connections from many computers at once. All the devices connected to a hub will end up talking to all other devices at the same time. It’s up to each system connected to the hub to determine if the incoming data was meant for them or to ignore it if it isn’t. This causes a lot of noise on the network and creates what’s called a Collision Domain.
A collision domain is a network segment where only one device can communicate at a time. If multiple systems try sending data at the same time, the electrical pulses sent across the cable can interfere with each other. This causes these systems to have to wait for a quiet period before they try sending their data again. It really slows down network communications and is the primary reason hubs are fairly rare. They’re mostly a historical artifact today.
A much more common way of connecting many computers is with a more sophisticated device, known as a Network Switch, originally known as a Switching Hub. A switch is very similar to a hub since you can connect many devices to it so they can communicate. The difference is that while a hub is a layer 1 or physical layer device, a switch is a level 2 or data link device. This means that a switch can actually inspect the contents of the Ethernet protocol data being sent around the network, determine which system the data is intended for and then only send that data to that one system. This reduces or even completely eliminates the size of collision domains on a network. This will lead to fewer retransmissions and higher overall throughput.
Moving Bits Across the Wire
The physical layer consists of devices and means of transmitting bits across computer networks. A bit is the smallest representation of data that a computer can understand. It’s a one or a zero. These ones and zeros send across networks at the lowest level are what make up the frames and packets of data of the other layers. The takeaway is that it doesn’t matter whether you’re streaming your favorite song, emailing your workmate, or using an ATM, what you’re really doing is sending ones and zeros across the physical layer of the many different networks between you and the server you’re interacting with.
A standard copper network cable, once connected to devices on both ends, will carry a constant electrical charge. Ones and zeros are sent across those network cables through a process called modulation. Modulation is a way of varying the voltage of this charge moving across the cable. When used for computer networks, this kind of modulation is more specifically known as Line Coding. It allows devices on either end of a link to understand that an electrical charge in a certain state is a zero, and in another state is a one. Through this seemingly simple techniques, modern networks are capable of moving 10 billion ones and zeros across a single network cable every second.
Network Ports and Patch Panels
Network ports are generally directly attached to the devices that make up a computer network. Switches would have many network ports because their purpose is to connect many devices. But servers and desktops usually only have one or two. Your laptop, tablet or phone probably don’t have any. Most network ports have two small LEDs. One is the link light and the other is the activity light. The link light will be lit when a cable is properly connected to two devices that are both powered on. The activity light will flash when data is actively transmitted across the cable.
A long time ago, the flashing in the activity light corresponded directly to the one’s and zero’s being sent. Today, computer networks are so fast that the activity light doesn’t really communicate much other than if there’s any traffic or not. On switches, sometimes the same LED is used for both link and activity status. It might even indicate other things like links speed. You’ll have to read up on a particular piece of hardware you’re working with but there will almost always be some troubleshooting data available to you through portlights. Sometimes a network port isn’t connected directly to a device. Instead, there might be network ports mounted on a wall or underneath your desk.
These ports are generally connected to the network via cables ran through the walls that eventually end at a patch panel. A Patch Panel is a device containing many net ports but it does no other work. It’s just a container for the endpoints of many runs of cable. Additional cables are then generally run from a patch panel to switches or routers to provide network access to the computers at the other end of those links.
To be continued …
The more you learn, the more you realize how little you know.