I understand that destination-based routing builds the "route" from the destination backwards to the source (e.g. if using a spanning tree, then the tree is routed at the destination). With source-based routing the opposite is true: the route is build from the source onwards towards the destination.
However I don't understand the practical difference. How does it make a difference if I base my decision on the source or on the destination. Say, a shortest path algorithm such as Dijkstra's should give the same result regardless?
Could someone explain?
Asked By : JB2
Answered By : JB2
Destination-based routing is the typical, most common type of routing. For this, each message that we send contains the address of the destination and the forwarding decision process makes its forwarding decision solemnly based on this address (and independent of the original sender). i.e. We don't care about who sent the message, only about where it is supposed to go.
So, when constructing a routes, one thing we can do is root a spanning tree at the destination. This creates a path from all possible sources to that destination. This is called a "sink tree".
Source-based routing is the reverse of destination-based routing. The decision process is based on the source address. So, when sending a message, we only include the address of the sender (and not of the destination). The decision on where to forward the message is based on this source address. This means that the source could be sending the message to any host (we don't know exactly who). Therefore we create a spanning tree routed at the source (this is known as a "delivery tree") and the message is thus sent to every child in this tree.
Source-based routing is only really useful for doing some kind of broadcast / multicast (e.g. consider a delivery tree when building a multicast group).
Best Answer from StackOverflow
Question Source : http://cs.stackexchange.com/questions/10718
0 comments:
Post a Comment
Let us know your responses and feedback