|
|
|
Second
refinement: Duplicate elimination
|
|
As things stand,
even with RPB, both RC and RD will forward a multicast
datagram to RE. RE will delete one of these on the
basis of the RPB rule. However, we have still wasted effort with a useless
transmission to RE. If RC and RD knew that RE’s
path to RS was via RD (say) then RC need not
forward to RE. How can RC and RD learn about
RE’s paths? There are two cases to consider:
|
|
1) distance-vector
routing: the distance-vectors RE sends will contain distances
but no indication of first-hop. One possibility is to modify the protocol to
include this information. A second possibility is to make use of the poisoned
reverse rule – send a hop count of “infinity” (i.e. value 16) back to the
first hop on the route.
|
|
2) link state
routing: link-state algorithms flood link-state information to all other
nodes in the network. By this means, each node ends up with a complete
picture of the state of every link in the network. In a unicast link-state
algorithm, a node now proceeds to calculate a shortest path tree from itself
to every other node in the network. In fact, each node has enough information
to calculate shortest path trees for every node in the network. All
the routers shown can calculate shortest-path trees with RS as
source. If we ensure that they all perform precisely the same
calculation, they will all end up with the same result. This means that the
calculation algorithm has to be formally part of the protocol and needs to
specify unambiguous “tie-breaking” rules to select between equal length
routes. For example, there are clearly two equal-length routes from RE
back to RS – we must ensure that all routers make the same choice
between them. This can be done, for example, by choosing the router with the
numerically higher IP address.
|