Have you ever wondered what goes on behind the scene when you send an email, connect to a website or simply plug a new computer into your local network? I took a look recently, and I must say, machine language, basically, is no different from ours at some levels. When we hear the term machine language, we no doubt immediately think of 0s and 1s (zeros and ones) which is true, essentially. So how do computers know where to send information and that laptop you just connected to the network, how did it get its IP address so you can browse the network and surf the net? They do the same thing we do, they ask.
For example, what are your first thoughts when you read this “Who has 10.10.13.102? Tell 10.10.13.101”?
That is actually an exact capture of a network query. Take a look at the image below:
Look at the structure of the query. First there is a simple question “Who has the 10.10.13.102 address? Tell 10.10.13.101” through a network broadcast to the Address Resolution Protocol (ARP). Sounds like what you and I would ask doesn’t it? It’s like walking into a building looking for an office suite. You would ask the receptionist “Please, where is office number 102?
Now look at the reply from the other side:
Again, it takes the form of a “natural” language. So there is a response that says, “oh, that address you are looking for (10.10.13.102) is at address 08:00:27:33:14:f8”. Well, it gets more interesting because the response points to the hardware or Network Interface Card (NIC) address of the computer with the address 10.10.13.102. So the asking computer responds with something like “English, please” through a name query.
And there is a new response that now identifies the computer with the IP address as PCLab1:
There are a few other interesting things that goes on. For example when there is a duplicate IP address on the network, here’s how it is represented.
And when you send files back and forth, computers actually ask if there is more data to be expected. Take a look:
Notice the lines “More fragments follow: No” and “This is first fragment: Yes”. This looks like asking the question “Is that all? Is this the first one? A fragment is any portion of a larger packet that has been intentionally broken down or segmented into smaller pieces. If there were more and the answer was yes, then the receiving computer has to collect all the pieces and put them together.
Obviously, most network traffic is highly technical and does include a lot of “gibberish” that would give us a headache. I just found it interesting that there is some level of “human conversation” going on behind the scene.
So the next time you are tempted to yell at your computers or call them “stupid”, don’t be surprised if your computer slows down just a little bit as a way of telling you “hey, I heard that”. Just kidding.
By the way, the tool I used is called Wireshark – a network protocol analyzer. It lets you capture and interactively browse the traffic running on a computer network.