回答
套接字(.NET,Winsock等)通常在第7层应用层收集。也就是说,发送方发送的是接收方接收的内容。在接收器从套接字读取数据时,发送端自动添加的所有各种头部将被剥离。
可以将套接字配置为原始套接字,在这种情况下,您可以看到第3层即网络层的所有标头。此外,您还可以将原始套接字置于混杂模式,这样您就可以看到网络上的所有流量,而不仅仅是发往机器的数据包。但即使这样也是有限的。例如,在配置原始套接字时,可以指定要使用的协议类型,例如IP,ICMP等。这会将套接字限制为“查看”遵守该协议的数据包。我一直无法弄清楚如何让套接字在层3看到所有的数据包,而不管协议如何。
Winpcap作为第2层数据链路层的设备驱动程序运行。在这种情况下,您可以看到网络上的所有数据包都带有完整的标题,直到第2层。Winpcap还提供了过滤功能,因此您可以根据您提供的任何标准缩小报告给您的数据包的范围。
至于他们之间的选择,它真的归结为您的具体任务的要求。如果你正在尝试实现任何一种现实的网络分析能力,那么你就会忍不住用套接字来做到这一点。在这种情况下,Winpcap更有意义。但是,如果您只对IP数据包感兴趣,那么套接字就可以正常工作。
太好了。非常感谢你。 –
我可以使用套接字捕获MSN messanger和Yahoo Messanger对话吗? –
假设MSN/Yahoo messenger客户端使用IP,那么是的,原始套接字将从您的本地网络连接中捕获此信息。 –
据我understanf净套接字的IPC到2个的进程之间进行通信。虽然winpcap是一个帮助您访问数据链接层的库,但sniff pacquets会通过您计算机上的网络硬件(或虚拟)设备。数据链路层允许获取系统上创建的任何套接字(.Net或不)的数据。
- 1. winpcap/libpcap与原始套接字
- 2. Winpcap - pcap_next_ex vs pcap_loop
- 3. WCF VS.套接字
- 4. 与使用winPcap代替套接字相关的风险
- 5. 绑定vs SO_BINDTODEVICE套接字
- 6. Php套接字vs流
- 7. C#套接字vs NodeJS Socket.IO
- 8. 套接字关闭VS的InputStream接近
- 9. C#套接字vs C++套接字,哪个更好?
- 10. 延迟ajax响应vs套接字? node.js
- 11. 套接字程序Python vs C++(Winsock)
- 12. 异步套接字vs同步
- 13. 异步vs同步套接字
- 14. Web服务vs持久套接字
- 15. Win32 API vs Java套接字清除(TCP)
- 16. Windows vs Linux中的套接字
- 17. HTTP流量vs套接字流量
- 18. C#套接字发送vs BeginSend性能
- 19. Windows套接字htons(80)vs 0x5000
- 20. WinPcap链接器错误
- 21. 使用WinPCap的UDP接收
- 22. 作为我的项目的一部分,使用原始套接字和WinPcap
- 23. Python套接字 - 连接套接字
- 24. Winsock的替代(不,不WinPCAP)
- 25. 值java.sql.SQLException:IO异常:套接字读取超时VS关闭连接
- 26. 直接VS间接嵌套结构
- 27. 套接字超时套接字编程
- 28. 套接字和TCP套接字
- 29. Java套接字到C套接字
- 30. Java套接字 - 套接字端口
这是否意味着使用WinPCap在速度方面性能更好,而不是用于发送数据的套接字? – bsobaid