Taking a Step Back

Take a look at the big picture of networks in distributed systems.

Now that we have examined each layer more closely, we should take a step back and look at the big picture.

At this point, we realize how much complexity underlies a seemingly simple request from your web browser to Google and how many moving parts are involved in this transfer. Of course, the same applies to most distributed systems nowadays since they work on top of the same or a similar network infrastructure.

The following illustration shows an example of a big network like the Internet and the layers that are involved at every step.

Note: The devices shown in the illustration above are end hosts, switches and routers. Switches are the one with only two layers shown next to them. Routers have three layers, while end hosts have five.

When we see layers missing from a node, then that means the node is agnostic to this layer. For example:

  • Switches will forward Ethernet frames without inspecting the network packet encapsulated within.
  • Routers will route IP packets without inspecting the TCP or UDP packets encapsulated within.

We hope it’s clear by now that each one of these layers provides a useful abstraction that we can leverage to build our applications.

However, it is still beneficial to understand the main mechanisms the layers use to build applications.

Knowing the services that each protocol provides is useful when we are evaluating different protocols to use for our application.

Knowing the mechanisms they use under the hood is useful for understanding the costs of these services and for troubleshooting issues when they arise.

Of course, this chapter only scratched the surface to give us a general idea of the main parts that are involved and the roles they play in this process.

Note: For the interested readers who want to gain a deeper understanding of the various mechanisms and techniques that are used by these protocols, there are a lot of good booksJ. F. Kurose and K. W. Ross, “Computer Networking: A Top-Down Approach (6th Edition),” Pearson, 2012. to learn from. They can also take our course Grokking Computer Networking for Software Engineers to learn more on this topic.

Get hands-on with 1400+ tech skills courses.