Last week one of our clients had a small problem when two pieces of hardware stopped communicating. One of my colleagues fixed the issue in just a matter of minutes, however when I asked her what had caused it, for some reason she dumbed down the explanation:
“They had stopped communicating and their relationship no longer existed, so I fixed the relationship and they started talking to each other and now it’s all working”.
This statement actually made me laugh out loud as I imagined my colleague acting as an impromptu therapist for two computers and sitting them together on a sofa so that they could work through their issues. Of course, that’s not really how it works – Relationships between devices in the world of IT are fixed at the click of a button. Perhaps when we enter the era of Artificial Intelligence then we really will need therapists for our technology, which is an interesting concept that I’ll save for another blog post. For now though, I was inspired to explore the idea of “Relationships” in IT and how devices talk to each other.
For the purposes of simplicity, I will refer to all devices (Laptops, desktops, phones, tablets etc) as simply “Computers”.
When computers communicate with each other, either via a local network (LAN) or via the Internet (WAN) they use a set of communication protocols known as TCP/IP.
TCP stands for Transmission Control Protocol. In a network, TCP is what applications use to communicate with one another. For instance, your web browser talks to network software using TCP.
IP stands for Internet Protocol. IP is the communication that takes place between computers. So IP is what sends packets between computer. It can also route packets to a correct destination.
In the simplest form, there are two types of IP – Public and Local. Your public IP is the location of your Network on the Internet, usually the Internet Port of your Modem. This is your door or, more specifically, the Gateway to the internet from your home or office. Your local IP is the IP address of your computer on your local network. While Public IP’s are all unique, most Local IP’s follow the same standard and it’s very possible that my current local IP is the same as your own.
To make it simpler to understand, consider a large apartment building within a major city. The address of the building is comparable to the Public IP. If the address is ‘500 Washington Avenue, Washington DC’ then it’s easily identifiable to the US postal service as to which building it is and where it’s located. However, within that apartment block, the naming convention of the apartments could be 1A, 1B and 1C for the first floor and 2A, 2B and 2C for the second floor and so on.
This means that you could easily meet someone else in the world who lives in ‘Apartment 1A’ just as you do. But nobody else lives in ‘Apartment 1A’ at ‘500 Washington Avenue, Washington DC’.
An IP address consists of four numbers, each of which contains one to three digits, with a single dot (.) separating each number or set of digits. Each of the four numbers can range from 0 to 255. Here’s an example of what an IP address might look like: 220.127.116.11. This is a typical looking public IP and each IP is unique to each internet connection in the entire world. However, a local IP would typically look like this: 192.168.1.10. With local IP’s, the single number “1” represents your “sub-network” and the “10” is your computer’s unique place on the network. The person sitting next to you may have a “11” instead of 10”.
This is basically what Internet Protocol is – Not just the communication method taking place between computers, but also the unique address of your computer on the internet. All devices connected to the Internet must have an IP, even Google has one. It’s possible to navigate to Google using its IP address and you can try it yourself. The IP of Google.com is 18.104.22.168, type that into your internet browser and see what happens. Of course, the internet would not be easy to use if we had to remember IP addresses in order to access pages. So how then, do we access a site such as Ettebiz.com on our computers without having to tell our computer what the IP address is?
The answer is DNS, Domain Name Server. A DNS keeps a record of IP addresses and their associated Domain names available for look up. Your computer doesn’t care about the name Ettebiz.com, that name doesn’t mean anything to the computer, the only thing that matters to your browser is the IP. However, when you type Ettebiz.com into your web browser, a request goes to the DNS and asks the DNS who ettebiz.com is. The DNS will then return an IP address to your browser and point it in the right direction so that you arrive at the website. This all takes places in a fraction of a second. Incidentally, mobile phone networks work in a very similar way in order to locate which base station your mobile phone is currently connected to, it’s called a Home Location Register (HLR).
You may be wondering, “If each public IP is unique, surely there are only a finite number of combinations in the world?” and you are right. The Internet regulatory body, iCann stated a few years ago that the world is running out of Public IP’s. You ISP owns a ‘block’ of public IP addresses which it can sell to its customers, but as more and more people get online each year, we are running out of combinations. One temporary solution to this is something called a “Dynamic IP”. A Dynamic IP is one of many possible IP address from a block which is assigned a customer’s connection each time they connect to the internet (Again, similar to mobile phone networks). Therefore, IP addresses can be used on a “As needed” basis. If your modem or phone goes offline, then your IP will be assigned to someone else as they need it and your next IP will be different. However, this is only a temporary solution. The more long-term solution is to change the way our IP formats work and this is also the method that iCann is pushing for.
The current cluster of four groups of numbers in an IP address is known as the IPv4 format (Internet Protocol Version 4). If you’ve ever looked at the IP settings on your computer in the last few years, you may have noticed an option called IPv6, which as the name suggests, is cluster of six groups of numbers as an IP address. An IPv4 address is a 32-bit value address, whereas IPv6 is a 128-bit value.
IPv6 won’t just be an extended IP version either, there are many benefits to the new standard which will makes communication between computers faster, easier and more reliable. For now, IPv6 is waiting in the wings to become the world standard IP version, but rest assured we will all have to migrate one day.
So next time you’re having a video conference or chatting with a friend or colleague on Skype, keep in mind that in order to establish a connection, your computer is sending lots of requests out to the internet through TCP/IP to find the person you want to talk to, connect to them and then keep the channels open to transmit your voice and video. It’s easy to take it for granted, but there is a lot going on behind the scenes of these apps we use on a daily basis. And to get even more complex, every single thing we do on a computer can be broken down into the ones and zeros of Binary code at its mode fundamental level.
Going back to the “Relationship” problem, relationships with devices on a network or the internet are not all that complicated. Usually when we talk about a “Relationship” between a host and a client in the world of IT, we are referring to one computer which is authorized to connect to, and use the resources of another computer. In order to do that, we must first establish a relationship and trust between the two devices (Security protocols must be set up) and once that’s established, it will continue working until we change something. This isn’t too different to simply connecting to your office or home Wi-Fi using a password. Occasionally, an update or configuration change could cause your computer to ‘forget’ the password, or your router may ‘forget’ the IP or identity of your computer, causing you to “Re-Authenticate” or in other words, “Rebuild the relationship”’.
In my own home, I have set up “Relationships” between so many devices that it would rival a TV soap opera. Aside from the typical Wi-Fi – Device relationship, my corporate phone is connected to my corporate laptop, my personal phone is connected to my personal laptop, my personal laptop is paired with my Xbox, my Xbox in turn, is paired with my TV and set top box, and my TV is paired with my Blu-ray player. (The surround sound system broadcasts sound from all devices but via the TV) Since my Xbox responds to voice commands, I can actually switch the TV, Blu-ray and Xbox on via voice, as well channel surf with voice or hand gestures. (Yes, it can get complicated at times!) This is exactly what is referred to when you hear the phrase “The Internet of things” – When all of these devices become networked.
The only problem with all of these dependencies, is that one point of failure can result in multiple points of failure. And since each device also has its own IP on my home network, managing which devices use Static IP and which use Dynamic also requires some careful management on my part. On top of that, some devices require direct access to the internet whereas others are controlled by the firewall, causing more configuration headaches.
As each item was added to my home network, there were some conflicts which needed resolving. Since my games console requires non firewalled access to the internet, I have put its IP on a special IP subnet which bypasses the firewall. Other devices began fighting over IP addresses some months ago which required me to step in and tell each one what its static IP would be. My neighbor, who borrows my internet connection when he needs it has a static IP configured on his phone for work purposes, so there was that to be taken into account too, in order to avoid more IP conflict. (The problem with an ‘IP conflict’ is, when it happens, both computers refuse to work!)
Until another device is added to my home network (Which in this day and age could be a new Microwave, Refrigerator or Coffee Maker), we are all living harmoniously for now. But due to the complex nature of Technological “Relationships” between devices, it’s becoming all too easy to make comparisons to real life. These relationships really do have to be managed and when one device fails to pull its weight, it can be blamed for the breakdown of communication. Sometimes I smile when I think of myself as 50% Computer Engineer and 50% Computer Therapist.
Perhaps when AI does enter our lives it can relieve the burden and take on the role of “Network Therapist” to resolve my Tech family disputes.