Thirty years have passed since the Internet Protocol was first described in a series of technical documents written by early experimenters. Since then, countless engineers have created systems and applications that rely on IP as the communications link between people and their computers.
Here’s the rub: IP has continued to evolve, but no one has been carefully documenting all of the changes.
“The IP model is not this static thing,” explains Dave Thaler, a member of the Internet Architecture Board and a software architect for Microsoft. “It’s something that has changed over the years, and it continues to change.”
Thaler gave the plenary address Wednesday at a meeting of the Internet Engineering Task Force, the Internet’s premier standards body. Thaler’s talk was adapted from a document the IAB has drafted entitled “Evolution of the IP Model.”
“Since 1978, many applications and upper layer protocols have evolved around various assumptions that are not listed in one place, not necessarily well known, not thought about when making changes, and increasingly not even true,” Thaler said. “The goal of the IAB’s work is to collect the assumptions — or increasingly myths — in one place, to document to what extent they are true, and to provide some guidance to the community.”
The following list of myths about how the Internet works is adapted from Thaler’s talk:
1. If I can reach you, you can reach me.
Thaler dubs this myth, “reachability is symmetric,” and says many Internet applications assume that if Host A can contact Host B, then the opposite must be true.
Applications use this assumption when they have request-response or callback functions. This assumption isn’t always true because middleboxes such as network address translators (NAT) and firewalls get in the way of IP communications, and it doesn’t always work with 802.11 wireless LANs or satellite links.
2. If I can reach you, and you can reach her, then I can reach her.
Thaler calls this theory “reachability is transitive,” and says it is applied when applications do referrals. Like the first myth, this assumption isn’t always true today because of middleboxes such as NATs and firewalls as well as with 802.11 wireless and satellite transmissions.
3. Multicast always works.
Multicast allows you to send communications out to many systems simultaneously as long as the receivers indicate they can accept the communication. Many applications assume that multicast works within all types of links. But that isn’t always true with 802.11 wireless LANs or across tunneling mechanisms such as Teredo or 6to4.
4. The time it takes to initiate communications between two systems is what you’ll see throughout the communication.
Thaler says many applications assume that the end-to-end delay of the first packet sent to a destination is typical of what will be experienced afterwards. For example, many applications ping servers and select the one that responds first.
However, the first packet may have additional latency because of the look-ups it does. So applications may choose longer paths and have slower response times using this assumption. Increasingly, applications such as Mobile IPv6 and Protocol Independent Multicast send packets on one path and then switch to a shorter, faster path.
5. IP addresses rarely change.
Many applications assume that IP addresses are stable over long periods of time. These applications resolve names to addresses and then cache them without any notion of the lifetime of the name/address connection, Thaler says. This assumption isn’t always true today because of the popularity of the Dynamic Host Configuration Protocol as well as roaming mechanisms and wireless communications.
6. A computer has only one IP address and one interface to the network.
This is an example of an assumption that was never true to begin with, Thaler says. From the onset of the Internet, hosts could have several physical interfaces to the network and each of those could have several logical Internet addresses. Today, computers are dealing with wired and wireless access, dual IPv4/IPv6 nodes and multiple IPv6 addresses on the same interface making this assumption truly a myth.
7. If you and I have addresses in a subnet, we must be near each other.
Some applications assume that the IP address used by an application is the same as the address used for routing. This means an application might assume two systems on the same subnet are nearby and would be better to talk to each other than a system far away. This assumption doesn’t hold up because of tunneling and mobility. Increasingly, new applications are adopting a scheme known as an identifier/locator split that uses separate IP addresses to identify a system from the IP addresses used to locate a system.
8. New transport-layer protocols will work across the Internet.
IP was designed to support new transport protocols underneath it, but increasingly this isn’t true, Thaler says. Most NATs and firewalls only allow Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) for transporting packets.
Newer Web-based applications only operate over Hypertext Transfer Protocol (HTTP).
9. If one stream between you and me can get through, so can another one.
Some applications open multiple connections — one for data and another for control — between two systems for communications. The problem is that middleboxes such as NATs and firewalls block certain ports and may not allow more than one connection. That’s why applications such as File Transfer Protocol (FTP) and the Real-time Transfer Protocol (RTP) don’t always work, Thaler says.
10. Internet communications are not changed in transit.
Thaler cites several assumptions about Internet security that are no longer true. One of them is that packets are unmodified in transit. While it may have been true at the dawn of the Internet, this assumption is no longer true because of NATs, firewalls, intrusion-detection systems and many other middleboxes. IPsec solves this problem by encrypting IP packets, but this security scheme isn’t widely used across the Internet.
11. Internet communications are private.
Another security-related assumption Internet developers and users often make is that packets are private. Thaler says this was never true. The only way for Internet users to be sure that their co