UDP丢包的问题
来源:互联网 发布:mmd工口动作数据 编辑:程序博客网 时间:2024/05/17 08:23
最近在忙着解决一个UDP丢包的问题。
首先说说环境。
- 网络环境很理想,万兆内网,主机之间使用一台光纤交换机连接并无任何中间节点;
- 环境中的所有主机操作系统均为win2008Server x64 128G,CPU 32核 2.8GHz
- 一台主机发送数据(通过UDP组播),其它主机接收
- 发送数据的主机开启8路组播端口,每路发送数据很均匀为51.2MBps。(总数据量为8*51.2Mbps)
- 接收数据的主机同样开启8路组播端口接收数据。并同时保存数据,需要保证平均每1分钟以上才会发生丢包
问题来了
我在实际测试的时候发现;单独存储数据或单独接收组播数据都能达到要求(存得过来,也能保证丢包率稳定在允许范围内),但是边收边存就会导致丢包率猛增。
解决思路
在看过下面的博文后,得知磁盘IO操作频繁会导致CPU等待而不能及时处理内核socket缓冲区中的udp数据包 (ps:该文前面所说的MTU限制并不适用于我当前的内网环境)
- 该文所说的磁盘IO操作与SOCKET缓冲区的抢夺CPU是否正确?
- 是否有方法规避该问题 ,比如单个存储文件的大小与单次写入大小是否存在最佳效率?
浅谈UDP(数据包长度,收包能力,丢包及进程结构选择)
=================================================================================
最新进展:
- 收数端采用完成端口收数
- 将UDP收发缓冲区设大(之前记得再某个地方看到UDP收发缓冲最多只能设置64KB,也没有验证便相信了,事实证明,WinSock的收发缓冲区没有这个限制)
- 升级网卡驱动以及BIOS驱动
- 内存映射文件视图设小
以上设置后,网络丢包明显下降,但是否能达到稳定的要求,还需要拭目以待。
0 0
- UDP丢包的问题
- UDP丢包问题
- 解决UDP丢包问题的经验
- UDP丢包及无序的问题
- 一个UDP包的固定分包丢包问题
- Linux UDP严重丢包问题的解决
- Linux UDP严重丢包问题的解决
- Linux UDP严重丢包问题的解决
- UDP大批量传输数据时的丢包问题优化
- Linux UDP严重丢包问题的解决
- UDP广播包的发送问题
- UDP丢包的原因
- UDP丢包的原因
- udp 丢包问题以及解决方案
- UDP丢包及无序问题
- 如何用vb的winsocket解决udp文件传送丢包的问题
- UDP包是怎么丢的
- UDP传输包大小问题
- 分享一个移动端和PC间的判段方法
- Mysql异常:apply security settings 1045
- Volley源码简单解析
- phonegap笔记-滑轮效果,竖形走马灯效果
- Java源码阅读-StringBuffer
- UDP丢包的问题
- Binary Tree Maximum Path Sum
- Xml利用Pull解析
- jsp页面引入css文件报错
- Scanner类输入
- DAY03_python2 与 python3的区别
- 【HDU】1575 - Tr A(矩阵快速幂)
- java算法——打印水仙花数
- Saving HDU(贪心)