Chapter 9 - Internet Protocol
Although it actually was possible to connect two distant Ethernet networks together through a technique called bridging, the US government agency behind the Internet wanted something more robust that addressed the shortcomings of Ethernet alone.
Bridging is a technique where some computer ("the bridge") takes bits it receives on one interface and repeats them on another interface. A Serial to ethernet bridge at your local University could allow you to take your personal computer, connect to the bridge by a phone connection, and then send Ethernet frames over the serial connection.
The bridge could take those frames from the dumb serial connection and repeat them onto the smarter Ethernet network, where they'll make it to their actual destination. Then when the destination device replies back, the bridge will take those frames from the Ethernet network and repeat them back over the dumb Serial connection to you.
So like, it's possible to make arbitrarily large Ethernet networks by bridging. So why don't we? Why invent Internet Protocol? Thicknet and Thinnet only supported a few dozen clients until the line would become too crowded and it became difficult for devices to find time to talk. But switched Ethernet can support thousands of devices before any real issues occur (under normal operating conditions anyways; someone intentionally bogging down the network can still cause problems).
Switched Ethernet falls short in these three ways:
-
Switched Ethernet works by the Switch keeping track of which MAC addresses are available on which ports. To work effectively, every switch more or less has to keep a table of every MAC in the network, noting which MACs are associated with which port. One port can have several MACs associated with it, when switches are plugged into each other.
The ARPA group tasked with developing the Internet imagined a network with Billions of devices, and it wasn't reasonable at the time for a switch to keep track of that many MACs.
-
Ethernet over Twisted Pair, including both Hub based and Switch based networks, are inherently star shaped. This means that there will always be a "center" node that, if removed, cuts the network into at least two halves that can't talk to each other any more.
To get around this issue, a network has to have redundant connections that can be used if the main connection goes down. In Ethernet, that is called a network loop and network loops cause traffic to get stuck because Ethernet frames tend to just go around the loop forever instead of making it to the correct destination. Along with a few other nuances of Ethernet this tends to take down the entire network. So loops are bad.
Later standards, like Spanning Tree Protocol, have allowed smarter switches to cooperate and break loops automatically. However that's not enough on its own to make Ethernet work in place of Internet.
-
Ethernet doesn't tell you anything about where a device is only who a device is.
MAC addresses are remarkably like people names. A MAC address has two or three parts. First is the vendor prefix, which analogous to a family name. It is unique to the device manufacturer. Next is that some manufacturers reserve a few bits of the MAC to designate the product line. This is sort of a middle name; not everyone has one. Then finally the rest of the MAC identifies the individual device. This would be like the given name.
With a MAC address, finding someone in the network is like checking census records. Census records are easy to check if you already know something about the target, like they are on a network with only 30 devices / come from a town of only 30 people. But if you're on a network with 5 million devices it suddenly becomes really unweildy to manage the records.
Internet Protocol addresses are fundamentally different. They don't tell you who a device is, they tell you where a device is. They're much more like a home address than a name. Although they do correspond roughly to geographic locations, they are more about position in the network than physical position. Internet addresses are split rather arbitrarily, but as an example the first 8 bits could identify that the address goes to a network at University of Chicago. The next 8 bits could identify that it's in the their Library network. The next 8 bits could identify that it's in the historic records department. And the final 8 bits could identify the specific record keeping machine. These categories are arbitrary, but the point is that at every step of the way the University's network had something to identify where to hand the message off to.
Phone networks had this problem as well. Originally, phone numbers only contained information about which phone it was, not where it was in the phone network. I could have phone 1234, for example. Later they added area codes, so that you could identify the number belongs to phone 1234 in area 456. Then later they added country codes. Who knows, we may get an even more extended phone number format that adds planetary codes one day. The point is, these area codes group together all the devices available in a single telephone exchange. So you know all the devices at area code 123 are reachable through Exchange 123 which is located in a single city, like Minneapolis or wherever.