为什么我的UDP广播无线通信限制为1MB?


10

我正在尝试在网状网络上实施网络编码。因此,我需要将数据包发送到多个目的地,这就是我使用广播数据包的方式。但是我不明白为什么将其限制为〜990KB。

有一些配置要做吗?


也许提到您如何生成数据包以及它是什么操作系统。问题可能在stackoverflow中更多了
ytti

4
@ytti,对我来说,这听起来不像是一个开发人员问题,但在我看来,这很显然是802.11基础知识问题。但是,嘿,我可能错了(正如我妻子指出的,通常是这样)。
YLearn

请添加:相关的配置,硬件/固件信息,也许是图表?
Mike Pennington

Answers:


11

在802.11无线网络中(我假设是您的情况),通常,广播/多播帧(以及许多管理帧)以最低的基本/基本/所需(因厂商而异)数据速率传输。这与受支持的数据速率是分开的。

通常,为了获得最佳范围和最大兼容性,此默认值默认为1Mbps数据速率,尽管在过去几年中,一些供应商一直在增加此默认值。

一些供应商现在还包括多播到单播转换,通过某种形式的多播监听来跟踪多播客户端,但是我不知道类似的广播方式(无线设备无法知道那里可能需要的所有客户端达到)。

如果您正在讨论临时网状网络,则通常无法在驱动程序设置中对此进行控制。


7

组播速率必须是最低的公分母,以便所有设备都能成功接收它。不能确认多播帧[1],因此,如果对等方未能接收到多播帧,则发送方将不知道,也不会重新传输该帧。每个接收器的丢失率通常超过1%。如果在同一频道上有大量单播流量,则损失率会更高。

如果增加基本多播速率,则也会增加丢失率。但是,由于您要组合本机数据包并引入冗余以补偿纯粹的丢失率,因此您的网络应该能够承受这种损失。请记住,多播802.11管理帧(包括信标)并非旨在支持高丢失率。

在Linux上,大多数mac802.11驱动程序应支持设置多播速率。并非如此,最近的内核要求在IBSS和网格的连接时都执行此操作。iw有and 命令的mcast-rate选项。ibss joinmesh join

但是,如果您恰巧运行的是最新的内核,iw并且两者都支持NL80211_CMD_SET_MCAST_RATE,那么您可以随时对其进行更改,它很简单

iw dev wlanX set mcast_rate 6

设置6Mbps的多播速率。

[1]也许他们现在可以。提议对802.11标准进行修改以确认多播帧:所有站点成功接收到多播帧后,将选择随机退避并将确认发送给发送器。当然,ACK可能会发生冲突,因此发送器将重新发送它并允许更大的退避,直到所有接收器都成功确认了该帧。


1

实际上,可以通过强制无线卡上的速率来修改比特率。在Linux上,命令为:

sudo iwconfig wlan0速率11M


3
iwconfig已过时。它使用的所有ioctl要么被黑,要么被完全伪造,甚至没有操作。无论如何,这个特定命令的作用是可怕的。这不是您想要的:这限制了可用费率,它不会以任何方式解决问题。而且我什至不确定在IBSS的情况下此设置是否可以保留很长时间。
BatchyX 2013年

2
虽然这样做可以使您的广播速度超过1Mbps,但这并不是对所提出的问题的正确答案,该问题本质上是“为什么广播无线限制为1MB?” 您要做的是告诉无线设备仅以一种数据速率运行,并且必须至少有一种基本/基本/所需的数据速率。当您获得更高的广播流量时,您将失去降低数据速率(在信号较弱时保持良好连接)或增加数据速率(也影响单播流量)的能力。本质上,这是一种不适合现实世界的快速解决方案。
YLearn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.