您当前的位置:首页 > 计算机 > 网络通信

UDP 缓冲区

时间:11-12来源:作者:点击数:

最近在做DNS的解析时用的发的都是UDP包,在linux环境下发送10万级别个数的包(就是一次性全扔出去的那种)发现丢包率相当之高,后来加大了缓冲区的大小后大大改善了效果。

主要还是用了linux下的sysctl命令,sysctl能够设置和显示在/proc/sys目录中的内核参数.能用sysctl来设置或重新设置连网功能,如IP转发、IP碎片去除及源路由检查等。

sysctl -w net.core.rmem_max = 5000000

sysctl -w net.core.wmem_max = 5000000

sysctl -w net.core.rmem_default = 5000000

sysctl -w net.core.wmem_default = 5000000

可以像这样来加大缓冲区空间,修改的是/proc/sys/net/core目录下的值,因为UDP是无状态的,在程序没有接受时,一直放在缓冲区里,缓冲区不允许溢出,这样多余的就被丢弃了,开大缓冲区会明显改善效果。其他的一些内容可以看下这篇文章 Linux UDP严重丢包问题的解决

然后还发现多台同时发比一台发丢包要严重,大概是因为二进制回退使得发包延迟丢弃了吧。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
上一篇:DNS帧的格式 下一篇:网络协议简介
推荐内容
相关内容
栏目更新
栏目热门