A Hacker's Greatest Weapon : Exploring the Art of Networking

The closest I've gotten to a hacker is through the television. You know, there was this Johnny in the Korean Movie series - A Man Called God. What fascinated me about Johnny was his typing speed and ability to bypass any cybersecurity protocol. However, his death revealed something to me, something that a man's typing speed and genius cannot afford. It's the joy and fearlessness that comes with doing the right thing. The Cyberspace bleeds and pleads for security amidst the daily increase in cyber hacking.

This article deals with the following:

  • What is Networking?
  • The OSI and TCP layer Models
  • What is an Internet Protocol?
  • What are IP addresses?
  • How to get your system's IP address.

cookie-the-pom-gySMaocSdqs-unsplash.jpg

What is Networking?

Imagine you love someone but you don't know how to confess your feelings to the person. Your surest bet would be either striving to win such a person as a friend or smuggling your way into such a person's circle of influence. In all, the goal is to achieve that which your feelings long for without paying homage to your fears.

That process of trying to gain traction in the sight of your lover is called Networking. Your computer also loves, anytime you want to search anything on the internet, anytime you send it on an errand to fetch something for you; it seduces and bonds with some attachments along the way. The sad thing about your computer is just that immediately you're done with that piece of information being fetched, your computer breaks the heart of all its helpers and prepares instantaneously to break other hearts. The sole purpose of networking is to exchange data.

Networking is the interconnection of devices for the sole aim of sharing data. No one enters a relationship with nothing to gain.

servers.jpg

For two devices to communicate together effectively, there has to be a set of protocols to follow. All thanks to our forefathers who did the arduous work of laying the foundation upon which our semantics rest. With machines, it's closer to being unrealistic because one has to be extra-careful with the choices being made so that it doesn't become a bane in the future.

Protocols are agreed-upon standards guiding the communication of different devices over the internet.

house.jpg

Building a house requires starting from the foundation, and then the actual construction follows. Imagine the world's tallest hotel needs a replacement for a broken window glass on its topmost floor. Do you think there's a need to go to the foundation before this window can be fixed? Obviously no!!! This illustration will usher us into what network models are. Network models are layers/pieces upon which the services required for successful networking are built. Each of these layers relies on the layers underneath it without being concerned about how they work.

There are two major network layer models

  1. The OSI Layer Model

  2. The TCP/IP Layer Model

The OSI Layer Model stands for Open Systems Intercommunication. It has seven layers of communication and it was standardized in the year 1977 and published as "ISO 7498". A picture of what the OSI Layer Model entails is provided below

OSI-Model.png To learn more about each of these layers. Click this link Network Layers

TCP/IP Layer Model stands for Transmission Control Protocol. It is the most commonly used network model. It has 4 layers instead of the 7 layers offered by the OSI model. The TCP/IP model reflects a more realistic view of how networking is commonly implemented today, however, the OSI model is better for understanding and reasoning networking concerns. The picture below shows the hierarchical layers of the TCP/IP model and how it's an abstracted version of the OSI Model.

tcp-ip-model-vs-osi.png To explore what each layer does, click TCP Layers

What is an Internet Protocol?

Internet Protocol(IP) is the standard guiding the communication of devices connected over the internet. For example, the Yoruba ethnic group in Nigeria requires a man to prostrate and a woman to go on their knees anytime they want to greet their elderly ones. These protocols can also be likened to the rubrics guiding a cultural sect. There are two versions of Internet Protocol:

  1. IPv6 - Internet Protocol Version 6
  2. IPv4 - Internet Protocol Version 4

The IPv4 is the oldest of the two. It's still widely used to date, however, the networking paradigm is drifting towards IPv6 already. IPv4 uses 32-bit addresses, this limit birthed the need to migrate to a system that can accommodate as many addresses as the whole world needs to stay connected together.

The IPv4 addresses are 32-bits long. They're divided into 8-bit sections and each section is displayed as a decimal number between 0 and 255 inclusive and each section is delineated by a period. If you've ever run a local server on your computer using software like Django, Flask, XAMPP etc; your server is just a local server which uses an IP address known as the loopback address. This loopback address is a special address reserved for the computer to communicate with itself.

The IPv4 loopback address is 127.0.0.1

Some other examples of what IPv4 addresses are:

1. 172.16.35.17
2. 113.112.120.7
3. 196.1.114.48

The IPv6 addresses are 128-bit long, theoretically, this allows it to address 2^128 addresses. They're written as eight groups of four hexadecimal characters delineated by colons.

The loopback address version in an IPv6 protocol is 0000:0000:0000:0000:0000:0000:0000:0001

Looks awkward???? Kindly look forward to my next article on how to convert IPv4 addresses to IPv6.

Worthy of note is the fact that IPv4 and IPv6 IP addresses are interconvertible; that is, for every IPv4 address, there is an IPv6 address.

Some other examples of IPv6 addresses are:

1. 0000:0c07:0000:0000:0000:0000:0000:0001
2. 2001:0db8:0000:0000:0000:ff00:0042:8329
3. fe80:0000:0000:0000:75f4:ac69:5fa7:67f9
4. ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff

How to get your Computer's IP address

Your computer's IP address is the unique address your computer uses to communicate with devices either locally or remotely. It's more like your mobile phone number which you use to dial other phone numbers or send SMS to your loved ones.

Just as you can have more than one phone number, your computer has different IP addresses for communicating with different devices either locally or remotely. To fetch these IP addresses, open your terminal or command prompt and type the following command:

ipconfig

This command displays all the IP addresses your computer uses to perform its routing operations.

You can also access your remote IP address by clicking on any of the following links:

  1. ipify
  2. what is my IP address
  3. icanhazip
  4. ifconfig.me

Understanding Networking and how it is orchestrated will go a long way in helping you to become a dexterous programmer that is armed with all the necessary knowledge to sail into the future of technology. I'll like to know your thoughts about this article, kindly drop them in the comments box. Thanks in anticipation.

References:

Hands On Network Programming with C by Luwis Van Winkle.

Easy Network Programming with C by Jacob Sorber