解决tcpdump "drop by kernel" 问题
2015-05-16 00:02
225 查看
今天使用tcpdump捕包时发现数据不全,进一步跟踪发现,tcpdump出现丢包 (网卡上drop计数没有增加,网卡没有丢包),退出tcpdump时显示一下信息:
579204 packets captured 579346 packets received by filter 142 packets dropped by kernel 原因:Tcpdump 通过网络接口捕获原始数据包,数据包必须解析和执行过滤条件,执行过滤条件需 要耗费一些 时间, 因此传入 数据包必须排队(数据缓存)进行处理,当数据包过多时(处理速度跟不 上缓存速度),缓存区 就会被撑爆 (缓存区大小默认是2M), 此时就会丢弃新近的数据包,直到缓存 区有空间保存新到数据。 解决方案:增大缓存区的大小。 1)tcpdump命令可以使用 -B 参数来修改,单位是KiB。 2)libpap库中提供函数pcap_set_buffer_size() 。 |
相关文章推荐
- 在Ubuntu 12.04上安装VMware Workstation 8.0(解决"Unable to build kernel module"问题)
- 【OpenStack】SSH登录虚拟机出现"Read from socket failed: Connection reset by peer"问题的解决办法
- "http://android.git.kernel.org/repo 打不开"问题解决
- 解决3.2.0 kernel编译问题:ERROR: "__modver_version_show"
- 【OpenStack】SSH登录虚拟机出现"Read from socket failed: Connection reset by peer"问题的解决办法
- centos解决The path "" is not a valid path to the 3.2.0-4-amd64 kernel headers.问题
- 在"Select top 2 * from news order by count"进行筛选时,如果count值有重复时,则筛选结果将不是2条记录,这个问题该怎么解决?
- 解决QuartusII编译parameter "clk0_divide_by" is not a formal parameter of instantiated module的问题
- "cannot locate symbol "sqlite3_enable_load_extension" referenced by "sqlite3" 问题解决
- 因为与关键字冲突而导致的"update语句的语法错误"问题解决方法
- ./HelloWorld line 1: syntax error: "(" unexpected问题解决
- 已解决:大量的全表扫描 "直接路径读" 引发的数据库性能问题
- Undefined symbols for architecture i386:和"_OBJC_CLASS_$_xx", referenced from:问题解决方法
- 解决 HP QC 提示 "no digital signature" 的问题
- JAVA学习13_line.split("")的使用和解决ES接收数据不全的问题
- Spring MVC "The request sent by the client was syntactically incorrect "解决办法
- 关于无法显示该网页,弹出对话框显示"Internet Explorer无法打开Internet站点xxx,已终止操作"问题的解决方法
- "Your project contains error(s),please fix them before running your application"问题解决
- "undefined reference to" 问题解决方法
- Debugger detected - please close it down and restart!"问题的解决