winpcap开发包使用中的问题总结(之二)

这里主要讨论一下winpcap开发中可能遇到的问题,如果能帮助您解决一些困难,将是我的荣幸。

随便转载,转载请注明出处http://blog.csdn.net/leotangcw/

欢迎大家和我交流Email:tangchengwen@163.com

winpcap开发包使用中的问题总结(之一):

http://blog.csdn.net/leotangcw/archive/2006/05/23/751132.aspx

最近使用winpcap发包又发现了点毛病,这里贴出来。

1。关于winpcap的延迟参数设置多少。

     在winpcap的open_live中有一个延迟参数,主要是设置多长时间返回,当使用主线程抓包时应该设置长一点,500ms~1000ms左右,设置的过小winpcap 会抓不到包。如果是在子线程下可以设置的小一些。

2。如果有发包的情况怎么设置。

  如果你的捕获和发包在一个线程里,就是捕获后立即发包的话,你会发现即使设置成1ms还是有不小的延迟,我感觉主要还是winpcap发包机制不是太好,你可以设置成-1,也就是捕获后立刻返回,这样会快一些(平均反映速度提高10倍左右),虽然还是会有些的延迟,但是一般的项目要求基本可以满足了。

3。出现不停发送同一个包的情况怎么办。

    如果你在作TCP或DNS,ARP欺骗或其他需要捕获后立刻发送包的程序时可能会发现每捕获一个包就会作很多回复,而且是一样的,为什么呢?一般是因为你的pcap_next_ex或类似的抓包函数没有注意返回值,一定要注意写成if(pcap_next_ex(....)==1)的形式,不要直接用pcap_next_ex因为其可能==0这个时候会把前一个包重复抓一遍。可以参考winpcap开发手册。

好了,先写到这里吧,下次继续!

  

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
什么是WinPcap WinPcap是一个基于Win32平台的,用于捕获网络数据包并进行分析的开源库. 大多数网络应用程序通过被广泛使用的操作系统元件来访问网络,比如sockets。 这是一种简单的实现方式,因为操作系统已经妥善处理了底层具体实现细节(比如协议处理,封装数据包等等),并且提供了一个与读写文件类似的,令人熟悉的接口。 然而,有些时候,这种“简单的方式”并不能满足任务的需求,因为有些应用程序需要直接访问网络的数据包。也就是说,那些应用程序需要访问原始数据包,即没有被操作系统利用网络协议处理过的数据包。 WinPcap产生的目的,就是为Win32应用程序提供这种访问方式; WinPcap提供了以下功能 捕获原始数据包,无论它是发往某台机器的,还是在其他设备(共享媒介)上进行交换的 在数据包发送给某应用程序前,根据用户指定的规则过滤数据包 将原始数据包通过网络发送出去 收集并统计网络流量信息 以上这些功能需要借助安装在Win32内核的网络设备驱动程序才能实现,再加上几个动态链接库DLL。 所有这些功能都能通过一个强大的编程接口来表现出来,易于开发,并能在不同的操作系统上使用。这本手册的主要目标是在一些程序范例的帮助下,叙述这些编程接口的使用。 如果您现在就想开始摸索这些功能,您可以直接进入 WinPcap用户手册. 哪些程序在使用WinPcap WinPcap可以被用来制作许多类型的网络工具,比如具有分析,解决纷争,安全和监视功能的工具。特别地,一些基于WinPcap的典型应用有: 网络与协议分析器 (network and protocol analyzers) 网络监视器 (network monitors) 网络流量记录器 (traffic loggers) 网络流量发生器 (traffic generators) 用户级网桥及路由 (user-level bridges and routers) 网络入侵检测系统 (network intrusion detection systems (NIDS)) 网络扫描器 (network scanners) 安全工具 (security tools) 什么是WinPcap做不到的 WinPcap能 独立地 通过主机协议发送和接受数据,如同TCP-IP。这就意味着WinPcap不能阻止、过滤或操纵同一机器上的其他应用程序的通讯:它仅仅能简单地"监视"在网络上传输的数据包。所以,它不能提供类似网络流量控制、服务质量调度和个人防火墙之类的支持
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值