linux下udp数据收不到包,Linux UDP数据包丢失的原因
我有一个Linux C++应用程序,它接收有序的UDP数据包.由于排序,我可以很容易地确定数据包丢失或重新排序的时间,即遇到"间隙"时.该系统具有处理间隙的恢复机制,但是,最好首先避免间隙.使用一个简单的基于libpcap的数据包嗅探器,我已经确定硬件级别的数据没有间隙.但是,我发现我的应用程序存在很多差距.这表明内核正在丢弃数据包; 通过查看/ proc/net/snmp文件来确认.当我的应用程序遇到间隙时,Udp InErrors计数器会增加.
在系统级别,我们增加了最大接收缓冲区:
# sysctl net.core.rmem_max
net.core.rmem_max = 33554432
在应用程序级别,我们增加了接收缓冲区大小:
int sockbufsize = 33554432
int ret = setsockopt(my_socket_fd, SOL_SOCKET, SO_RCVBUF,
(char *)&sockbufsize, (int)sizeof(sockbufsize));
// check return code
sockbufsize = 0;
ret = getsockopt(my_socket_fd, SOL_SOCKET, SO_RCVBUF,
(char*)&sockbufsize, &size);
// print sockbufsize
在调用getsockopt()之后,打印值总是它设置的2倍(上例中的67108864),但我相信这是可以预期的.
我知道无法快速消耗数据会导致数据包丢失.但是,所有这个应用程序都检查顺序,然后将数据推入队列; 实际处理在另一个线程中完成.此外,该机器是现代的(双Xeon X5560,8 GB RAM)和非常轻载.我们确实有几十个相同的应用程序以更高的速率接收数据,但没有遇到这个问题.
除了消耗太慢的应用程序之外,还有其他原因导致Linux内核可能丢弃UDP数据包吗?
FWIW,这是在CentOS 4上,内核为2.6.9-89.0.25.ELlargesmp.
linux下udp数据收不到包,Linux UDP数据包丢失的原因相关推荐
- linux下ping不通问题的说明与解决(DNS配置丢失)
linux下ping不通问题的说明与解决(DNS配置丢失) 参考文章: (1)linux下ping不通问题的说明与解决(DNS配置丢失) (2)https://www.cnblogs.com/chou ...
- linux格式化大于2t硬盘分区,linux下大于2tb硬盘格式化及挂载,linux下大于2t的分区方法,linux gpt分区表 管理 自动挂载分区...
linux下大于2tb硬盘格式化及挂载,linux下大于2t的分区方法,linux gpt分区表 管理 自动挂载分区 (7页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找 ...
- 在linux下vcd光盘提取,linux下抓取Vcd的视频文件[Linux安全]
赞助商链接 本文"linux下抓取Vcd的视频文件[Linux安全]"是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判 ...
- linux 下mysql忘记密码或者安装好linux后不知道mysql初始密码解决方案
linux 下mysql忘记密码或者安装好linux后不知道mysql初始密码解决方案 参考文章: (1)linux 下mysql忘记密码或者安装好linux后不知道mysql初始密码解决方案 (2) ...
- linux中替换文件中的内容,linux下批量替换文件中的内容linux操作系统 -电脑资料...
对于单个文件,使用sed命令很容易做到, grep命令可以查找单个文件或文件夹下文件中的内容,使用参数"r"或"-R"可以递归查找指定文件夹下的所有文件:参数& ...
- linux备份磁盘数据,linux下vmstat输出数据分析-linux下dd命令备份磁盘的节点(...-linux watch命令用法简介(图文)_169IT.COM...
Linux下vmstat命令的输出,对应着很多选项,有的朋友不是很明白. 下面为大家作详细的分析,如下: Vmstat procs -----------memory---------- ---swa ...
- [转] linux下.tar .gz .tgz .bz2 .bz等解、压包命令详解
tar命令 [原始位置:http://www.51testing.com/?uid-342316-action-viewspace-itemid-232627」 tar 可以为文件和目录创建档案.利用 ...
- linux下php可以实现哪些功能,基于Linux的远程管理系统的设计与实现(PHP)
基于Linux的远程管理系统的设计与实现(PHP) 来源:2BYSJ.cn 资料编号:2SJ260700 资料等级:★★★★★ %D7%CA%C1%CF%B1%E0%BA%C5%A3%BA2SJ260 ...
- Linux下做一个arp欺骗程序6,LINUX下防ARP欺骗攻击
arp欺骗的原理不多述,基本就是利用发送假的arp数据包,冒充网关.一般在网上通讯的时候网关的IP和MAC的绑定是放在arp 缓存里面的,假的arp包就会刷新这个缓存,导致本该发送到网关的数据包发到了 ...
- linux下imp导入oracle数据库,Oracle数据库Linux下的导入IMP
和相关篇的EXP相对应的用了如下的导入方法. [oracle@localhost ~]$ imp Import: Release 11.2.0.1.0 - Production on Fri Sep ...
最新文章
- 2018-8-22-粒子滤波
- AI一键去纹身,几秒钟让你看见明星「真面目」
- 到2020年,将有60%的工作被人工智能取代?
- 高并发缓存处理之——缓存穿透的几种形式及解决方案
- python蟒蛇绘制 C
- 数据查询分页显示的优化方法
- wdcp 去掉index.php,Nginx环境下Oneindex去除网址内的“?”
- 如何下载EP的各个版本?
- 产品经理应该掌握的3种金融思维
- 什么情况下document.write会覆盖页面及覆盖原理解释
- docker 系列 - 基础镜像环境和Docker常用命令整理
- codeforces 884F 费用流,图解很清晰
- 我们应该拥有怎样的职场价值观
- linux佳能打印机服务,linux桌面打印机配置指南
- 【论文泛读17】BERT后训练复习阅读理解和基于方面的情感分析
- [笔记]Open3D基础知识及例程demo
- 设计思维引导设计实践
- python画爱心原理_如何理解python一行代码实现一个爱心字符画?
- HanLP中的人名识别分析详解
- 怎样把COFFEEscript 编译成JS