What Is The Internet
I wasn’t sure I was going to write this post, but the more I kept thinking about this question the more important I felt it was to answer.
I’m a firm believer in knowing as much as you can about a particular something, and at least have a general knowledge of how things work especially when it comes to your own business. So after weighing the pros and cons for a few days I finally decided that I would write about it. Actually the deciding factor came to me while I was watching my FAVORITE movie the other night, The Matrix.
It’s kind of interesting how this question even came about, sometimes you just find content even when you’re not looking for it. I was helping someone with an issue they were having with frequent server crashes during their last few product launches and they wanted to understand what was causing this so it could be avoided in the future. Apparently the answer this particular hosting company gave only confused them more. I started to explain that while there are many different reasons a server will “go down” or stop responding, but that usually in situations like this it might be a combination of factors such as the server request limit has been reached and awaiting requests in the queue are stalled because the server becomes so busy ignoring new requests coming in. Or the server stalls because of other resources it uses like a database that becomes overloaded fulfilling query request and takes the site offline.
So eager to understand the whole process this person asked me the following question and waited patiently for my answer; “how exactly does data travel over the internet, exactly what is the internet”? Now I’m sure if you ask 10 random people that question you will get 10 different answers. I asked a few family members that same question the other night (what is the internet), and here are some of my favorite responses: AOL, Google, QVC, Facebook, a bunch of connected wires hidden underground, and my ABSOLUTE personal favorite: “That machine sitting over there in the corner”!
SIGH… it’s no wonder they have no idea what I do for a living!
I believe it’s important to understand the connection all the pieces have and the role they play in making everything happen. So much goes on behind the scenes that nobody ever sees, and this is the world I live in, the world of computer code and databases and protocols and so much more (kind of like The Matrix). All the things that you enjoy and can see and use and read and play but that wouldn’t exist without the backend world that actually makes it all happen; that makes it show, run, flash, play, send, receive and work the way it’s supposed to work on your computer screen.
I actually started out in hardware before becoming a programmer analyst, and a lot of people don’t get that connection. I built computers from the motherboard on up, and performed data recovery on failed hard drives. Why is this important? I truly believe knowing what hardware is and how it works makes you a better programmer. We write code and create programs that reside on and use…… what……. hardware! It makes you a better and more efficient creator. You will know to account for things that others won’t know to think of.
LIKE: Determining the Processor Speed (MHz) and memory of the video card a particular computer currently has installed, so you can adjust your code to accommodate for slower video cards upon installation, allowing customers that might not have a brand new fast computer to still be able to install and play that new game you are creating.
So I do believe as Internet Marketers it is important to have a general understanding of what the internet is comprised of and how it basically works. For Example: Like knowing before your next product launch that your server has the bandwidth to handle the estimated increase in data and bandwidth spikes without crashing. Or understanding that your website is crawling at a snail’s pace because of the oversized downloads or images you’re unnecessarily providing which turns potential customers off, or why your images might be loading pixelated.
It’s All Just a Bunch of Numbers
OK, grab a drink have a seat and relax, it’s time for a little math. I know, I know, but before you go running off in a panic, stay with me a little longer I promise I’ll be as gentle as possible and this won’t hurt…. That Much! The internet is comprised of a bunch of computers ‘talking to each other’ sending out requests for data and responding to and fulfilling those requests. But before we get into the hows and the protocols of it all, it’s important to understand how a computer processes data.
I asked my trusty family member focus group another question the other night, “How is the letter ‘a’ sent over the internet”? Again, here are some of my favorite responses: it’s magically shot there by some kind of invisible waves, a guy on the other computer tells your computer to type an ‘a’, there really is no such thing as an ‘a’, it travels through underground wires that connect to your computer, and again my ABSOLUTE personal favorite: “Who the hell cares, get me another drink”.
Do you know what this means in our magical computer world?
01000001 01101110 01100100 01101001 01100101 00100000 01101001 01110011 00100000 01100011 01110101 01110100 01100101
All those 0’s and 1’s in that exact order equals the text: Andie is cute
Awww, thank you I’m blushing…. That’s right, computers translate everything you do, text, numbers, images, video, music, etc. into a bunch of 0’s and 1’s which is known as a binary number. Binary is a base 2 numbering system, everything is either a 0 or a 1. Think of it like a light switch which really only has two values, it’s either ON or it’s OFF; and your computer has the ability to process billions and billions of different combinations of these 0’s and 1’s within milliseconds.
One of these binary digits (0 or 1) is called a bit. Your computer groups larger amounts of these bits together and that’s how it processes data. 8 of these bits grouped together is one byte, 1024 bytes equals one kilobyte (KB), 1024 kilobytes (KB) equals one megabyte (MB), 1024 megabytes (MB) equals one gigabyte(GB), and so on all the way up to a Yottabyte (YB) …..you get the idea right? By the way, half a byte (which is 8 bits) is called a nibble (4 bits) and is used as I’ll show later when converting data to Hexadecimal; no I didn’t make that up but it’s kind of cute right?
1 Byte of data is representative of one character on your keyboard. So how exactly does your computer know that 01000001(1 Byte) equals the capital letter ‘A’? Since computers only understand and process numbers we have to turn our focus to something called ASCII which is the common code that our computers use. It stands for American Standard Code for Information Interchange, and basically it is the numerical representation of a number, character or action on your keyboard, like hitting the enter key. Here’s a chart with the decimal equivalents you can reference and we can see that A is the number 65 in decimal. Now we have a number to associate it with but we still need to convert that to a base 2 (Binary) number that your computer can understand and process.
Numbering systems start at zero (0), and move from right to left. Below are 3 main numbering systems that computers and software use, so let’s take the decimal number 65 and see what it looks like in Binary, Decimal (which I hope you are all familiar with) and Hexadecimal. The following images are all taken out 8 places, again why? Because 1 character on your keyboard is equal to 1 byte of data and 1 byte of data is made up of 8 bits (0’s or 1’s), which is how your computer processes information.
Binary (base 2)
So looking at the image below let’s see what the number decimal 65 (which is capital letter ‘A’) is in base 2, remember values can ONLY be a 0 or 1. We have zero in the 128 column because that’s greater than 65. We can place a 1 in the 64 column because that’s smaller than our magic number and we need one of them. The remaining columns all receive zeros because 64 + any of these values is greater than our number, EXCEPT FOR the first column, we can put a one in there which makes our number 65.
SUMMING UP: 64 + 1 = 65 so the capital letter ‘A’ is identified by the decimal number 65 which equals 01000001 in base 2 (binary) which is what your computer understands and processes. Easy stuff right?
Decimal (base 10)
I really hope I don’t have to go into too much detail here. We live in a base 10 world so this should be very easy stuff. We put a 6 in the ten’s column because we need 6 ten’s, and a 5 in the 1’s column because we need 5 one’s. 6 x 10 = 60 + 5 = 65. But it is handy to brush up on if you ever have to convert BACKWARDS…… You know, convert FROM base 2 back to base 10……REALLY???? Why would anyone want to do that?
Hexadecimal (base 16)
My Personal Favorite! The Hexadecimal number system (Hex) is a base 16 system counting from 0-9 and then the letters A-F, which represent the numbers 10-15 in our normal decimal system. So C in Hex would be 12 in our decimal world. It’s important to have an understanding of what base 16 is, and as an internet user you’ve probably already seen it before. There are many programming languages that use base 16 as well, and if you’ve tinkered with colors in HTML at all then you’re already familiar with this; span style=”color:#12aebb” Right? The Hex number 12aebb represents that cool blue color on parts of my site, with an RGB of R (red) 12, G (green) ae, and B (blue) bb.
So let’s take a final look at our example but this time we want to know what the decimal number 45 is in Hexadecimal (base 16). Remember values can be from 0-9 AND A-F, you can reference the handy equivalent chart that I made for you below of base 16 and the base 10 number it corresponds to directly above it.
Determining 45, well 16 to the second power (256) all the way up to 16 to the seventh power (268435456) are all much larger than our target number of 45 so we don’t worry about any of those columns by filling in zeros. We put a 2 in the 16 to first power column, why? Because we need two 16’s (16 + 16 = 32), any more and we’d be over the number 45. So that just leaves 13 left. Look at the chart above, find decimal 13. What is its Hexadecimal representative directly below it? The Letter D, yes D in HEX equals 13 in our world, so put a D in the first column, 16 to the zero power.
Recap: 16 + 16 = 32 + D (which is decimal 13) = 45. SO the decimal number 45 equals 2D in base 16 (Hexadecimal)! WHEW Glad that’s over….Try performing complicated mathematical calculations in base 16 that will really make your head spin.
Ouch my head hurts, I’m so proud of you guys! If you made it this far without crying then you have just successfully converted a Decimal number into a Binary number, and a Decimal number into a Hexadecimal number. You Guys ROCK! Bring this up at your next party, you’ll blow people away.
So now you know exactly what the data on your screen REALLY is, but how does the internet use it? How is it sent and received? Well I think this is a good place to stop for now because we’re running long, but be on the lookout for part 2 which will answer that question and put it all together for you.