Skip to content

Latest commit

 

History

History
87 lines (71 loc) · 4.2 KB

README.md

File metadata and controls

87 lines (71 loc) · 4.2 KB

Networking 101

Figure A

Computer networking has always been a fascinating topic - it embodies many computer science concepts, and presents us with many challenges - some have been solved some have not! Computer networking is central to our lives - whether it is the mobile devices we use, our desktops, or the machine racks at data centers that power all the services we use on a daily basis.

Coming to understand computer networking can be overwhelming at first - and admittedly, it can still be daunting even for the seasoned network expert sometimes! However, computer networking is like math - once the basics are well understood, you can build on top of them, and easily move to the next level.

The progression from facing a problem to finding a solution is a fundamental learning step in building the correct mental image of how something works. The mental image is our compass in navigating any domain - whether it is to troubleshoot a problem, to improve it, or even to use it in conjunction with something else to build something bigger.

For a few months now, I have wanted to start writing a series of short articles explaining how the basics of computer networking work - starting from a very basic problem, sharing an industry solution, and then facing the next problem, and sharing another industry solution, and so on. If the story is told step by step, computer networking start coming together and falling into place like the pieces of a puzzle!

Only recently, I have started learning more about computer networking through a few investigations that came my way at my current job. I have researched and found good online resources, took notes, created diagrams, and solved some interesting networking mysteries. I am nothing close to being a networking expert, however, I have been wanting to share what I have learned with people and hope some will find it useful.

In a way, my being not an expert can be an advantage in keeping things simple and easy to understand for anybody with some basic computer knowledge. At least , that is my excuse for daring to write about networking :) I ask for forgiveness from the network experts out there and happy to make any corrections noted.

While the focus is on the concepts, I will be including hands - on commands to help the readers experiment and explore on their own. The intention is not to provide quick solutions or complete coverage of the available tooling.

This series is intended for somebody who is interested in understanding how computer networking generally works and does not have prior knowledge. You can think of it as a networking 101 class.

I will be using Azure Linux to demonstrate the networking concepts I am sharing. While the concepts are the same across different Linux distros, and across different OSes, the way one configures each distro/OS is different. If you are not using Azure Linux and would like to follow the command snippets I will be sharing, you will need to translate some of these commands to their equivalent ones on the target distro/OS you are using.

My choice of using the Azure Linux is simply based on my familiarity with it and me being part of the team that builds it at Microsoft.

Feedback is always welcome! While I will not be able to answer all questions individually, I will try my best to incorporate answers into the articles.

I will be publishing a new article once a week until I run out of topics. I hope you stop by every now and then to check out the new articles!

Let's start!