|
What do
you think the Internet will be like in a hundred
years? I think that it will still be a network of computers and computer
networks, but that none of today's designs - TCP/IP, the Web (HTTP and
HTML), our existing e-mail system - will survive nearly that long.
The key design idea for the Internet
at a whole was to make a decentralized, fault-tolerant network that, as
a whole, would keep working when any of its constituent parts failed.
The fact that there is no central hub or server (except for DNS, which
is dependent on a centralized top-level-domain server) means that it's
possible to add more computers to the network without updating a central
registry database or informing everyone else. This has made feasible the
tremendous growth of the Internet.
Internet Protocol, or IP, is the lower-level
part of TCP/IP. It's a best-effort datagram service that routes packets
of data between the network source and destination. By best effort, I
mean that there is no guarantee that the network will actually deliver
an IP packet to its destination. The network is free to drop it if it
gets too congested. It's up to TCP, the higher-level protocol, to notice,
after a couple seconds, that the packet is missing. The receiving computer
then requests retransmission of the missing packet.
This is fine for data transfer, but isn't
the right thing to do for streaming audio, video, Internet telephony,
and other real-time streamed-data applications, which is why these sorts
of applications don't use TCP. But they still have to deal with the IP
level's dropped packets, which are due to the way the network is designed
to deal with congestion. It would be much better for these applications
to be able to get a guarantee in advance from the network that it will
be able to deliver a data stream at a particular rate regardless of what
else is going on. I predict that this will happen in the next few years,
to improve the quality of streaming applications such as audio and video,
either by changing the design of IP or by running other low-level network
protocols such as ATM in parallel.
TCP/IP is well designed for its original
task, which is transferring non-real-time data. By contrast, the design
of HTTP and HTML, the basis of the Web, is technically weak. The Web's
tremendous success revealed the usefulness of a hyperlinked, multimedia
presentation system for the Internet, but the inadequacy of the original
standards have cost the Internet community very dearly. The proliferation
of incompatible HTML features added piecemeal by Netscape, Microsoft and
the W3 consortium, and the resulting spectrum of browser versions, have
made it difficult for Web designers to provide pages that work well for
everyone. The statelessness of HTTP forces Web developers to use kludges
like cookies and URL rewriting to track sessions. Using multiple TCP connections
to get all the "files" on a page is slow and wasteful of network
resources.
This situation is reminiscent of the original
MS-DOS, which, though technically very weak, became popular as part of
original IBM PC. This product revealed the tremendous demand for spreadsheet
and word-processing programs, the original "killer apps" of
personal computing. MS-DOS is still with us as the hidden basis of Windows
98. The original bad design of MS-DOS has cost software developers and
users untold billions of dollars worth of time and aggravation. I refer
readers with a taste for the dirty technical details to Andrew Schulman's
classic Undocumented DOS.
Another Internet application whose design
could be improved is e-mail. The most glaring fault is that delivery is
not guaranteed. We've all had cases where e-mails we've sent neither arrived
at their destination nor "bounced" back to us. While we're redesigning
the software, we could add features that were developed for proprietary
e-mail systems, such as privacy (encryption), authentication, and notification
that a message has been read.
Fortunately, the Web and e-mail are just
network applications, and redesigning them will just require replacing
the software applications with new ones - new e-mail readers and Web browsers,
new mail servers and Web servers. The new software can be compatible with
the old standards as well as the new, of course.
It is inevitable that the design of much
of the Internet will change. Since the Internet belongs, in a sense, to
all of us who use it, we all deserve a say in how it evolves. I will vote
for technically strong, open, non-proprietary standards, and I will vote
by using applications built on such standards to the exclusion of others,
whenever possible.
|