Nei*_*our 4 networking linux tcpdump sctp
如何进行TCP转储,保证真正通过网络的所有数据包都被捕获,并且没有遗漏?
详细信息:我们与在 SCTP 堆栈之上提供解决方案的第 3 方供应商有问题,他也实施了该解决方案。
在相当高的吞吐量(52 000 条消息/秒,平均消息大小为 500 字节)下,SCTP 链路中断。
我们认为该错误存在于供应商 SCTP 堆栈中。
但是供应商说,发生这种情况是因为 SCTP 堆栈发送了一条消息,没有收到 ACK,发送了多次重传,也没有收到关于它们的 ACK 并关闭了 SCTP 链接。
所以供应商说,这是有罪的网络,因为它丢失了数据包。
在客户端和服务器双方的 TCP 转储中,我们看到原始消息到达服务器,并看到服务器没有回复 ACK。但是厂商说TCP转储不可靠,在捕获TCP转储时,有些数据包可能无法捕获,因为libpcap库仅在一个硬件线程内工作,其能力不足以记录所有数据包。
技术数据:52 000 条消息/秒,平均消息大小为 500 字节,因此总共 26 MB/秒,使用了 4 个 SCTP 链路。
硬件:CPU E5-2670,2.6 GHz,8 个硬件线程
网络:10 GBit,流量在位于一个机架中的 HP 刀片之间。
瑞尔 6.
对于您的流量,我会声称 libpcap 不会有丢包的问题,除非您的设置效率特别低。如果您tcpdump用于捕获,它将在其最终输出行中报告丢弃的数据包数量。如果你看到丢弃的数据包,您可能希望通过提供增加的tcpdump的缓冲区大小的-B选项设置值大大高于默认的2 MB。
不过,您可能想看看PF_RING:
谁需要PF_RING™?
基本上每个人都必须每秒处理许多数据包。术语“许多”根据您用于流量分析的硬件而变化。它的范围可以从 1.2GHz ARM 上的 80k 包/秒到低端 2.5GHz Xeon 上的 14M 包/秒及以上。PF_RING™ 不仅使您能够更快地捕获数据包,还可以更有效地捕获数据包,从而保留 CPU 周期。只是为了给您一些数字,您可以了解 nProbe(一种 NetFlow v5/v9 探针)使用 PF_RING™ 的速度,或查看下表。
在 Core2Duo 1.86 GHz 和低端 Xeon 2,5 Ghz 上执行 10 Gigabit 测试
ixgbe
Application Rate
pfcount (RX, with PF_RING™ DNA) 11 Mpps (Core2Duo), 14.8 Mpps (Xeon)
pfsend (TX, with PF_RING™ DNA) 11 Mpps (Core2Duo), 14.8 Mpps (Xeon)
Run Code Online (Sandbox Code Playgroud)
如果您坚持使用 libpcap 应用程序进行数据包捕获,PF_RING 用户指南解释了如何编译和配置启用 PF_RING 的 libpcap 库。
| 归档时间: |
|
| 查看次数: |
1709 次 |
| 最近记录: |