Horse Sense #119
How We Broke the Internet
Computer networks, including the Internet, are designed to get data from one point to another quickly and reliably. In general, the conversation is one to one, not one to many. Normally one server is talking to many consuming endpoints over connections that are shared between all of those endpoints. This design causes all sorts of problems when it comes to how we want to actually use our network.
Computer networks are designed to deliver data as fast as it can be consumed from the source to the destination. With normal data streams, if there is a glitch in the data delivery, you will not notice. The endpoints can realize the data did not get there and retry. You will be none the wiser. If the data delivery speeds up and slows down, you are unlikely to notice it either. Of course, even with normal data applications, if you cannot deliver the data fast enough or reliably enough, you obviously have a problem. You get unacceptable delays. Applications can even fail entirely.
But what if you are not moving “normal” data? Computer networks like the Internet are not built for audio or video. Audio, like telephone calls, takes a very small amount of bandwidth (or bore of the pipe), to work well. Unlike normal data applications, audio relies on being able to deliver a steady and predictable stream of information with no dropouts. If you lose data in transit, you cannot go back and ask the other end to deliver it. It would be too late to get the information. "1-2-3" could turn into "1-3-2" and you do not want that. You also cannot stand too much latency (delay). When you want to hear "1..2..3", "1..2.....3" is unacceptable. Similarly, you cannot stand inconsistency in the delivery, so jitter (variation in latency) that could produce "1.2....3" is not good either. With video, the problem is even worse, because not only do you have these timing issues, but you have a ton of information to deliver requiring a lot of bandwidth. Broadcast HDTV uses 16Mbps (megabits per second) of bandwidth. Blu-Ray can reach 35Mbps. Even if you use really efficient compression, you need 4-8Mbps for a 1080p HD movie. Most people in this country cannot get that kind of speed reliably out of their Internet connection. Netflix, YouTube, and others often have to lower the resolution or the frame rate (pictures per second) so that your link can handle it.
If you put audio (telephones) or video (Netflix, Hulu, YouTube) on your computer network, you may be competing against other users or programs trying to use it. If they are using the network for data, remember that your network is designed to deliver that data as fast as it can. A competing data transmission can cause audio or video freezes, dropouts, or disconnections. To fix this, you permanently or dynamically reserve bandwidth for video and audio or dynamically prioritize audio and video data over other transmissions. If you really want to ensure quality, you want to dedicate a separate network to audio or video, like the cable and traditional phone connections in a house. In terms of ensuring quality, a dedicated network is better than dedicated bandwidth which is better than dynamically allocated bandwidth. You can also "fix" prioritization issues via brute force by outfitting your network with such high bandwidth connections that it would be unlikely that two data streams could interfere with one another because the data highway is so wide. For many years, it has been possible to use this brute force fix on local area networks because bandwidth has increased so rapidly.
Unfortunately, that may fix things locally, but what about when you leave your local network and hop onto the Internet? Once you do that, you probably will not have much say in what gets priority and those links are generally much slower than your local network connections inside your building. You cannot guarantee the quality of an audio or video connection on the Internet. To be fair, you really cannot guarantee ANY connection on the Internet, but audio and video connections are very sensitive to disruption. And, the "farther" you have to go in Internet terms, the more likely you are to run into trouble. The route through the Internet may not just be pure distance. It is more like traveling by air using various carriers where you have to go through various hubs to get to where you want to go. Voice over IP calls from one Cox customer to another are more likely to be acceptable than ones between a Cox and a Verizon customer because of this routing. That does not mean VoIP calls will not work. They will. But, they will not be anywhere near as reliable as the public telephone network. And, because of the techniques used, you will lose quality. This is one reason why fax transmissions normally will not work on Voice over IP networks.
As long as you are doing one to one calling or transmission of video, things are not too bad. It gets ugly when you want to form broadcast (one to many) or many to many connections. Unlike a TV or radio tower or satellite, computer transmissions are primarily designed so that a source and destination talk to one another. If someone else wants to watch a video, a completely separate stream must be made available. With a radio broadcast, the source sends once and millions of nodes can listen and everything is synchronized. On a computer network, if you have millions of nodes listening, you have to have millions of transmissions and those transmissions may not be synchronized. This means at the source end you have to have lots of very powerful servers blasting out the same information over and over across very fat pipes. It turns out that video uses up a tremendous amount of bandwidth. During prime time viewing hours, almost 2/3 of all the bandwidth on the Internet is due to video streaming services like Netflix, Hulu, YouTube, and others.
Remember how I said that it is hard to ensure quality over the Internet? Well....The routing hubs just move the traffic on to their next destination on the Internet. They do not know what is important or not. Your bank transaction looks no different to them than part of a video. Your connection from your hotel room to your workplace looks just the same as a kid playing a game. Internet connections are slower, less reliable, and much more expensive than in building connections. We cannot fix the quality issue by building infinite bandwidth pipes because we simply cannot afford them and the design and transmission issues we discussed still remain.
Your link out to the Internet is a tenuous one. Many people think they can do anything with it. However, what I do with the link in my office may inhibit what you want to do with the link in yours. If two or three people watch March Madness basketball games at their desks, even if it is during their lunch break, it could act like a denial of service attack. A 10Mbps business connection with three users trying to use 12-24Mbps would be a real problem. If you tried to run a video conference or make a VoIP call over that same link, you would have a bad day. Surfing the web would be very slow. Bank transactions might time out. You get the idea. This can happen at any routing point on the Internet, but the one you have the most control over and the one most likely to cause you grief is your own ISP connection. People are much more likely to shoot themselves in the foot than have someone else shoot them....
What can you do about it? Realize that nothing is infinite and every bit has a cost. The most costly bits are those traveling over your limited pipes out to your ISP and the rest of the world. Set appropriate expectations, policies, and procedures. Management needs to pay attention to the information flowing in and out of your workplace as much as it pays attention to the money and people coming in and out. People need to be trained so that they know how to behave well and not stomp on other people. You should segment or prioritize your Internet traffic and buy bigger or more pipes if you need them. Separating your network to carry different kinds of traffic could be a very good idea.
To save money and improve productivity easily, try these tips:
(1) If you want to watch something that is being broadcast, use the TV.
(2) If you want to listen to something being broadcast, turn on the radio.
(3) Turn off or uninstall programs that stream information in from the Internet continuously, like screen savers.
(4) Schedule big data moves, like backups, for off hours.
(5) Monitor individual PCs and your router for traffic. Strongly consider and bandwidth management and control device to improve your security and protect that link from someone who "just has to" see how well that sports game is going.
Recognize that no resource is infinite. If a lot of people decide to watch something on their Internet link from all over the country, you may not be able to reach that overloaded server. Worse, you may not be able to make a reasonable connection to anywhere along the oversubscribed links. Your request may be the passenger in the airport that got bumped from a flight....
There are various techniques and products you can use to help prevent data logjams and other issues, but we cannot help you unless you call.
©2015 Tony Stirk, Iron Horse firstname.lastname@example.org