Illustrated TCP/IP Illustrated TCP/IP
by Matthew G. Naugle
Wiley Computer Publishing, John Wiley & Sons, Inc.
ISBN: 0471196568   Pub Date: 11/01/98
  

Previous Table of Contents Next


Chapter 298
Forwarding Cache

The forwarding cache is used to determine how to forward a multicast datagram. A multicast datagram may be delivered locally or it may be forwarded on a branch to another multicast router. I mentioned before that upon receipt of a multicast datagram, Dykstra runs and the result is a pruned, source-rooted tree. The forwarding cache is built using the shortest-path tree built by the Dykstra algorithm and the entries in the local-group database. The router first finds its position in the shortest-path tree. Once the router discovers its position, it will create a entry in the forwarding cache that contains the (source, group) pair, the upstream node, and the downstream interfaces.

Forwarding Cache

  Used to determine the correct path on which to forward a multicast datagram.
  Entries are placed here by the shortest-path tree built using the Dykstra algorithm and the local-group database.
  Router must find its position in the shortest-path tree.
  Router creates an entry that consists of the (source, group) pair, the upstream node, and the downstream interfaces.
The following entries are placed into the forwarding cache:
Source network: The network number of the source.
Destination multicast group: A known destination group address to which multicast datagrams are currently being forwarded.
Upstream node: The interface that datagrams addressed to (source, group) should be received on.
List of downstream interfaces: The interface(s) that a multicast datagram (indexed by source, group) should be forwarded on.
List of downstream neighbors: To assist in the forwarding of multicast datagrams in a hybrid (mixed OSPF and MOSPF) network.
TTL: The number of hops the datagram will travel to reach any outlying group members. This provides for efficiency in that the router can discard a multicast datagram if the received TTL is less than this TTL.

TTLs are used by transmitting hosts to restrict the forwarding of a multicast datagram. This allows for efficiency in that a multicast datagram will only be forwarded (over routers) the number of hops indicated by the TTL of the received datagram. Notice that in the forwarding cache, each of the downstream neighbors is labeled with a TTL (Time to Live) value. The is an optimizing feature in that if a MOSPF router receives a multicast datagram whose TTL is lower than the entry in its routing table, the router will discard the datagram. The information contained in the cache remains stable until one of two things happens: An OSPF topology change forces the cache to be flushed (all entries are deleted and are not placed back into this cache until receipt of a multicast datagram which will build a new entry); or a group-membership LSA is received that contains a change in the members of a group. A new tree will have to be constructed based on this information.


Previous Table of Contents Next