网络上的泛洪算法

时间:2012-05-11 10:24:14

标签: algorithm networking flooding

所以我必须模拟一个课程项目的原始泛洪算法,我想澄清并确认一些想法,因为在互联网上找到我想要的东西似乎真的很难(所以我一定做错了)。 ..

无论如何,据我所知,泛洪算法是当一个节点想要将一个数据包序列发送到目的地时,每个数据包都会发送到每个连接的节点。然后,那些接收节点通过将它们接收的数据包的副本发送到所有连接的节点而重复该过程,除了发送原始节点的节点之外。依此类推,直到数据包到达目的地。所以基本上这个算法可以确保数据包在充满网络的同时到达目的地;因此这个名字。 所以这就是我向教授澄清的内容:

1)我假设生成的数据包将有一个跳数计数器,它的值对于每个数据包都是相同的,在每个被访问节点上将减少,当它达到0时,数据包将被丢弃。我还假设该值将取决于网络的大小,他同意但没有说明网络的大小如何影响它。你拿直径吗?谁能在这帮助我?

2)一个节点保留了他们自己收到的数据包的副本(为什么?如果他们将其打开的一个节点没有发回确认,则重新发送?)并且当跳数计数器时数据包从网络中丢失达到0但是当一个数据包到达已经拥有它的副本的节点时会发生什么?我假设节点丢弃它,因为它有一个副本,并且逻辑上已经将它发送给它的所有邻居,但我不确定。有人可以澄清一下吗?

3)所有节点都拥有最大容量的数据包。那么当节点达到最大容量“停止”工作并且不接受FIFO样式的进一步数据包或丢弃时?我假设第一个,因为该项目的目标之一是估计哪些节点将首先被淹没。但究竟发生了什么?连接到它的节点不断发送数据包,只是没有得到确认,因为它丢弃它们或发送一个不接收任何更多数据包的信号,我不知道,将路由表中的成本更改为一个值这意味着没有连接/或无限远的成本,所以他们不再发送任何东西了。

4)我也忘了问,生成数据包的源节点怎么样?它还保留副本吗?我认为它确实如此,但它不会是最可能的洪泛节点,因为它将保留每个数据包的副本生成时刻?我可能在想它......

1 个答案:

答案 0 :(得分:2)

  

1)[跳计数器值]

它需要足够大才能遍历网络。它基本上是数据包在通过网络的最长路径上遇到的中间节点的数量。

  

2)当数据包到达已经拥有它的副本的节点时   会发生什么?

它被删除了。

  

3)所有节点都拥有最大容量的数据包。所以当   节点达到最大容量“停止”工作,不接受   FIFO风格的其他数据包或丢包?

不接受新数据包。无处可放:它仍然排队了未处理的数据包。它不是FIFO。

  

4)我也忘了问,生成的源节点怎么样?   包?它还保留副本吗?我认为确实如此,但不会   是最可能的洪水节点,因为它会保留一份副本   生成每一个数据包的时刻?我可能在思考   它...

如果源节点正在收集确认,它将保留每个数据包,直到它被确认为止,因此它可以实现重试算法。

要知道您是在谈论IP,UDP还是TCP,还是只讨论数据链路层,这将会有很大帮助。