关于 Udp 无线发送文件,广播和单播怎么差别这么大

2017-06-29 16:24:26 +08:00
 Duluku

公司有个这样的需求,想将一个文件尽快的分发给各个手机,所以我自然有想到通过 Udp 来一对多广播分发文件。但是广播的测试结果好像不太令人满意,下面是我的测试结果:


测试的环境:

2.4GHz 的 TP-Link TL-WVR1200, 发送端和接收端都是 Windows,Udp 发送的代码是 Java 写的。

这里我将一个 40M 的文件拆分 4000 左右个 10K 的包,然后依次发送过去。

发送端通过网线接入路由器, 接收端通过无线网卡接入。


测试 1. 更改发送包的时间间隔

修改发送端的每次发送一个 10K 包之间的时间间隔:

间隔 3ms 之后,单播基本就不丢包了,但是广播会很好的收取大概 100 多个包之后就卡住不动了,之后偶尔收到几个,然后就再也没有了。这里是不是路由器在广播这方面有限制?


测试 2. 更改发送端接入方式

这里都采取发送端发送间隔 5ms 进行。

这里我只是将开始的发送端的有线接入改成无线接入,但是发送的单播丢包率猛增。 广播我就不奢望什么了。


请问各位大佬,路由器 UDP 广播有什么可以设置的吗?还是要刷什么固件之类的? 甚至需要定制吗?

ps. 不清楚具体节点应该放哪里.. 如果放错了,希望管理帮我移到合适的节点把 :)

10983 次点击
所在节点    路由器
55 条回复
heiher
2017-11-16 10:03:57 +08:00
@chinawrj 无线实时视频组播,使用了 Raptor 算法做 FEC,使用普通的 TP-LINK 天线路由实测下来链路质量实在太差,空口抓包组拆走的 802.11b/11Mbps,关闭 FEC 看接收状态图基本不能用。前辈有没有性能比较好的 AP 设备推荐呢?可以调控速率、组转单模式等等参数的,谢谢!
chinawrj
2017-11-17 08:43:31 +08:00
这个问题是这样的,现在不管你用 802.11ac 还是 802.11n ,无线组播速率(其实在 802.11 MAC 那边都是广播,当然有的路由器会用 Unicast 给每个 station 单独发组播,那个是另外一回事了。这个单独买个 unicast 发包的模式在 station 数目很多的情况下,效率就很低下了。)很多 AP 都默认设置为 1Mbps,因为速率越低,纠错性能越好,这样基本所有的路由器都能收到这个组播包。
1. 调控速率 能刷 tomato 路由的 BCM 方案都可以。Marvell 的 8864(WRT1900AC)也行,但是开源 Driver 要改一下才行。具体不方便公开讨论。问题是 WRT1900AC 的 Marvell 方案可能已经不再售卖了。
2. 组转单模式是路由器 OS 层面设置的。OpenWRT 就提供了相应的接口(其他 Linux 应该也行)。参考这个: https://wiki.openwrt.org/doc/howto/udp_multicast
/sys/devices/virtual/net/br-lan/bridge/multicast_snooping
DaveHollyland
2018-03-05 12:05:53 +08:00
@chinawrj 大咖,你好!
我这边也在做一个无线实时视频传输产品,TX 无线传输源端采用 AR1021X 802.11n 模组,采用软 AP 方式。目前也碰到 UDP 组播或广播模式下丢包严重不可用,unicast 模式下传输正常。目前联系 Qualcomm 方面,厂家回复 driver 底层中对组播或广播速率做了限定,不知是否有其他方法绕过这个限制?
这个问题困扰我们一段时间,如果您有解决方案,我们想请你有偿解决一下。我的联系方式: 402912251@qq.com
chinawrj
2018-03-05 13:07:54 +08:00
@DaveHollyland 你们有 qualcomm 驱动源码吗?可能需要这个。
DaveHollyland
2018-03-05 14:05:37 +08:00
@chinawrj 驱动源码和配置文件我们手上都有,谢谢!
chinawrj
2018-03-06 08:39:29 +08:00
@DaveHollyland 改一下默认的广播包使用的 MCS 或者说是速率,改完之后抓包看一下 802.11 的帧头确认一下速率就 OK 了。另外内核要关闭 multicast_snooping。具体参考我上面的回复。
DaveHollyland
2018-03-06 13:42:36 +08:00
@chinawrj 谢谢指点,我们先调整实验一下。
DaveHollyland
2018-03-08 14:30:44 +08:00
@chinawrj 你好,我们的设备上没有 multicast_snooping 这个节点,我查了一下,multicast_snooping 是网桥的驱动部分,我们是项目中是两个终端设备,一个发送一个接收,都使用 linux 系统,使用 wifi 直连,使用组播传输视频,目前组播传输丢包很大,能否给一些建议?
DaveHollyland
2018-03-09 14:43:27 +08:00
@chinawrj 我们使用的是 5G 频段,限速 4M,修改限速并抓 wifi 包确认修改成功了,但是发现很多包没有发送出来,不知道是什么原因,是因为组播包的优先级低导致吗?
chinawrj
2018-03-09 20:12:02 +08:00
@DaveHollyland 现在 phy 层速率是多少,能够贴出来吗(截图)?另外建议在屏蔽间里面测试一下 iperf UDP 发送的乱序和丢包情况,再上你们的系统测试。
DaveHollyland
2018-03-12 15:37:15 +08:00
@chinawrj 好的,我这边抓包出现点问题,稍后贴出 802.11 的抓包图,请问方便邮件或 qq 联系吗?我的 qq:81182980
DaveHollyland
2018-03-15 15:00:06 +08:00
@chinawrj 我们现在修改组播带宽为 78M,组播丢包率为 0.1%左右,据你的经验,目前还有可能做到组播丢包率更低的水平吗?
DaveHollyland
2018-04-02 20:29:50 +08:00
@chinawrj 抓包终于搞好了!我们测试了各种速率,下图是 18M 的截图() https://img-blog.csdn.net/20180402202904253
llljjlj
2018-04-16 11:41:52 +08:00
@chinawrj
我这里也遇到了相同的问题,想请教你一下。使用的 wifi 也为 AR1021X,UDP 广播也是被限制在了 1M。我的 QQ1208010091 还请帮助。
llljjlj
2018-04-16 11:42:37 +08:00
@DaveHollyland
我这里也遇到了相同的问题,想请教你一下。使用的 wifi 也为 AR1021X,UDP 广播也是被限制在了 1M。我的 QQ1208010091 还请帮助。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/371950

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX