热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关于高效的数据包捕获实验---丢包分析

现在就差主机到虚拟机的捕获包的实验了,设想了一下,假设以500Mbits的流量发给一个100M的以太网卡,显然丢包率是很明显,
现在就差主机到虚拟机的捕获包的实验了,设想了一下,假设以500Mbit/s的流量发给一个100M的以太网卡,显然丢包率是很明显,所以这个问题的实验就暂时不做了,这跟网卡的收发速度相关,属于硬件上的问题,所以暂时不做实验,那么我们所面临的问题就成了,内核和应用程序应该怎么处理数据包,才能真正体现100M网卡的性能,当然大多数情况下,丢包的情况是比较严重的。

结合别人的经验,现分析如下:

  • 内核将网卡缓冲区的内容直接拷贝到应用程序(libpcap),严重浪费cpu的性能,导致到来的数据处理不及时。
  • 采用中断响应的方式会导致,处理器的时间浪费在中断处理上,就是所说的中断活锁的问题。

解决方案如下:


  • 对于中断响应的问题,多是采用设备轮循的方式,减少同类中断的次数。
  • 给内核打实时补丁,加速中断的响应。
  • PF_RING套接字和内存零拷贝的技术。

当然前两种方案只能解决小部分问题。真正的问题解决应该是后一种方案,内存零拷贝和PF_RING的原理其实是一样的,都是采用将内核缓冲区的数据直接映射到用户空间,采用DMA,用户空间可以直接访问,这样就避免了数据包从内核到应用程序的拷贝。至于具体如何实现,我还在研究中,如果哪位高手知道的话,可以帮帮我,当然实现了,我会第一时间把结果帖出来,第一时间和大家分享。

    本来想用WINDOWS下的tcpreplay给linux下发包测试的,但是下载的tcpreplay在windows下安装,太过麻烦,一点都不智能,还不如linux下的tcpreplay呢,但是linux下用tcpreplay我发的包,大部分都能正确捕获,当然捕获后也有很高的丢包率,不知道为什么。我的猜测是凡是经过网卡的数据,libpcap都能统计出来,也就是说除了如果流量太大,导致网卡的包进不去网卡的情况之外,libpcap都能探测得准确。也就是说前两个实验得结果中收到得包数,就是到达网卡得包数,也就是说我进行文件传输的实际发包数和捕获的发包数是一致的,只是处理速度不够导致丢包。

    至于经过网卡的包等不等于实际发包数,当然是网络流量小于网卡处理能力的情况下,也就是不考率发送的包的速率超过网卡的接受速度的情况下,如果结论成立,那么我的假设就是成立的,如果结论不成立,那么我上面的假设就是错误的。

    说白了,就是libpcap自带的统计功能里的抓包数,是不是经过网卡的包数的问题,当然要过滤掉规则外的包。现在时间忙就暂且不做这个实验了,十分希望网友能帮帮忙。如有疑问,请直接留言。我现在先去研究下怎么样提高包得处理速度,也就是PF_RING和内存零拷贝技术怎么应用在内核中。


阅读(1354) | 评论(0) | 转发(0) |


0

上一篇:关于高效的数据包捕获实验(2)

下一篇:中国强大的真正希望---浙江大学郑强演讲



相关热门文章
  • 便宜卖TDS2024C TDS2024C TDS2...
  • 本科毕业设计(论文)选题...
  • vim插件clang_complete的安装...
  • ADP服务数据为王的时代 经销商...
  • 宁隆贵金属交易所现货白银合作...
  • "没有找到COMRes.dll,应用程...
  • 如何给文件夹设置密码?...
  • 免费使用正版卡巴斯基-最新key...
  • 卡巴斯基激活码
  • 最新PUBWIN2007破解(QQ讨论群:...
  • ChinaUnix & ITPUB社区12周年...
  • ssh连接出现以下提示,求解...
  • 如何扩展MYSQL
  • 准备做一个大型门户,用户什么...
  • gbk or utf8

给主人留下些什么吧!~~
评论热议


推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 服务器上的操作系统有哪些,如何选择适合的操作系统?
    本文介绍了服务器上常见的操作系统,包括系统盘镜像、数据盘镜像和整机镜像的数量。同时,还介绍了共享镜像的限制和使用方法。此外,还提供了关于华为云服务的帮助中心,其中包括产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题和视频帮助等技术文档。对于裸金属服务器的远程登录,本文介绍了使用密钥对登录的方法,并提供了部分操作系统配置示例。最后,还提到了SUSE云耀云服务器的特点和快速搭建方法。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文由编程笔记#小编整理,主要介绍了关于数论相关的知识,包括数论的算法和百度百科的链接。文章还介绍了欧几里得算法、辗转相除法、gcd、lcm和扩展欧几里得算法的使用方法。此外,文章还提到了数论在求解不定方程、模线性方程和乘法逆元方面的应用。摘要长度:184字。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 在2022年,随着信息化时代的发展,手机市场上出现了越来越多的机型选择。如何挑选一部适合自己的手机成为了许多人的困扰。本文提供了一些配置及性价比较高的手机推荐,并总结了选择手机时需要考虑的因素,如性能、屏幕素质、拍照水平、充电续航、颜值质感等。不同人的需求不同,因此在预算范围内找到适合自己的手机才是最重要的。通过本文的指南和技巧,希望能够帮助读者节省选购手机的时间。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
author-avatar
lp-阳光切割了记忆的角度
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有