| |
|
|
||||
![]() |
||||||
| |
|
|||||
|
So
we’ve identified the clues to its arrival. How about some indications
of its very nature? Let’s try and get a grasp of cyberspace, what the
thing is, or will be, indeed, for what we want it to be. You
know how in the Hitchhiker’s Guide to the Galaxy, it was explained
that the entire universe could be extrapolated from a piece of fairy
cake? Well, given enough computing power it’s quite plausible that this
could be done – it’s just the word ‘enough’ that is the problem. I
like the similar, but more numerical idea of repeatedly rolling a die
– eventually patterns will emerge in the numbers rolled, from which
the rest of the universe can be extrapolated. This is given that, like
the piece of fairy cake, everything influences the die in some way.
The trouble is again one word: ‘eventually’. Such a time would probably
not be far from the Restaurant at the End of the Universe. For
less fictional theories check out the EPR Paradox, which describes ‘spooky
action at a distance’ – apparent ‘communication’ between particles at
the quantum level, but across astronomically large distances. This is
a little bit of evidence that particles are connected in some way, albeit
currently unknowable. From this we can conclude that everything in the
universe is in some way connected to everything else. This is what you
might term the interconnectedness of all things. You’re
probably wondering what tangent I’ve gone off this time. Well, perhaps
it this interconnectedness that enables the operation of the colossal
simulator that runs our universe? Perhaps we might one day be able to
harness this interconnectedness and bypass the need to transmit information
via the tediously slow optical media we’re lumbered with today. On such
a day the Internet would be able to dispense with optical fiber and
use an instantaneous or zero latency backbone instead. Cyberspace as
an alternate reality would then definitely be with us. Until
that time, and here is the point I’m making, we have to simulate our
virtual universes by communicating across what might as well be wet
bits of string strung between rusty tin cans. Yup you’ve got to face
it: the Internet is an anachronistic pile of relays, punched cards and
vacuum tubes when it comes to comparing it against what we’d really
need to achieve seamless cyberspace. Oh
well, I don’t suppose we could have expected our task to be that easy. Internet
Pea Soup Somehow
we’re going to have to do the best we can with what we’ve got. The Internet
isn’t perfect, but it’s getting better. From this simple conclusion,
we can immediately deduce that any attempt at using the Internet as
a foundation for cyberspace must firstly cope with imperfection, and
secondly exploit increasing performance. Talking
of the Internet’s performance, at the level we’re interested in, little
is reliable or particularly speedy. Yeah, yeah, people keep telling
me that it’s getting better and that people will soon have thousands
of channels of video on demand via their cable modem. But, I remain
suspicious. Heck, I’ll even say skeptical! Just
like personal transport getting faster, and people traveling in increasingly
large volumes, something just doesn’t seem to be improving that much.
Roads get wider, cars get faster, but with higher traffic densities,
it still takes just as long (if not longer) to get from one side of
a city to the other. Even air travel, with the delays in traveling to
and from the airport, check-in and other delays, can sometimes be similar
to the equivalent train or coach journey time. How
long have we been waiting for our CPUs and graphics cards to be fast
enough, our hard disks and memories to be large enough, and our web
pages to download fast enough? It’s always a case of “Whoa! Wait until
you see what they’re bringing out next year – it’ll blow your socks
off!”, but the hit is transitory, it’s never enough and before you know
it, you’re back waiting for the next ‘improvement’. Things
do get better, but something remains the same. Moore’s law plus Parkinson’s
law (work expands to fill space) seem to add up to status quo. In other
words, double the performance, double the workload, and you still get
a 10 minute coffee break while you wait for that compile or render to
complete. In
the case of the Internet, I strongly suspect that as fast as the network
capacity is increased, so the volume of traffic will expand to exhaust
it. The thing that remains the same is latency. The trip time, in other
words. You
can apply this to other areas as well. I might also say, that frame
rates in video games will always range between 20 to 30fps, packaged
software will always arrive on between one and seven disks (or holo-cubes),
and word-processors will always take a minute or so to print out your
resume… So
I’m sorry to have to break this to you, but web pages will never download
any quicker than they do today. What
a depressing thought eh? Well, think about it – while the Internet remains
fundamentally hierarchical in its topology, and demand keeps pace with
capacity, the same bottlenecks that cause delay today, will still be
with us tomorrow. The solutions are either to string a piece of optic
fiber between each pair of computers on the planet (a hell of a lot
of spaghetti!), or to reduce demand, impose tolls say. Design
for High Latency In
the face of performance meeting workload, the best you can ever do to
increase latency is to improve the efficiency with which the available
resources are used, and this invariably means improving your understanding
of the nature of those resources. So,
in the case of the Internet, you cannot treat it like a reliable LAN
and expect to use it efficiently. If you treat the Internet like a LAN
in the hope that it will soon be as good as a LAN, it’s not much different
than writing a flight simulator (including renderer) in interpreted
BASIC in the hope that by the time it’s finished computers will be fast
enough to run it at a decent frame rate. OK, so some of you will allow me faint praise for a few good points, but regard my pessimism as ultimately misguided. Moreover, I suspect that various network experts would be more forthright, and gently suggest that I’m actually wrong about the Internet, i.e. in the next ten years it will in fact easily be able to support permanently online, retinally scanning, holographic video-phones and haptic body suits worn by the population of the entire planet (dogs and other pets included). Conventional system architectures are just fine thanks. Blimey!
Well, that’s a few terabytes per second of bandwidth per carbon unit
there, and I’ll be very impressed if supply can so dramatically outpace
demand. On
the other hand, maybe it might just be a good precaution to make more
efficient use of the Internet, just on the off-chance that latency doesn’t
improve. Of course, even if it does improve, then a more efficient utilization
would fully exploit that improvement. You
just can’t lose can you? Come on, abandon those secure and nice, comfy
servers, put down your reliable protocols. Let’s get down to the smelly,
leaky sewers of UDP and see if we can make better use of them directly. Making
the Best Out of a Bad Situation Confucius
would probably have a few words to say about how games have to be written
in harmony with the inherently flaky nature of the Internet, instead
of stubbornly demanding 100% reliability from an intermediate layer.
In protocol terms, that’s “Use UDP, and don’t use TCP”. But then, it’s
always been a case of using the right tool for the job. To
simulate a large scale virtual world across large numbers of computers,
we need as much interconnectedness as we can get. And that means it
is better to get low latency, noisy communication, than high latency,
perfect communication. If you insist on any compromise then you must
ensure that improving the quality of the communication has insignificant
impact upon its latency requirements. What
do I mean by that last bit, ‘latency requirements’? Well, communication
only needs to be timely, it doesn’t need to be any better than that.
Some things you may need to know as soon as possible, some things you
can wait a while for. Some things are important, some aren’t, some are
in between. Some information has a limited lifespan, some information
may always be potentially useful. When you’re communicating the state
of play in a game to all its players, it’s typical that each player
has specific and distinct information needs peculiar to its current
situation. So, there’s rarely any point in communicating everything
to everyone – though if you have a broadcast medium then sometimes you
may end up sending something to everyone. Not
only must we understand the system upon which we build cyberspace, but
we must also understand the sorts of cyberspace application that we
hope to run. A
Global Venture The
global network is vast, and cyberspace will match it. Its enormous scale
requires a complete paradigm shift in the way you approach the development
of Internet based systems. I know I’m repeating myself here, but it
is important to bear in mind several things when trying to understand
the philosophy behind my descriptions of the technical issues over the
next few months. Scale We have no control over the number
of computers, the size of the network, or the workload that the system
must support. The system must work just as well on two computers as
it does on two billion. Simplicity We haven’t got forever to develop
a global system. The software has to be easy to develop, self-contained,
and self-supporting. It’s got to be developed by a small group of people
(possibly dispersed) and so decomposition into small modules would be
a good idea. It’s also got to be possible to develop it even whilst
it’s running. This means continuous, live, automatic upgrade across
every computer participating in cyberspace – zero administration. Open There’s little hope of retaining
or defending any intellectual ownership, patents, licensing or distribution
rights. The Open Source approach would appear to be an appropriate model
for development. Global and open collaboration also appears to be a good way of a system
being widely adopted, and probably becoming a standard. Content ‘Content is the way to happiness’
seems to be the motto of the Web today, and it applies just as much
to cyberspace. Vast capacity means vast content and vice versa. It also
means far too much work for a single organization, let alone a single
person. Just like the Web, cyberspace content will have to be created
by the masses, and that means we have to produce good content creation
tools. I
see no reason why a system cannot be developed to achieve all these
ends. Although it may seem fairly ambitious to achieve real-time distribution
of vast virtual worlds across billions of simultaneous participants,
I hope I can convince you, eventually, that it’s not that big a deal
really. ________________________________________________________ |
|
|