[ih] History question -- multi-homing
Jack Haverty
jack at 3kitty.org
Tue Sep 15 00:10:06 PDT 2026
Re: the question of when these issues first surfaced...here's what I
remember:
Issues such as multi-homing, naming, etc., have been around since before
The Internet. I've mentioned earlier on this list that the ICCB, circa
1981-1983, maintained a list of things that needed to be done. The more
pragmatic of those were associated with the conversion of the ARPANET
from NCP to TCP targeted for January 1983. But there were also a lot
of issues, many related to routing, that were judged to need further
research, since the researchers had not yet reached consensus on the
next set of algorithms, protocols, et al.
Many of the research issues related to routing had been already
encountered in the ARPANET, which had been operating, evolving, and
emerging into commercial use for more than a decade. For example,
issues of multi-homing and naming had been identified in the ARPANET,
and a new mechanism had been developed, tested, and introduced -- for
example, "logical addressing" as a tool for ARPANET users to address at
least some of the problems they faced. That mechanism was specified in
an Appendix to the ARPANET user interface specification, BBN Report
1822, in Appendix L (for Logical addressing...)
There was considerable effort to improve and evolve the internals of the
ARPANET through the 1970s and 1980s as it grew into becoming an
infrastructure. Much of that was done by BBN under contract to ARPA and
later DCA after ARPA transitioned operational responsibility to DCA.
Eventually, in the 1980s, the ARPANET evolved into the Defense Data
Network (DDN). Since the work was no longer viewed as "research", it
was much less likely to be published as an RFC. But much documentation
about the internal changes to the IMP mechanism was produced and
submitted to DoD, and may still be accessible at DTIC (see
http://discover.dtic.mil ).
One example is a series of documents concerning the "ARPANET Routing
Algorithm Improvements". You can find these on DTIC using the "ADA
Number" or searching for the contract number involved. For one such
report that I am listed as the author, the contract was MDA90-78-C-0219
and the ADA reference is ADA121350. I doubt I actually wrote any of
that report, but I was responsible for that contract at the time and for
getting the report submitted, which I recall was often a task comparable
to herding cats.
It's quite possible that similar issues had arisen in other network
deployments of that era. Perhaps IBM's systems, or other packet-based
networks such as Cyclades. Or even earlier "networks" such as
railroads, ships, or other transportation technologies.
Many of the issues that had been encountered in the ARPANET were also
relevant to the Internet, and were added to the ICCB's "to-do list". In
particular, various "routing" issues were considered to "require further
research" before any new mechanism could be defined and released as a
standard.
I'm not sure if that list was ever widely publicized back in the early
1980s. The ICCB was somewhat of a "stealth" activity and I don't
recall that there were any minutes of the ICCB meetings. For History's
sake, here's what I remember about that list of issues from the "early
Internet era" of the 1981-1983 timeframe, where we decided there were
things needing a lot of further research. Remember that it's been a
long time since 1983; I probably should have written this years, or
decades, ago:
TIME-BASED ROUTING
The ARPANET had extensive hardware and code to measure how long it took
for packets to traverse the 'net. This data was exchanged among all
IMPs regularly. Each IMP ran a routing algorithm on that data, to make
a decision about which IMP it should send each packet to as the next
step. The algorithm was typically called SPF, for Shortest Path
First. Each IMP sent a packet to the next IMP based on its calculation
of which choice would best to get the packet to its destination most
quickly.
The gateways (now called routers) of the early Internet did not have the
hardware necessary to measure time, either for packets waiting in queues
or for packets in transit across some network. So the metric used for
routing in the early Internet was simply hops, basically counting the
number of networks that had to be transited to get from source to
destination. This was obviously inferior even to the time-based routing
being performed in the ARPANET, but it was appropriate for
experimentation as the Internet started. Routing based on actual
measurements of time was an obvious next step, but had to wait until the
required hardware was available - specifically appropriate real-time
clocks in gateways, and Dave Mills efforts to create NTP as a method to
synchronize clocks.
EXPRESSWAY ROUTING
Expressway Routing was named based on experiences we've all had when in
urban environments. In any large city, a source and destination might
be on the same street, but miles away from each other. A source at 1000
Main Street might be several miles away from a destination at 12000 Main
Street, with numerous traffic lights and other delays along the route.
Drivers quickly learn that to get from one to the other it might be
faster to "go the wrong way" and head toward 100 Main Street, because
there is an on-ramp there to the Expressway, which bypasses all the
traffic lights.
In the early Internet, exactly this situation existed. The WideBand Net
(WBNET) was satellite-based and had much greater capacity than the
ARPANET, so it could be considered as an "expressway" spanning the US,
especially useful for transfers of large files. But the gateways
attached to the WBNET were also attached only to the ARPANET. Traffic
between two ARPANET hosts, e.g., at 1000 Main Street and 12000 Main
Street would never be routed to the WBNET gateway at 100 Main Street,
even though such a route would provide better service. When source and
destination were on the same networ, i.e., the ARPANET, the routing
mechanisms did not have the capability to divert traffic towards another
network.
CAPACITY ROUTING
Capacity Routing was another aspect of possible routing mechanisms,
which simply used a metric other than Time (or Hops) as the basis for
choosing a particular path from a source to a destination. Some traffic
on the Internet was expected to require fastest possible transit times.
In the ARPANET era, the network was fairly uniform with typical line
speeds of 56 kilobits/second. There was little chance for "excess
capacity" to occur. Traffic patterns were carefully monitored however,
and the topology of the network itself was changed to reflect traffic
patterns. If you look at the ARPANET maps of the era, you might notice
that one of the cross-country lines ran almost directly between the ARPA
offices in DC and the computers that they used, in California. That
provided the quick response times expected of the era, when much of the
usage involved using terminals on desks in Washington logged in to
computers in California. Changes to the topology of the ARPANET could
take a long time to make, involving ordering new circuits from the phone
company and waiting for the installation to complete.
Interactive voice was the example with considerable experimentation
during the early Internet era. Anything that required quick response
times between a human user and some remote computer would likely require
:shortest transit time" routes. But some traffic across the Internet
was not time sensitive, and could tolerate longer transit times. A good
example was file transfers, especially of large (for that era) files.
In the early Internet, the WBNET and ARPANET created such a
configuration where routing based on available capacity could be
beneficial. ARPANET was based on primarily circuits running at 56
kilobits/second (yes, not mega or giga). The WBNET was based on a
multi-megabit satellite channel. So an obvious goal was to have a
routing system that would send "bulk" traffic through the WBNET, and use
the limited capacity of the ARPANET to handle time-sensitive traffic.
Capacity Routing would require some way to measure available capacity of
paths through the Internet, and of course a mechanism to pass such
information around the network so routing decisions could be made at
every node. It would also likely require some solution to the
Expressway Routing issue as well.
REDUNDANCY ROUTING
In both military and commercial environments, there is often a desire
for redundancy, for example as a way to keep some activity in operation
even when some of the underlying technology has failed. Within the
ARPANET "subnet" of IMPs connected to each other by circuits, routing
mechanisms automatically worked around such failures, usually without
the human users even being aware of the situations. But most computers
attached to the ARPANET had just a single connection to a single IMP,
which created a possibility of a single failure disrupting the users' work.
In the ARPANET era, some sites therefore desired to have their computers
redundantly attached to the ARPANET, so that when one attachment failed
the other one could still be used. If, for example, a particular IMP
failed, a computer with a connection to a different IMP could still
communicate. However, the ARPANET architecture did not support such
usage well, requiring awareness and actions by the human users to detect
such failures and switch to the alternate route to the computer they
were using. The Appendix L mechanisms of BBN 1822L implemented "Logical
Addressing", which may have helped mitigate such problems.
In the case of the Internet, techniques implemented in the "switches",
such as IMPs, seemed impractical. Some networks, such as Ethernets, had
no "switches" where such a mechanism could be implemented. Any such
mechanism would likely have to be implemented in the "gateways" that
interconnected networks, integrated appropriately with the routing
mechanisms.
TOS ROUTING
With many different metrics possible as a basis for routing decisions, a
new routing mechanism would essentially involve multiple routing
decisions being made, and the actual route chosen based on the kind of
traffic involved for each individual datagram. Of course there had to be
some way for a user computer to specify what its needs were. Also, the
different separate routing metrics and decisions would have to be
somehow coordinated so that the available resources were allocated
fairly -- and "fairly" itself would have to be defined and implemented
in algorithms and protocols.
That was a formidable task requiring much further research and
experimentation. But it was clear that some kind of mechanism would be
needed to permit the users' computers to specify what type(s) of service
was desired. So, when TCP 2 was being redefined as TCP 4, a TOS field
was added to the IP headers to carry such information. At the time,
gateways (routers) couldn't behave any differently based on the contents
of the TOS field, but at least it was there to be used when the next
generation routing mechanisms were decided and ready to deploy.
MULTIPATH ROUTING
The classic "Shortest Path First" routing algorithm, as used in the
ARPANET, finds the lowest-delay path between a source and destination
and then sends all packets along that route until some new information
triggers coice of a different path. In the ARPANET, there were
typically a few routes across the entire country, all based on similar
capacity circuits operating at 56 kilobits/second. So any particular
path would work, but the performance would be limited to that circuit
speed. File transfers would take longer than they could if more than
one cross-country path was used. If there were 3 cross-country circuits
in the network topology, a file transfer might be able to achieve over
100 kilobits/second if multiple paths were used.
That situation led to a desire for MultiPath Routing in the ARPANET. In
such a scheme, not only would the shortest path be used, but all paths
would be used to achieve faster file transfers. Any such scheme would of
course also have to provide for some kind of "fair" allocation of
resources to other traffic flows between other computers over the same
paths.
As far as I remember, such a scheme was investigated but never
implemented in the ARPANET. However, a similar situation would exist in
the more complex environment of the Internet, as another item on the
wishlist for a next generation of routing mechanisms
POLICY ROUTING
Policy Routing refers to routing decisions that are made on metrics that
can't be readily measured during network operations. They are set
instead by laws, regulations, and in general policies of the
organizations who own and operate the underlying networks. In a
military context, a policy might be to avoid passing your traffic
through any "territory" controlled by "the enemy", to avoid compromise
of sensitive information. In a commercial context, a similar policy
might avoid sending your traffic through a route friendly to your
competitors.
This situation did not exist in the ARPANET, since all of the
infrastructure was owned and operated by ARPA and later DCA.
In the early Internet, such a situation did exist, in the part of the
Internet which provided connecivity between the US and Europe. ARPA
owned and operated SATNET, which used a channel on the Intelsat IV-A
satellite. One of the "core gateways" that BBN operated for ARPA was
modified to have the capability to interface to the public X.25
network. This was termed the "VAN Gateway" in the Internet
discussions. In Europe, a separate gateway was also configured to
interface to the public X.25 network.
This topology created two possible routes across the Atlantic Ocean.
Both of these were quite expensive to use. The SATNET channel was a
monthly expense, and X.25 usage was charged by the number of minutes
used on a "call" just as was common at the time for the phone system.
ARPA desired, as a policy, that use of SATNET be limited to projects
sponsored by ARPA. Other projects could use the Internet, but only if
they used the X.25 route to cross the Atlantic.
The Internet routing mechanisms did not support such routing decisions.
Both routes were simply one additional "hop" to the routing algorithm
and thus equivalent. The policy was implemented in a Rube Goldberg
method, by assigning two separate network numbers to one Ethernet. A
computer using one of its IP addresses would pass traffic across
SATNET. A computer using the "other" IP address would pass traffic over
the public X.25 infrastructure.
Clearly a better scheme was needed for the next Internet routing mechanism.
======================
The recent discussions on the internet-history list reminded me of two
other items on the ICCB's to-do list, requiring further research.
Here's what I remember, after almost 50 years...
END-MIDDLE INTERACTIONS
End-Middle Interactions resulted from work we did at BBN in the early
1980s to create some tools for diagnosing Internet problems. I'm pretty
sure that I was the one who added it to the ICCB to-do list.
End-middle interactions resulted from examination of lots of packet
traces of traffic through gateways as part of problem solving
activities. At the time, there was a lot of attention on "end-to-end"
interactions, and the mechanisms involved, such as the TCP windowing
scheme, IP addressing, and the like. But if you examine the full
contents of packets flowing through the Internet, you can easily observe
lots of other interactions involved in every TCP connection or IP
datagram flow.
There are many examples of this behavior. DNS interactions are one,
converting host names into IP addresses. DHCP interactions are another
example. On Ethernets, ARP is used to convert IP addresses into
Ethernet addresses. Higher level protocols are also involved, such as
SMTP and even the voluminous "headers" that appear in every email.
Some of these interactions are end-to-end between the related clients
and servers. However, many of them are End-To-Middle. A good example
is the ICMP datagrams which are sent from a gateway somewhere along a
route, directed back to the sender of a datagram which experienced some
kind of failure in its travels. Even in email, there are numerous
"header fields" such as DKIM data, which is created by some software in
the "middle" of the email travels and added to the email headers.
The gist of the End-Middle-Interactions issue is that every piece of
data transiting the Internet is created by some program running in some
device along the route, and that data is not necessarily created only by
the end device computers. Similarly, every piece of data is put into
the traffic flow for some reason, and is used by some device(s) along
the route, not necessarily the one at the destination IP address.
The consequence of this architecture is that every piece of data is
produced by some program on some device, and subsequently used by some
other program on some other device. Such producing and consuming does
not necessarily happen just at the endpoints of the datagram flow.
A related consequence is that every such piece of data must be protected
in some way that is appropriate for its purpose. Perhaps it must be
verified as being actually created where it purports to have been
created and survived intact until it reached the consumer. Perhaps it
should only be visible to legitimate consumers of that data.
Appropriate techniques for protecting all data must be used, regardless
of where they are produced and consumed - not just at the endpoints of a
TCP (or HTTP, or SMTP...) connection.
In the early 1980s Internet, we used such end-middle traffic to create a
diagnostic tool called a "Flakeway". A Flakeway was a piece of software
that typically ran on a Sun workstation. At the time, the ARPANET was
the backbone of the Internet. But the ARPANET provided a "virtual
circuit" service to its users. So IP traffic never got dropped,
reordered, duplicated, or corrupted as it traversed the ARPANET. It
was difficult to exercise and diagnose TCP behavior without some way of
causing the problems that TCP should mitigate.
The Flakeway was used by putting it's computer on the same Ethernet as
one of the computers along the route that the IP traffic would take -
such as a gateway or even one of the user's computers. Flakeway could
then intercept all of the IP traffic and do nasty things such as
dropping, delaying, duplicating, corrupting, and reordering the IP
datagrams. This was useful for testing how TCP reacted to such
situations out in the wild west of the early Internet.
It was also important that a Flakeway could accomplish this without the
need to make any changes to, or even have access to, any of the users'
computers involved in the Internet activity. As long as the Flakeway
machine was on an Ethernet along the route that IP datagrams would take,
it could do its work.
This was accomplished by noticing how ARP functioned -- one of those
End-Middle-Interactions. When a computer needed to convert an IP
address into an Ethernet address, it would send out an ARP request to
get that information. The computer assigned that IP address would
respond, to say that it was the owner of that IP address.
The Flakeway simply watched for these ARP interactions. When it saw a
response from an IP address it was told to "flake", it would simply
follow the real response with one of its own, saying that the Flakeway
was actually the owner of that IP address. Since most software just
believed the last answer, a Flakeway could easily insert itself into any
path on which IP datagrams traveled on that Ethernet, and do its magic.
This seemed like a problem and was quietly reported to the appropriate
"standards" organizations, including the ICCB and probably IEEE so it
could be fixed. In the meanwhile, it provided a mechanism for a
valuable diagnostic tool.
RELEASE DEPLOYMENT
The planning for the January 1983 cutover of the ARPANET from NCP to TCP
surfaced a lot of pragmatic issues, many of which were solvable largely
because the ARPANET was owned and operated by a single management by
DCA. The Internet was expected to grow, even in 1983. NSF had also
appeared as another player, and introduced the notion of independent
ISPs each of whom would own part of the Internet. The growth and
fragmentation of the Internet seemed likely to complicate any changes to
the algorithms and protocols involved. The experience with the 1983
cutover also indicated that there was an enormous amount of detail
involved in planning any transition from a current system to a new one,
as well as during its execution.
How would one introduce a new version of IP, TCP, or any of the
ancillary mechanisms (DNS, DHCP, SMTP, ARP, etc.), while assuring that
service remained always operational, and that the "old" technology was
phased out on an appropriate schedule. We didn't know how to do that yet.
The problem of Release Deployment, and the mechanisms, plans, programs,
and techniques to accomplish it, would be much more complex in the
Internet than was experienced in the ARPANET. Much more research was
required.
======================
THE PLAN
Bob Kahn collared me at one of the Internet meetings in Europe and told
me it was important to make the Internet "open" so that all its
components could be built by multiple vendors. At the time, I was
responsible for making the "core gateways" operate as a reliable 24x7
service. But there were lots of other people experimenting with all
sorts of ideas for the next generation of the Internet.
Operations and Research don't mix well, and we had been experiencing
outages of the "core" when some research project elsewhere on the
Internet misbehaved. I recruited Dr. Eric Rosen and we spent some time
musing about this situation. The result was the concept of "Autonomous
Systems", and a definition of EGP - the Exterior Gateway Protocol. EGP
was a "firewall" protocol, which allowed one piece of the Internet (a
particular autonomous system) to insulate itself from misbehaviors in
the other autonomous systems.
That plan was intended to provide a structure for the Internet in which
"service" parts (such as the core gateways) could coexist with multiple
ongoing "research" parts of the Internet, so that each autonomous system
could operate without disruption by the others.
When the research activities produced the next generation Internet
architecture, solving at least some of the ICCB's "need further
research" issues, EGP would be retired and the new scheme deployed.
Meanwhile, mechanisms such as Source Routing were added to IP, to
provide a way to get the WBNET to actually be used even when the
hop-based routing mechanism of the time would never choose such a route.
At least, that was the vision. It didn't quite work out that way
though.....
Thanks for getting this far, hope you enjoyed the History,
/Jack Haverty
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 665 bytes
Desc: OpenPGP digital signature
URL: <http://elists.isoc.org/pipermail/internet-history/attachments/20260915/04e057bf/attachment.asc>
More information about the Internet-history
mailing list