The Internet is remarkable compared to most historical networks because of its versatility. In the bad old days, networks were designed to do one thing and one thing only, and to always do that thing the same way. The telegraph network was designed to carry telegrams, and that’s all it ever did. It had the same kind of wires and poles everywhere, and connected the same kinds of devices to each other, first simple Morse Code keys and later on teletype terminals. The telephone network followed the same story; even though you can connect modems and fax machines to it, it treats them as if they were telephones, which is why the speed of modems is so much lower than other things that can use telephone lines, like John Cioffi’s DSL.
The Internet is a software network, which sets it apart from the telegraph and telephone networks. Its essential piece is the Internet Protocol, which is little more than a data format. IP organizes information into units known as “packets” that consist of a payload – your data – and a sort of envelope known as the IP header that carries addresses and options. IP packets are carried by a variety of networks, such as the wired telephone network, the cable network, the mobile network, Ethernet, and Wi-Fi. So one way to understand the Internet is that it provides “IP over everything”, regardless of what kind of actual network you have at your disposal.
It took a lot of engineering to make the older networks carry IP packets, so from the mid ’70s to the mid ’90s, the Internet’s main technical hurdle was to modify these old networks and to design new networks that were better suited to the Internet’s needs, such as high speed and high reliability. It’s harder to do these two things together than to do either one by itself. But the engineering community now knows how to make IP work better year after year. So “IP over everything” is a done deal.
In the mid 90s, the focus shifted to “Everything over IP”. This new focus concentrated on applications, and it was stimulated by two things: the Web made the Internet interesting to a wide array of people because it was easy to use and visually appealing, incorporating text and pictures and even audio streams. When audio showed up on the Internet, it wasn’t rocket science to conceive that someday we would also want to have phone calls, video calls, TV shows, and movies. It was fast enough by the mid ’90s to do at least some of these things because we had megabit speeds thanks to DSL and cable modem already, where the old telephone and cable networks only needed kilobits to operate (1000 kilobits make a megabit).
But here’s the rub: all the applications that ran on Internet in the mid ’90s didn’t care a great deal whether there were temporary delays on the networks, and they didn’t care if packets were lost, duplicated, or delivered in the wrong order. A web browser can deal with those problems pretty well, and people were used to occasional delays and dropped connections. But a phone call won’t work in that context; it needs all of its packets to arrive in the right sequence and with minimal delay, no more than two tenths of a second.
So to get to “Everything over IP”, the Internet Protocol needed some help. The Internet Engineering Task Force (IETF), the people who control Internet technical specifications, rose to the challenge with “Integrated Services” in 1994. IntServ, as it’s called, isn’t a replacement for IP, it’s a way to give instructions to the Internet about the kind of treatment an application needs for its packets to operate correctly. With IntServ, the so-called “real-time” applications can ask for, and receive, the handling they require and other applications can get whatever is left over. Because those other applications – like web browsing – aren’t picky, this arrangement can work pretty well.
IntServ is a lovely system that actually shares the Internet very, very well across a wide range of applications, but it had some early drawbacks that made it difficult to implement and manage. These problems have been overcome, and when you make a high-definition phone call on your smartphone you’re probably using IntServ. Wi-Fi was modified to support IntServ in 2003, but it does not appear to be used much on Wi-Fi networks.
Another, simpler, system known as Differentiated Services (DiffServ) followed IntServ in 1998. While IntServ required applications to inform the network of the service it needed, DiffServ was simply a way of telling the network about the relative priority of each packet; specifically, standard packets are unmarked, and high-priority packets are marked. Overall, DiffServ has 8 priority levels to ensure that network control, voice calls, and video calls all get better service than web browsing. If you have U-Verse from AT&T or CenturyLink’s TV service, you’re using DiffServ.
Together, IntServ and DiffServ are parts of the Internet’s “Quality of Service” architecture. You can read more about them in this Cisco white paper.