我开始了一个需要使用网络级数据包(例如IP / ICMP / UDP / TCP数据包)的项目。
有两种主要的处理方法:原始套接字和Winpcap / libpcap。
我知道pcap在OS上安装了驱动程序,并允许程序员捕获和发送数据包。另一方面,有些原始套接字在Windows 7或更高版本中有一些限制。
该项目需要向路由器发送一些IP / ICMP / UDP / TCP数据包,并分析响应,例如IP-Identifier
,TTL
,...。我也希望它能在Linux和Windows中使用。
您能否列出这两种方法的比较?
最佳答案
如果您希望代码具有可移植性,则不能使用原始套接字API(在Linux和Windows上完全不同)。 Winpcap通常与libpcap兼容,考虑到它在做什么,pcap API通常是合理的。