Ref: 10710048
Title: Node limitation of Localtalk vs. Ethernet
Date:  7/7/88

Copyright 3Com Corporation, 1991.  All rights reserved.

This is a fairly detailed description of the node limitation on
Appletalk vs. Ethernet support for Macs.

3+Mac has an incredible advantage over all other Mac networking
schemes - AppleShare, TOPS, Novell (presumably, since theirs will
be an AppleShare server):  since
3Com uses unique Ethernet addresses when on Ethernet media instead
of "EtherTalk" addresses, we have no 254-node limitation.
Combine this with our use of larger read/write packets, and our
ability to connect your PC's to Macs and servers over Ethernet
instead of requiring use of slow LocalTalk cards for Mac
integration, and we clearly have a huge advantage in large
Ethernet installations, as well as expandability no one else can
match.

The following explains how EtherTalk handles node addressing.

AppleTalk on a 10Mb Ethernet network is a bit different from
AppleTalk on a 230.4K LocalTalk network.  The following attempts
to provide enough information to understand how AppleTalk and
Ethernet interact and why there exists a limit of 254 AppleTalk
devices on an Ethernet network.  There is also some information
on Ethernet packets and addresses.


Q:  Why is EtherTalk (AppleTalk devices on Ethernet) limited to 254
devices on an Ethernet network?

A:  AppleTalk protocol addressing only allocates 254 node addresses on
any AppleTalk network.  Thus there is a maximum of 254 nodes on an
AppleTalk network running on Ethernet.


Q:  Why is it not possible to run multiple AppleTalk networks over
the same coax cable?

A:  Philosophically, AppleTalk is a no-brain network installation.  You
connect a device onto any AppleTalk network and it figures out how to send
packets to other AppleTalk devices.  On 230.4Kb LocalTalk networks this
invisible setup characteristic is what makes AppleTalk so easy to use.  On
10 MB Ethernet networks Apple has chosen to keep this invisible setup
feature.  The AppleTalk protocol that makes the network setup invisible is
one of the reasons why multiple AppleTalk network numbers cannot exist on
the same physical network.

Invisible network setup on power-up on Ethernet network:

When an AppleTalk device on Ethernet is first powered on, it must defend
its node number.  For example, say the last time it was powered on its
AppleTalk node number was 43.  It sends an Ethernet packet (not 802.3 packet)
of type
EtherTalk (type 809B) to the Ethernet broadcast address.  Inside the
Ethernet packet is an AppleTalk packet addressed to node number 43.  The
newly powered device is calling out to its own address to see if any
other device responds back.  If another device responds back then our new
device knows that node address 43 is taken and it must try another node
number.

So our new AppleTalk device, lets call it MacNew, on Ethernet sends an
AppleTalk packet to node number 43 inside an Ethernet broadcast of type
EtherTalk.  Let's assume there is already a device on Ethernet with
AppleTalk node number 43; let's call it MacOld.  On MacOld, the real AppleTalk
node number 43 hears the Ethernet broadcast, sees that it is an EtherTalk
packet, and reads it.  Upon further examination of the EtherTalk packet it
sees that the packet is addressed to AppleTalk node number 43 from node
number 43.  Since it is AppleTalk node number 43 it must respond back to
the newly powered-on device that is claiming node 43 as its address.

MacOld looks in its small table to find the Ethernet address of AppleTalk
node 43.  Since it is AppleTalk node 43 knows it does not know the
Ethernet address of the other AppleTalk node 43.  It sends an Ethernet
packet of type AARP (Apple Address Resolution Protocol, type 80F3) to the
Ethernet broadcast address.  Inside the AARP packet is a request for the
Ethernet address of AppleTalk node 43.

MacNew hears the Ethernet broadcast, sees that it is an AARP packet and
reads it.  Upon further examination of the AARP packet it sees that it is
addressed to node 43 and has been sent by a device with MacOld's Ethernet
address. MacNew sends an Ethernet AARP packet back to MacOld's ethernet
address saying that it is node number 43.  Included in MacNew's packet is
its Ethernet address.

MacOld hears an Ethernet packet addressed specifically to it, reads it, and
finds that it contains the Ethernet address of the AppleTalk node claiming
node 43.  MacOld then directs an Ethernet packet to MacNew's Ethernet
address that contains an AppleTalk packet addressed to node 43 saying that
AppleTalk node number 43 is taken.  MacNew receives the EtherTalk packet
and starts the whole process over again with a new randomly chosen node
number; let's assume node number 76.

Summary of why there can be only 254 AppleTalk nodes on Ethernet:

You suggested that there was no reason you couldn't have multiple network
numbers on the same Ethernet coax.  Since packets get sent to a different
network the number could be ignored by devices on the other network number.

When a device first powers on it does not know its node number or network
number.  MacNew called out to node 43.  If there are two network numbers
on the same Ethernet, which network number would it be calling out to?
Which node 43 should respond?  Which network is it supposed to be on?
Since each network number can be in a different zone (and thus a different
departmental section), it cannot randomly pick a network number.

You could insert a setup file on each EtherTalk device that gives it a
starting network number but the need to do this would eliminate the
ability for invisible network setup.  Eliminating the invisible network
setup and opting for the requirement of a setup file still doesn't solve
all the problems.  How do two devices on different network numbers
communicate?  You would need an AppleTalk bridge that can connect to two
separate AppleTalk networks through the same port.  Life quickly gets very
confusing if the same physical media is going to have multiple AppleTalk
network numbers.

AppleTalk communications on Ethernet:

The user on MacNew (AppleTalk node 76) pulls down Chooser, selects the
AppleShare server icon, to find a list of all the AppleShare servers.
MacNew sends out an Ethernet broadcast packet of type EtherTalk addressed
to the AppleTalk broadcast address requesting all AppleTalk devices of
type AFPServer to respond.  (AppleShare servers have the AppleTalk type of
AFPServer which stands for Apple Filing Protocol.)

MacOld is an AFPServer.  MacOld reads the Ethernet broadcast, reads to
contents since it is type EtherTalk, sees that it is an AppleTalk
broadcast for type AFPServer and that it is from AppleTalk node 76.

MacOld looks in its small table for the Ethernet address of AppleTalk node
76. Since the small table does not have that information, MacOld sends an
Ethernet broadcast packet of type AARP to AppleTalk node 76.

MacNew reads the Ethernet broadcast, reads the contents since it is type
AARP, and sees that it is a request for the Ethernet address of AppleTalk
node 76.  MacNew responds with an AARP packet sent to the Ethernet address
of MacOld, the device that sent the AARP packet.

MacOld adds to its small table the Ethernet address of AppleTalk node 76.
MacOld then sends an Ethernet packet to MacNew containing an EtherTalk
packet to node 76 from node 43 giving MacOld's name and saying that it is
an AFPServer.

MacNew adds to its small table the Ethernet address of AppleTalk node 43.
MacOld's name appears in the Chooser window.  The user at MacNew selects
MacOld in the Chooser window.  The Chooser desk accessory stores the
AppleTalk node name and address of the MacOld AFPServer.

General comments on addresses:

There are two types of "Ethernet".  There is "IEEE 802.3 Ethernet" and
there is "Xerox Ethernet".  They differ in that 802.3 replaced the Xerox
"type" field with a length field.  Otherwise they are the same.  Now it
turns out that the types assigned by Xerox are numbers that would be
illegal lengths if read according to 802.3.  There are only a few types
that could be legal lengths.  So you can tell the difference
between Xerox and 802.3 packets and use both Ethernet protocols on the
same coax cable with no problems (except for the few types that could be
read as valid lengths).  Xerox assigns types to make sure that no two
types use the same type identifier.

Ethernet addresses are assigned by the manufacturer of the Ethernet
device/card.  Each Ethernet connection has a 6-byte Ethernet address.  The
first 3 bytes are assigned by IEEE to a specific manufacturer for a nominal
fee.  The second 3 bytes are uniquely assigned by the manufacturer.  Thus,
every Ethernet connection comes from the factory with what amounts to a
unique social security number.

The Ethernet address small tables mentioned earlier are not permanent.  The
information is aged.  This means that OldMac will update NewMac's
address after a certain length of time.  If NewMac does not respond to the
update request, its address is deleted from the small table.

DECnet uses Ethernet as a network.  DECnet network management requires
that the DECnet software be allowed to alter the Ethernet address (device
social
security number) if it needs to.  I don't know why it would want to alter
the unique Ethernet address.  I don't know if the device remembers its
old address or if the newly assigned address wipes it out completely.

The future of the 254 EtherTalk node limit:

Large Ethernet networks typically contain many more than 254 devices.
Companies that have large Ethernets buy large numbers of Mac2s.  It stands to
reason that someday there will be a solution for the large Mac2 customers
that need to connect more than 254 EtherTalk nodes onto their Ethernet
backbone.
