内网udp组播丢包问题可否完全避免?
事实上UDP组播的丢包是不可能完全避免的,只能尽可能地降低丢包率。
之前在项目中用到了大数据包的组播,我使用了以下几种策略把丢包率降到了最低(若无异常几乎不丢包)。
先说说我项目应用的情况。
内网为万兆光纤(通过万兆交换机连接),数据来源是外部设备采集数据,传输的数据量大概300MB/s。操作系统为windows Server 2008 R2 64bit。
思路:尽量使用大数据包传输,我们知道UDP一个包最大是64KB,而MTU最大是1460Byte,设备采集的数据可能并不是MTU整数倍,所以需要对原始的数据包做一定的处理。综合考虑拆分效率与实际环境测试后,我最后决定将收到的数据包拆分为8096Byte大小的包。随后我做了下面的策略:
1、设置网卡允许大数据包传输。 (若不开启则遇到大数据包网卡会直接丢弃)
2、拆分数据包为8096Byte发送(8096是最大的包,不足8096的则直接发送)
3、设置Socket的接收与发送缓冲区大小为3GByte(理论上是10s的数据缓冲),之前以为这个缓冲有限制,实际上好像并没有。
4、降低收发端单个cpu的使用率(实际试验过程中发现某个cpu高占用会引起网卡丢包)
最近发现单个CPU的使用率与网卡的RSS 设置有关系Network Settings, Network Teaming, Receive Side Scaling (RSS) \u0026amp;amp; Unbalanced CPU Load
■网友
【内网udp组播丢包问题可否完全避免?】 数据比较多,路由器比较烂,就别用组播了,直接广播不经过路由器,丢包问题很少
■网友
协议本身问题无解。你想不丢包就用tcp。
■网友
组播的故障点多一些。 建议抓包确认原因,找到故障点,可先检查是否交换机档次太低,再检查程序。
■网友
百度UPD丢包,第一个链接UDP主要丢包原因及具体问题分析想要杜绝直接socket
推荐阅读
- 网络游戏 采用的是tcp协议还是udp协议
- 路由端口转发失败,外网无法访问内网的web server
- 国内网易云音乐,酷狗,虾米等的国外音乐能不能直接使用,并在国外的视频上商用,会有啥版权纠纷
- 最近浏览一些外国网站,发现很多新闻都是付钱才能查阅的,如果国内网站也采用如此做法而不是大量的垃圾广告会有前景吗
- 国外向国内网上汇款咋最方便?哪一种有担保的功能?
- 网络|为什么国内网络普遍反对安抚奶嘴?
- 国内网络游戏或者页面游戏有没有关卡设计师的职位
- 既然花生壳软件就可以进行内网穿透和ddns,那花生棒存在的意义是啥
- 我在公司内网,微信客户端与qq客户端哪个更安全,防止公司看我聊天记录
- 怎样看待《互联网域名管理办法》中「不得为境外域名注册服务机构管理的域名提供境内网络接入服务」的要求
