Paul Koning wrote:
Paul Koning wrote:
...
The routing message size isn't an issue in Phase IV because the data
can
be sent in pieces. That was another important change from Phase
III,
which always sends the route data for all nodes (up to 255 of them)
whether there is a change or not. 255 nodes just barely fits into a
standard DDCMP packet, but 1023 nodes would not. (Nor in a standard
Ethernet frame, for that matter.) And it's wasteful to send data
that
hasn't changed. So Phase IV has a way to send routing data for
selected
nodes.
Looking at traffic, I'd say that systems seems to be sending out
routing
packet updates although nothing is changing.
Oh right... I forgot one detail.
Routing updates are sent when something changes, and those (in Phase IV)
can be optimized to omit what hasn't changed.
In addition, full routing messages (all destinations) are sent
periodically. That makes the system "self-stabilizing": if any node is
confused about the routing data, it will reasonably soon be straightened
out by a full update.
Yes. That more match with the reality as I can observe it. :-)
Johnny
Kari Uusim ki wrote:
On 30.6.2010 19:41, Johnny Billquist wrote:
Hi, Paul. I see that I'll have to be way more careful with how I choose
my words around you... :-)
Paul Koning wrote:
...
The 2.0.0 (phase IV) routing spec talks about the "on Ethernet"
cache
instead, and describes it in a way that makes it help only for
directly
attached nodes. The "previous hop" flavor was a generalization in,
I
think, 2.1.0 (Phase IV+).
Hmm, yuck. Now I'll have to try to remember some details, as well as
extrapolating some stuff.
No, as far as I can remember, the end-nodes will only remember (or
know)
of one level 1 router. It will pick the one with the highest priority
in
case there are more than one on the local segment. That will become
the
designated router, and will be used for all traffic I believe.
The way this works is that there are two multicast addresses used on
Ethernet segments. (Well, three later on, a separate one for all L2
routers.) One is "all routers", one is "all endnodes". Routers listen
to the first, endnodes to the second. Hellos are sent to "all routers"
so ONLY routers hear hellos. Both endnodes and routers send hellos
(different types). So routers build a list of all the nodes on each
interface. The routers on an Ethernet pick one to be the designated
router, and only that router sends a hello to "all endnodes". That's
how endnodes know the DR.
Not really.
end-nodes send endnode-hello messages to ab:00:00:03:00:00
l1 routers send router-hello messages to ab:00:00:03:00:00
l2 routers send router-hello messages to ab:00:00:03:00:00,
ab:00:00:04:00:00 and 09:00:2b:02:00:00 (exactly which of these last two
addresses are sent to seems to differ from node to node, and I haven't
figured out exactly how yet).
The multicast address AB 00 00 03 00 00 is to all Phase IV routers (=endnode hello)
The multicast address AB 00 00 04 00 00 is to all Phase IV endnodes
(=router hello)
All Level 1 and Level 2 routers should send router hellos to endnodes and endnodes should send endnode hellos so that routers know of all endnodes.
Sigh. Why don't people read what I write? Note that *all* machines sends hello messages to AB 00 00 03 00 00.
Only level 2 routers sends anything on any other address, but they send on AB 00 00 03 00 00 too.
Johnny