- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
所以我不得不为一个类(class)项目模拟原始的泛洪算法,我想澄清和确认一些想法,因为在互联网上似乎真的很难找到我想要的东西(所以我一定是做错了什么)。 ..
无论如何,据我所知,泛洪算法是指当一个节点想要将一系列数据包发送到目的地时,将每个数据包发送到每个连接的节点。然后,这些接收节点通过将它们收到的数据包的副本发送到所有连接的节点(发送原始数据包的节点除外)来重复该过程。依此类推,直到数据包到达目的地。所以基本上这个算法可以确保数据包在充斥网络时到达目的地;故名。所以这是我和我的教授澄清的:
1) 我假设生成的数据包将有一个跳数计数器,它的值对于每个数据包都是相同的,在每个访问的节点上都会减少,当它达到 0 时,数据包将被丢弃。我还假设该值将取决于网络的规模,他同意但没有说明网络的规模如何影响它。你会测量它的直径吗?有人可以帮我吗?
2) 一个节点会保留一份他们自己收到的数据包的副本(为什么?如果他们攻击的那个节点没有发回确认,则要重新发送?)并且当跳数计数器到达时,数据包会从网络中丢弃达到 0 但是当数据包到达一个已经有它的副本的节点时会发生什么?我假设节点丢弃它,因为它有一个副本并且逻辑上已经将它发送给它的所有邻居,但我不确定。有人可以澄清一下吗?
3) 所有节点都有它们可以容纳的最大数据包容量。那么当一个节点达到最大容量时“停止”工作并且不接受进一步的数据包或以 FIFO 方式丢弃?我假设第一个,因为该项目的目标之一是估计哪些节点将首先被淹没。但实际上发生了什么?它的连接节点不断发送数据包,只是没有得到确认,因为它丢弃了它们或发送了一个不再接收任何数据包的信号,我不知道,将它们路由表中的成本更改为一个值这意味着没有连接/或无限成本,所以他们不再发送任何东西。
4)还有我忘了问,生成数据包的源节点呢?它也保留副本吗?我认为它确实如此,但它不会是最有可能首先泛滥的节点,因为它会在生成的那一刻保留每个数据包的副本吗?我可能想多了......
最佳答案
1) [hop counter value]
它需要足够大以遍历网络。它基本上是数据包在通过网络的最长路径上遇到的中间节点的数量。
2) when a packet reaches a node that already has a copy of it what happens?
它被丢弃了。
3) All nodes have a maximum capacity of packets they can hold. So when a node reaches maximum capacity 'stops' working and doesn't accept further packets or drops in a FIFO style?
不接受新数据包。无处可放:它仍然有未处理的数据包排队。这不是 FIFO。
4) Also I forgot to ask, what about the source node that generates the packets? Does it also keep copies? I think it does but then won't it be the most possible node to flood first since it will keep a copy of every packet the moment is generated? I am probably over thinking it...
如果源节点正在收集确认,它会保留每个数据包直到它被确认,因此它可以实现重试算法。
了解您是在谈论 IP、UDP 还是 TCP,或者只是数据链路层,这将有很大帮助。
关于algorithm - 网络上的泛洪算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10549604/
我是 websocket 的新手,我在 web 应用程序上实现了 websocket,服务器端是用 java 编写的,客户端是 javascript。服务器通过 websocket 向客户端发送通知。
我的网站有一个 Javascript 方法,可以发出 AJAX 请求将商品添加到购物车,而无需重新加载页面和发出简单的通知。 AddToCart() 但是,使用任何 Javascript 控制台,我
我正在尝试在两台 ubuntu 机器之间进行 TCP SYN 泛洪(我正在使用 virtualbox,并且我确实在机器之间进行了 ping)。 我得到的错误是 ERROR setting IP_HDR
我希望我的 Apache 2 网络服务器因 TCP Syn Flood 攻击而拒绝服务。 我将 Kali Linux 与 MSF 结合使用来关闭我的 Web 服务器。但我的网络服务器似乎并不关心这个。
我是一名优秀的程序员,十分优秀!