Within a network one host sometimes wants
to send messages to more than one receivers or even to all the other hosts.
Examples are like weather broadcasting, video living, software distribution, web-cache
pushing and so on. The easiest way we first realize is to broadcast the
messages into the network with a packet to each receiver, BUT IS THIS THE MOST
EFFICIENT ONE?
The source host simply sends one packet to
each destination as shown above (left). This method is really a waste of
bandwidth. What’s more, this method requires the source host to have all the receivers’
addresses.
1)
Flooding
The source host send the packets on network
and all the routers that receive the packets simply copy them and forward them
to their neighbors. So this method ensures that each other host in the same
network can hear the packets from the source. If the listener is not a member
of receivers, it just ignores the packets. This method is easy to practice but
it also wastes the bandwidth because it generates too many packets.
2)
Multidestination Routing
The source only sends a single copy of packets
with multiple destinations carried in them. When the router receives the
packets, it checks out whether its neighbors are on the destination list. 如果它发现连接到它的某条线路上有destination list里的目标主机,则它就向此链路发送一份分组的副本,副本中destination
list上列出的不在此链路上的目标地址被删除. After enough hops, there will be only one host address on each
destination list. Then the packets could be treated as common packets of
unicast. 我们可以这样理解:当有发往多个目标的分组在开始的时候沿相同路径传送时,其中一个分组承担网络费用,其他分组搭便车。
3)
Reverse Path Forwarding
In this method, when the router receives
some packets from the broadcast source host, it checks the PATH through which
the packets come. If the path is a shortest one from it to the source, the
router forwards the packets to all its neighbors path except the one through
which the packets come, because these packets it receives from the shortest
path are most probably the first copies the source sends. Similarly, if the
packets are not from the shortest path, the route simply drops them because the
packets might be redundant.
逆路径转发有点是兼顾效率和简单性。
4)
Spanning Tree
Source host保
存一棵生成树,它是子网的一个子集,它包含所有的路由器,但是不包含任何环。每个路由器都知道连接它的哪些线路属于这棵生成树。当一个分组到达路由器之
后,它将其转发到除了到来路径之外的所有其他生成树路径中,这种方法可以节省带宽,并且所生成的分组副本是最少的。此方法的缺点是,每个路由器必须保存一
棵生成树,当采用距离矢量路由算法的时候就比较难办了。