Today’s Internet is arguably the largest engineered system ever created by mankind, with hundreds of millions of connected computers, communication links, and switches; with billions of users who connect via laptops, tablets, and smartphones; and with an array of new Internet-connected devices such as sensors, Web cams, game consoles, picture frames, and even washing machines.
Given that the internet is so large and has so many diverse components and uses, is there any hope of understanding how it works?
Are there guiding principles and structure that can provide a foundation for understanding such an amazingly large and complex system?
And if so, is it possible that it actually could be both interesting and fun to learn about computer networks? Fortunately, the answers to all of these questions is a resounding YES! Indeed, ,it’s my main aim in this article to provide you with a modern introduction to the dynamic field of computer networking, giving you the principles and practical insights you’ll need to understand not only today’s networks, but tomorrow’s as well.
The first tutorial presents a broad overview of computer networking and the Internet. Our goal here is to paint a broad picture and set the context for the rest of the tutorials, to see the forest through the trees. We’ll cover a lot of ground in this introductory tutorial and discuss a lot of the pieces of a computer network, without losing sight of the big picture.
We’ll structure our overview of computer networks in this tutorial as follows. After introducing some basic terminology and concepts, we’ll first examine the basic hardware and software components that make up a network. We’ll being at the network’s edge and look at the end systems and network applications running in the network. We’ll then explore the core of a computer network, examining the links and the switches that transport data, as well as the access networks and physical media that connect end systems to the network core. We’ll learn that Internet is a network of networks, and we’ll learn how these networks connect with each other.
After having completed this overview of the edge and core of computer network, we’ll take the broader and more abstract view in the second half of this tutorial. We’ll examine delay, loss, and throughput of data in a computer network and provide simple quantitative models for end-to-end throughput and delay: models that take into account transmission, propagation, and queuing delays. We’ll then introduce some of the key architectural principles in computer networking, namely protocol layering and service models. We’ll also learn that computer networks are vulnerable to many different types of attacks; we’ll survey some of these attacks and consider how computer networks can be made more secure. Finally, we’ll close this module with a brief history of computer networking.