当前位置:  技术问答>linux和unix

网络编程抓包程序缓存问题?

    来源: 互联网  发布时间:2016-02-09

    本文导语:  现在有一问题没有搞明白,在做网络编程时,需要抓取数据包进行分析,一般设定缓冲区来接收数据包,缓冲区的大小设定的比ETH的包大一些即可,如2048,然后用recv函数接收。问题是我在用GDB调试时,发现跟踪查看...

现在有一问题没有搞明白,在做网络编程时,需要抓取数据包进行分析,一般设定缓冲区来接收数据包,缓冲区的大小设定的比ETH的包大一些即可,如2048,然后用recv函数接收。问题是我在用GDB调试时,发现跟踪查看中间的处理程序后,不会丢失后面的数据包,因为我感觉在调试的过程中,缓冲区没有处理完毕,还没有启动新的recv过程,那接下来的数据包应该丢失了,等再次recv的时候,应该收到当前网络传输的数据包才是,而实际上,并没有丢失紧接着的数据包,当然对于大量的数据包传输还是有抓取不到的。
   那这些没有丢的数据包是被系统缓存了么?还是GDB给缓存了?还是其他的?
   另外,如果数据包流量很大,我用单线程实现抓包、重组、分析、记录等功能的话,会不会有漏掉的数据包?我自己感觉这样会丢失不少数据包,因为重组、分析和记录比较耗时,在处理完毕再接收下一个的话,有可能丢失数据包。不知道对不对,希望高手帮忙解答一下哈!

|
我们来理一下过程
1.双绞线上传来一个帧
2.网卡发现这帧是自己要的,考到网卡的缓存,发一个中断通知CPU来取
3.CPU把该帧考到内核的数据结构中(sk_buff)
4.经过一堆函数之后将此包考到用户态相关进程数据结构中
网卡应该不会存太久,很可能是存在sk_buff list中

|
感觉是被网卡缓存了

跟踪调试网络程序肯定有丢包问题,可以结合接包后输出各项中间纪录的方式一起调试。

|
网卡的硬件缓存不会存你的包.

而且丢包现象在网络上是完全正常的.

    
 
 

您可能感兴趣的文章:

  • IOS开发之socket网络编程(基于SimpleNetworkStreams的c/s程序)
  • 用java做网络编程和用c做网络编程有啥区别
  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 《UNIX网络编程》这本书适合linux下的网络编程吗?
  • 嵌入式网络编程与非嵌入式网络编程有什么不同
  • 读过 Unix网络编程 或者 熟知Unix网络编程的 的进来看一下
  • 菜鸟问题:请问要在Linux操作系统下完成TCP/IP网络编程,用什么编程工具好?
  • UNIX网络编程卷1
  • 关于文件操作和Socket网络编程!
  • 求助:linux/unix网络编程
  • 谁知道哪有《Unix网络编程》w.richard stevens 著的下载?
  • 新手请教,linux网络编程。
  • linux环境进行网络编程的教材
  • linux下网络编程环境配置问题
  • 高分求网络编程方面的书籍
  • 求助linux下的网络编程问题
  • java的网络编程
  • Unix/Linux网络编程怎样来做一个项目?
  • 请推荐几本Linux/Unix网络编程的好书吧
  • 求介绍linux下的网络编程书
  • 请有经验的朋友推荐一下Linux/Nnix下网络编程方面的书,急需学习
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请问unix网络编程和linux网络有什么区别
  • 网络编程中“多宿”是什么意思
  • 我的专业是网络技术,对TCP/IP有一定的了解但不精,想要学习linux下的网络编程,请大家推荐学习方法和优秀的书籍
  • 会Linux下网络编程,能找到什么样的工作,从事什么?
  • Unix/Linux网络编程可以用来做什么?一般从事什么样的职业?
  • Java 网络编程有些什么内容?
  • 帮推荐一本linux 网络编程的经典书吧
  • 求关于UNIX网络编程的好书 最好带项目的那种
  • 哪里可以免费下载Linux下C网络编程方面的好书?
  • 怎样学习JAVA网络编程?
  • 有关网络编程
  • 学UNIX网络编程,看哪些书好?大家各抒已见~
  • 我想学习linux下的网络编程。
  • 网络编程的问题
  • “精通网络编程,透彻了解TCP/IP等网络协议”--请高人诠释这句话的意思
  • Linux下网络编程入门书籍推荐
  • 我是来学习linux的,网络编程高手请进
  • linux下网络编程的若干问题!
  • 开始工作关于linux网络编程的工作,求大神推荐点这方面书籍
  • 学习linux网络编程需要学习些内核知识吗?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3