PCap性能

3
哪个c-sharp的Pcap封装是最快的? 与使用sockets相比,PCap有多快?

2
你如何以类似的方式使用套接字(sockets)? - Jon Skeet
你有一条信息,可以通过winsock套接字发送,也可以通过winPCap绕过操作系统直接发送到链路层。在两种情况下,我都是从我的一侧向特定目的地发送信息。理论上,winPCap听起来更快,但我只是想知道实现或其他原因是否会导致开销抵消绕过操作系统的收益。 - bsobaid
@Jon:如果他只是使用pcap来捕获和过滤掉不相关的数据包,那么它与原始套接字相当。我认为他的效率问题在于pcap过滤机制中的开销。 - Jörgen Sigvardsson
2个回答

1

SharpPcap 适用于捕获(嗅探)和传输(类似于 UdpClient 和 TcpClient)。我在一个高性能 UDP 传输应用程序中使用它,可以通过调整使其比 UdpClient 更快(源代码中有高性能发送的示例)。


3
为什么要踩我呢?作为SharpPcap库的作者,这个库在4.0版本中变得更快了,这主要归功于一个优秀的贡献者。当前的数据包处理速率非常高,我们还有一套内置的性能测试工具。如果想了解更多关于速度提升的细节,请查看该项目在SourceForge上的git日志,我确保在每次性能改进提交时都会将它们包含在文档中。顺便说一下,我就是SharpPcap的作者。 - Chris Morgan

0

我相信Pcap.Net比其他封装更快,因为它使用C++/CLI封装而不是PInvoke。

一般来说,我从未遇到过WinPcap的性能问题(这也取决于您如何使用它)。


如果我可以问一下,您使用pcap做什么?是用于网络嗅探用户应用程序之间的数据交换吗?与常规套接字使用相比,您如何评估pcap的性能? - bsobaid
我使用WinPcap进行常规数据包嗅探。我没有将WinPcap与常规套接字使用进行比较,但我不确定如何使用常规套接字来嗅探非针对计算机的数据包。 - brickner
谢谢,我实际上计划将其用于常规应用程序数据传输,目前我正在使用套接字进行传输,希望能获得更低的延迟,但是根据我目前所了解的,它只适用于数据包嗅探。 - bsobaid

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接