gpt4 book ai didi

sockets - 来自广播节点的 UDP 冲突是否可能?

转载 作者:行者123 更新时间:2023-12-03 11:57:46 26 4
gpt4 key购买 nike

我正在尝试运行模拟以在发生数据包冲突的环境中测试数据包丢失。我当前的设置包括几台独立的机器,每台机器都有自己的网络接口(interface)来发送/接收数据包。这些机器通过无线接入点连接。我目前正在使用 UDP,因为它能够 广播单个地址上的数据包。所有机器都在监听共享 IP 地址,例如 192.168.1.255 .

This answer提到UDP数据包不可靠,但它们会因为冲突而失败吗?这里,我用碰撞来指代多个同时传输引起的干扰。也就是说,网络中两个 UDP 节点的同时广播会导致我要测试的不可靠性吗?如果不是,我是否必须考虑更改我的网络配置,甚至开始修改内核代码?

如果问题含糊不清,我会说我的最终目标涉及编写一些可能会或可能不会抵抗冲突的分布式算法。

最佳答案

I am trying to run a simulation to test packet loss in an environment where packet collision is happening.



您可能希望在问题中包含碰撞一词的含义。我将在我的回答中假设您的意思是传统意义上的(即两个网络端点大约同时传输,从而“相互交谈”并混淆彼此的传输,使得传输都不成功),并且不是更广泛意义上的“由于网络拥塞而丢弃数据包”。

This answer mentions that UDP packets are unreliable, but will they fail because of a collision?



答案将完全取决于您运行 UDP 数据包的网络硬件类型。 UDP 协议(protocol)本身是独立于硬件的,因此它不会指定是否会发生冲突,因为它无法知道。

也就是说,如今大多数低级网络硬件都有避免冲突的规定(在我上面提到的意义上)——例如,现代以太网交换机在必要时会进行有限数量的主动排队/缓冲数据包(这要多得多)比旧的 10Mb/sec 以太网集线器高效可靠,它基本上只是将所有端点的以太网 RX 和 TX 引线电连接到一根大的“共享线”中,并希望最好)

另一个常用的网络硬件类型 Wi-Fi 也有 mechanisms减少冲突,但这并不意味着通过 Wi-Fi 进行 UDP 广播是一个好主意,因为它存在其他问题 - 一方面,Wi-Fi 路由器必须接收您的广播数据包并重新广播它以使确保所有其他客户端都可以接收它,更糟糕的是,它通常会设置为以非常慢的“传统”速率重新传输它,以确保任何古老的 Wi-Fi 卡仍然可以接收广播数据。我的建议是,如果您要使用 Wi-Fi,请将广播(和多播)传输保持在绝对最低限度;甚至向每个其他客户端发送单独/相同的单播数据包通常更有效(!)——不是为了避免冲突,而是因为即使是适量的广播/多播流量也会使您的 Wi-Fi 网络陷入困境。

关于sockets - 来自广播节点的 UDP 冲突是否可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51365900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com