Tips for Technologists is an ongoing series aimed at teaching you to engage with technology in best way possible. You can see all the Tips for Technologists articles here.
By Nick Ruffilo
The Internet is an integral part of our lives. Despite its ubiquity, few people have an understanding of how it works. We know it isn’t a series of tubes, or a dump-truck, but having a basic understanding of how things work is key towards designing quality products that live on and interact with the Internet. This article aims to offer you a better understand what the Internet is and what it can do.
By having a conceptual understanding, you can better formulate questions when trying to determine things like: “should our books exist only in the cloud” or “what is the best way to deliver our content to users.”
The Internet is like the US Postal Service
With one exception — on the Internet, any number of businesses could be carrying your package from one destination to the next. Every destination on the internet has an address (also known as an IP Address, short for Internet Protocol Address.) When you wish to communicate with another device on the Internet, your computer takes the data you wish to send, wraps it in an envelope and adds data to it (similar to filling out a letter — although it carries a bit more than TO and FROM). Then, that packet gets sent. The magic that happens next is quite complex and can easily fill a textbook of information, so I will over-simply for the sake of high-level understanding.
Your packet begins its journey close to home at your local router (that device you probably reset every few weeks at home when the internet doesn’t seem to be working). The router looks at the IP address and makes a determination, asking is this local (another computer connected to your router) or does this go to the Internet? If the destination is local it gets sent to that computer, otherwise the packet is forwarded to your Internet service provider (Verizon, Comcast, Optimum, etc.) From there, your packet goes through a bunch of devices that do their very best to send your packet to a device that is closer to the destination — until finally it reaches its destination. If one device is off or not responding, it goes in a different direction. Once the packet is received, an acknowledgement (or ack) is sent back saying “I got things OK.” (There are special characters in the packet that help the receiving computer know if the data that arrived is complete and in the right order). When your computer receives the acknowledgement, it sends the next package. If the acknowledgement is not received (or comes back with an error) the packet is sent again. This happens thousands of times per second.
Is a domain name an address?
Yes, but it isn’t an IP. A domain name is much more friendly than an IP (for example: 18.104.22.168) which is why we use them. Domain names are like building names in a large city. If you tell a cab driver in NYC to take you to the Empire State Building, they will get you there, but if you were using a GPS, it would take you to: 350 5th Ave. New York, NY. Also, when you walk into the Empire State Building, you realize that there is a security guard and information booth that help you redirect yourself to the many locations within the building. A similar thing is happening with a domain name.
Google.com doesn’t point to one single server. Every person that visits very briefly sees the security guard and information booth and is sent to a Google server with the most available capacity, or some other service (if you are trying to access Gmail for example).
How does the cloud play into this?
While I’m not sure exactly where the term “cloud” began, the UML (Unified Modeling Language) model for the internet is a cloud, which is probably what started things off. In the early days of the internet, internet engineers thought of things as a server or many servers set up in a specific configuration, each having a special role. Now, a cloud service (especially cloud web hosting) is really just a blurring of lines between where each server is. Technology and software allows the distribution and scaling to happen automatically so that the web site creator can worry about the web site creation.
When people say things like: “The book lives in the cloud,” they simply mean that it exists on the Internet, and not as a static downloaded file.
What is Wi-Fi?
Wi-Fi has a few different standards (A, B, G, N) which get faster as the letter gets closer to Z. Compatibility is rarely a concern as most Wifi routers are backwards compatible. Wi-Fi is a means of connecting to a router (and then either an Intranet or the Internet) wirelessly. The methodology is the same as a hard wire, except with Wi-Fi, it sends things via radio wave, and with a wire, its sent via the wire. Wi-Fi can be password protected, or encrypted. Password protected simply means you need a password to use the signal. I’ll talk about encryption below.
What is Encryption?
As discussed in the beginning, your data gets passed around the internet by different computers. Every computer that gets your packet can read its entire contents. The chances of a single computer passing all of your packets along is very low (as the internet constantly optimizes to send along different paths). If you are sending sensitive data, such as credit card or personal information, you should always send it via encryption. Thankfully, encryption is automatically used whenever you are browsing a website that starts with https:// (the S is for Secure).
Encryption is also one of those topics that requires a textbook to cover in full, but basically what happens is the sender and recipient both create special keys and use those keys to “lock” the content before it is sent. That way, anyone snooping will only see something unintelligible. Encryption takes up processing time and adds size to the message being sent, so, for transfers that require the highest of speeds, it is undesirable.
For average browsing, it shouldn’t make a difference. As of recently, both Google and Facebook offer secure browsing by adding the S at the end of the http:// (https://google.com and https://facebook.com). If you’re on a Wi-fi connection, you should ALWAYS use encryption (many public Wi-Fi hotspots do not automatically encrypt the connection).
What is a Torrent?
A torrent is a technology that decentralizes downloading. Traditionally, if you wanted to let users download a file, you needed to have a server (or many servers, or now “the cloud”). Users would access those servers and download the file. You had to pay for the servers and for the bandwidth used. For a small operation this may be negligible, but for large files and/or high volume, it could get costly. What a torrent does, is it distributes the download over all the users. Basically, instead of a user simply downloading a file, they both download and upload that file to other users. Torrents are the preferred method for sharing pirated goods, but, they are also used by many video game companies to distribute their software legally and are even used by twitter as a means of distributing software updates to their thousands of servers.
Internet VS Intranet
If you work for a large company, you may have heard the term Intranet tossed around (or, the common misnomer: local internet). An intranet is essentially a small version of the Internet. It allows computers to share data, but only if they are also on your intranet. Think of it as a locked meeting room. Anyone in the meeting room can pick up any materials left on the table, but, the outside has no clue whats happening inside.
Why does this matter?
If you get nothing else from this post, it should be that you should always use HTTPS when sending sensitive data, especially when on a public Wi-Fi. The rest of the information is provided to give you an appreciation for the amazing technological feats that are performed for such simple tasks and checking your e-mail.