重放 pcap 文件时 pfsend 获得的奇怪结果
strange result obtained by pfsend when replaying pcap file
我正在使用从瑞典国防研究局借来的 pfsend
tool to replay a huge pcap file
来评估和强调 Bro 集群。
我无法得到关于 pcap 文件中数据包发送速率的预期结果,即当我要求 pfsend
在接口上发送 pcap 文件时eth2
速率为 1.0 Gbps 我为每组数据包设置了随机速率。这是 pfsend
.
输出的快照
TX rate: [current 42'437.52 pps/0.04 Gbps][average 42'437.52 pps/0.04 Gbps][total 41'569.00 pkts]
TX rate: [current 30'720.88 pps/0.03 Gbps][average 36'444.27 pps/0.03 Gbps][total 73'080.00 pkts]
TX rate: [current 86'795.22 pps/0.07 Gbps][average 53'217.22 pps/0.04 Gbps][total 160'020.00 pkts]
TX rate: [current 85'260.77 pps/0.07 Gbps][average 61'214.71 pps/0.05 Gbps][total 245'287.00 pkts]
TX rate: [current 108'434.54 pps/0.09 Gbps][average 70'687.72 pps/0.06 Gbps][total 354'329.00 pkts]
TX rate: [current 260'567.83 pps/0.22 Gbps][average 104'649.36 pps/0.09 Gbps][total 638'824.00 pkts]
TX rate: [current 13'499.74 pps/0.01 Gbps][average 90'396.03 pps/0.08 Gbps][total 654'099.00 pkts]
TX rate: [current 383'864.46 pps/0.32 Gbps][average 126'031.97 pps/0.11 Gbps][total 1'038'003.00 pkts]
TX rate: [current 248'141.39 pps/0.21 Gbps][average 139'426.46 pps/0.12 Gbps][total 1'289'802.00 pkts]
TX rate: [current 416'671.83 pps/0.35 Gbps][average 166'474.76 pps/0.14 Gbps][total 1'706'508.00 pkts]
TX rate: [current 282'022.66 pps/0.24 Gbps][average 178'789.64 pps/0.15 Gbps][total 2'051'378.00 pkts]
TX rate: [current 294'856.96 pps/0.25 Gbps][average 189'686.22 pps/0.16 Gbps][total 2'401'896.00 pkts]
TX rate: [current 188'430.59 pps/0.16 Gbps][average 189'560.85 pps/0.16 Gbps][total 2'666'556.00 pkts]
TX rate: [current 283'843.09 pps/0.24 Gbps][average 196'536.24 pps/0.16 Gbps][total 2'985'563.00 pkts]
TX rate: [current 242'010.87 pps/0.21 Gbps][average 199'394.27 pps/0.17 Gbps][total 3'232'114.00 pkts]
TX rate: [current 375'702.87 pps/0.31 Gbps][average 211'366.10 pps/0.18 Gbps][total 3'675'768.00 pkts]
TX rate: [current 245'153.10 pps/0.20 Gbps][average 213'258.35 pps/0.18 Gbps][total 3'928'703.00 pkts]
TX rate: [current 238'448.39 pps/0.20 Gbps][average 214'901.65 pps/0.18 Gbps][total 4'235'268.00 pkts]
TX rate: [current 457'495.27 pps/0.38 Gbps][average 226'618.04 pps/0.19 Gbps][total 4'692'820.00 pkts]
TX rate: [current 244'843.82 pps/0.20 Gbps][average 227'460.43 pps/0.19 Gbps][total 4'938'522.00 pkts]
TX rate: [current 175'544.43 pps/0.15 Gbps][average 224'765.27 pps/0.19 Gbps][total 5'147'218.00 pkts]
TX rate: [current 352'358.47 pps/0.33 Gbps][average 230'227.67 pps/0.19 Gbps][total 5'508'118.00 pkts]
TX rate: [current 193'981.37 pps/0.18 Gbps][average 227'879.82 pps/0.19 Gbps][total 5'829'556.00 pkts]
TX rate: [current 397'879.00 pps/0.37 Gbps][average 234'276.34 pps/0.20 Gbps][total 6'227'511.00 pkts]
TX rate: [current 262'636.29 pps/0.23 Gbps][average 235'524.01 pps/0.20 Gbps][total 6'548'784.00 pkts]
TX rate: [current 324'789.05 pps/0.27 Gbps][average 238'623.07 pps/0.20 Gbps][total 6'873'588.00 pkts]
TX rate: [current 234'831.35 pps/0.20 Gbps][average 238'479.16 pps/0.20 Gbps][total 7'140'448.00 pkts]
TX rate: [current 465'954.10 pps/0.39 Gbps][average 245'831.24 pps/0.21 Gbps][total 7'606'424.00 pkts]
TX rate: [current 236'658.29 pps/0.20 Gbps][average 245'544.05 pps/0.21 Gbps][total 7'843'092.00 pkts]
TX rate: [current 224'552.54 pps/0.44 Gbps][average 244'906.73 pps/0.22 Gbps][total 8'067'678.00 pkts]
TX rate: [current 316'888.38 pps/0.27 Gbps][average 247'027.72 pps/0.22 Gbps][total 8'384'606.00 pkts]
TX rate: [current 194'861.11 pps/0.17 Gbps][average 245'534.68 pps/0.22 Gbps][total 8'579'479.00 pkts]
TX rate: [current 247'182.76 pps/0.25 Gbps][average 245'586.19 pps/0.22 Gbps][total 8'858'096.00 pkts]
TX rate: [current 300'956.59 pps/0.28 Gbps][average 247'921.20 pps/0.22 Gbps][total 9'336'025.00 pkts]
TX rate: [current 335'746.08 pps/0.34 Gbps][average 250'723.85 pps/0.22 Gbps][total 9'752'794.00 pkts]
TX rate: [current 335'041.19 pps/0.28 Gbps][average 252'921.26 pps/0.23 Gbps][total 10'101'529.00 pkts]
TX rate: [current 261'693.83 pps/0.22 Gbps][average 253'208.11 pps/0.23 Gbps][total 10'454'834.00 pkts]
TX rate: [current 191'362.36 pps/0.16 Gbps][average 251'077.25 pps/0.22 Gbps][total 10'736'781.00 pkts]
TX rate: [current 350'642.23 pps/0.30 Gbps][average 253'483.58 pps/0.22 Gbps][total 11'108'149.00 pkts]
TX rate: [current 208'154.30 pps/0.17 Gbps][average 252'472.20 pps/0.22 Gbps][total 11'316'316.00 pkts]
TX rate: [current 211'121.31 pps/0.18 Gbps][average 251'568.45 pps/0.22 Gbps][total 11'527'754.00 pkts]
TX rate: [current 31'135.38 pps/0.03 Gbps][average 245'780.23 pps/0.22 Gbps][total 11'566'228.00 pkts]
TX rate: [current 137'098.79 pps/0.16 Gbps][average 243'442.00 pps/0.22 Gbps][total 11'708'087.00 pkts]
TX rate: [current 102'561.54 pps/0.09 Gbps][average 240'565.19 pps/0.21 Gbps][total 11'810'911.00 pkts]
TX rate: [current 114'894.56 pps/0.10 Gbps][average 238'056.49 pps/0.21 Gbps][total 11'925'812.00 pkts]
TX rate: [current 532'935.78 pps/0.45 Gbps][average 243'843.43 pps/0.22 Gbps][total 12'460'248.00 pkts]
TX rate: [current 89'972.12 pps/0.08 Gbps][average 239'563.56 pps/0.21 Gbps][total 12'591'785.00 pkts]
TX rate: [current 84'611.41 pps/0.09 Gbps][average 236'670.39 pps/0.21 Gbps][total 12'676'402.00 pkts]
如您所见,每一步的 TX 速率都不相同,pfsend
没有以所需的速度发送数据包。我试图阅读 pfsend
的源代码并了解 pfsend
的行为,但我没有得到它。
我能理解数据包的大小不一样,这可能是原因,但我不确定这是唯一的原因。任何人都可以指导我并给我见解吗?我会感激的。
谢谢。
你的大部分跟踪(我只下载了一点)由 TCP 流量组成。
tcpreplay
可能最适合您的需求。
但请注意,这将是 "fake TCP"。 没有办法您可以指定真实 TCP 连接的出口速率。
除了双方的硬件,两者之间的网络情况,以及各自对TCP协议的实现(在操作系统层面)。请记住,TCP 是一种连接协议,因此:
- 发送方有时会在发送更多数据之前期望接收方的确认,
- 会有TCP慢启动,见http://en.wikipedia.org/wiki/Slow-start,
- ...可能还有许多其他原因,这两个突然从我的脑海中冒出来。
这是由精心管理的 receive/send window 和双方 TCP 实现中的计时器完成的(同样,这是由操作系统完成的)。
例如,如果发送方发送太快而接收方的应用程序跟不上,接收方window(粗略地说,可用于新数据的缓冲区大小)将开始缩小并最终将变为 0。然后你将有一个 "zero TCP window" 条件,发件人将 停止 发送任何东西,直到有 TCP window 更新。
TCP 协议是为此设计的。每一方都会调整到对方+两者之间的网络状态。
确实,如果您查看 pfsend
的源代码,您会看到以下内容:
...IP(UDP 需要):
http://github.com/ntop/PF_RING/blob/dev/userland/examples/pfsend.c#L53
...UDP:
http://github.com/ntop/PF_RING/blob/dev/userland/examples/pfsend.c#L75
http://github.com/ntop/PF_RING/blob/dev/userland/examples/pfsend.c#L282
...但是TCP没有什么,只是因为它不能真正做到。 pfsend
中的最小 'help' 应该明确说明。
我正在使用从瑞典国防研究局借来的 pfsend
tool to replay a huge pcap file
来评估和强调 Bro 集群。
我无法得到关于 pcap 文件中数据包发送速率的预期结果,即当我要求 pfsend
在接口上发送 pcap 文件时eth2
速率为 1.0 Gbps 我为每组数据包设置了随机速率。这是 pfsend
.
TX rate: [current 42'437.52 pps/0.04 Gbps][average 42'437.52 pps/0.04 Gbps][total 41'569.00 pkts]
TX rate: [current 30'720.88 pps/0.03 Gbps][average 36'444.27 pps/0.03 Gbps][total 73'080.00 pkts]
TX rate: [current 86'795.22 pps/0.07 Gbps][average 53'217.22 pps/0.04 Gbps][total 160'020.00 pkts]
TX rate: [current 85'260.77 pps/0.07 Gbps][average 61'214.71 pps/0.05 Gbps][total 245'287.00 pkts]
TX rate: [current 108'434.54 pps/0.09 Gbps][average 70'687.72 pps/0.06 Gbps][total 354'329.00 pkts]
TX rate: [current 260'567.83 pps/0.22 Gbps][average 104'649.36 pps/0.09 Gbps][total 638'824.00 pkts]
TX rate: [current 13'499.74 pps/0.01 Gbps][average 90'396.03 pps/0.08 Gbps][total 654'099.00 pkts]
TX rate: [current 383'864.46 pps/0.32 Gbps][average 126'031.97 pps/0.11 Gbps][total 1'038'003.00 pkts]
TX rate: [current 248'141.39 pps/0.21 Gbps][average 139'426.46 pps/0.12 Gbps][total 1'289'802.00 pkts]
TX rate: [current 416'671.83 pps/0.35 Gbps][average 166'474.76 pps/0.14 Gbps][total 1'706'508.00 pkts]
TX rate: [current 282'022.66 pps/0.24 Gbps][average 178'789.64 pps/0.15 Gbps][total 2'051'378.00 pkts]
TX rate: [current 294'856.96 pps/0.25 Gbps][average 189'686.22 pps/0.16 Gbps][total 2'401'896.00 pkts]
TX rate: [current 188'430.59 pps/0.16 Gbps][average 189'560.85 pps/0.16 Gbps][total 2'666'556.00 pkts]
TX rate: [current 283'843.09 pps/0.24 Gbps][average 196'536.24 pps/0.16 Gbps][total 2'985'563.00 pkts]
TX rate: [current 242'010.87 pps/0.21 Gbps][average 199'394.27 pps/0.17 Gbps][total 3'232'114.00 pkts]
TX rate: [current 375'702.87 pps/0.31 Gbps][average 211'366.10 pps/0.18 Gbps][total 3'675'768.00 pkts]
TX rate: [current 245'153.10 pps/0.20 Gbps][average 213'258.35 pps/0.18 Gbps][total 3'928'703.00 pkts]
TX rate: [current 238'448.39 pps/0.20 Gbps][average 214'901.65 pps/0.18 Gbps][total 4'235'268.00 pkts]
TX rate: [current 457'495.27 pps/0.38 Gbps][average 226'618.04 pps/0.19 Gbps][total 4'692'820.00 pkts]
TX rate: [current 244'843.82 pps/0.20 Gbps][average 227'460.43 pps/0.19 Gbps][total 4'938'522.00 pkts]
TX rate: [current 175'544.43 pps/0.15 Gbps][average 224'765.27 pps/0.19 Gbps][total 5'147'218.00 pkts]
TX rate: [current 352'358.47 pps/0.33 Gbps][average 230'227.67 pps/0.19 Gbps][total 5'508'118.00 pkts]
TX rate: [current 193'981.37 pps/0.18 Gbps][average 227'879.82 pps/0.19 Gbps][total 5'829'556.00 pkts]
TX rate: [current 397'879.00 pps/0.37 Gbps][average 234'276.34 pps/0.20 Gbps][total 6'227'511.00 pkts]
TX rate: [current 262'636.29 pps/0.23 Gbps][average 235'524.01 pps/0.20 Gbps][total 6'548'784.00 pkts]
TX rate: [current 324'789.05 pps/0.27 Gbps][average 238'623.07 pps/0.20 Gbps][total 6'873'588.00 pkts]
TX rate: [current 234'831.35 pps/0.20 Gbps][average 238'479.16 pps/0.20 Gbps][total 7'140'448.00 pkts]
TX rate: [current 465'954.10 pps/0.39 Gbps][average 245'831.24 pps/0.21 Gbps][total 7'606'424.00 pkts]
TX rate: [current 236'658.29 pps/0.20 Gbps][average 245'544.05 pps/0.21 Gbps][total 7'843'092.00 pkts]
TX rate: [current 224'552.54 pps/0.44 Gbps][average 244'906.73 pps/0.22 Gbps][total 8'067'678.00 pkts]
TX rate: [current 316'888.38 pps/0.27 Gbps][average 247'027.72 pps/0.22 Gbps][total 8'384'606.00 pkts]
TX rate: [current 194'861.11 pps/0.17 Gbps][average 245'534.68 pps/0.22 Gbps][total 8'579'479.00 pkts]
TX rate: [current 247'182.76 pps/0.25 Gbps][average 245'586.19 pps/0.22 Gbps][total 8'858'096.00 pkts]
TX rate: [current 300'956.59 pps/0.28 Gbps][average 247'921.20 pps/0.22 Gbps][total 9'336'025.00 pkts]
TX rate: [current 335'746.08 pps/0.34 Gbps][average 250'723.85 pps/0.22 Gbps][total 9'752'794.00 pkts]
TX rate: [current 335'041.19 pps/0.28 Gbps][average 252'921.26 pps/0.23 Gbps][total 10'101'529.00 pkts]
TX rate: [current 261'693.83 pps/0.22 Gbps][average 253'208.11 pps/0.23 Gbps][total 10'454'834.00 pkts]
TX rate: [current 191'362.36 pps/0.16 Gbps][average 251'077.25 pps/0.22 Gbps][total 10'736'781.00 pkts]
TX rate: [current 350'642.23 pps/0.30 Gbps][average 253'483.58 pps/0.22 Gbps][total 11'108'149.00 pkts]
TX rate: [current 208'154.30 pps/0.17 Gbps][average 252'472.20 pps/0.22 Gbps][total 11'316'316.00 pkts]
TX rate: [current 211'121.31 pps/0.18 Gbps][average 251'568.45 pps/0.22 Gbps][total 11'527'754.00 pkts]
TX rate: [current 31'135.38 pps/0.03 Gbps][average 245'780.23 pps/0.22 Gbps][total 11'566'228.00 pkts]
TX rate: [current 137'098.79 pps/0.16 Gbps][average 243'442.00 pps/0.22 Gbps][total 11'708'087.00 pkts]
TX rate: [current 102'561.54 pps/0.09 Gbps][average 240'565.19 pps/0.21 Gbps][total 11'810'911.00 pkts]
TX rate: [current 114'894.56 pps/0.10 Gbps][average 238'056.49 pps/0.21 Gbps][total 11'925'812.00 pkts]
TX rate: [current 532'935.78 pps/0.45 Gbps][average 243'843.43 pps/0.22 Gbps][total 12'460'248.00 pkts]
TX rate: [current 89'972.12 pps/0.08 Gbps][average 239'563.56 pps/0.21 Gbps][total 12'591'785.00 pkts]
TX rate: [current 84'611.41 pps/0.09 Gbps][average 236'670.39 pps/0.21 Gbps][total 12'676'402.00 pkts]
如您所见,每一步的 TX 速率都不相同,pfsend
没有以所需的速度发送数据包。我试图阅读 pfsend
的源代码并了解 pfsend
的行为,但我没有得到它。
我能理解数据包的大小不一样,这可能是原因,但我不确定这是唯一的原因。任何人都可以指导我并给我见解吗?我会感激的。 谢谢。
你的大部分跟踪(我只下载了一点)由 TCP 流量组成。
tcpreplay
可能最适合您的需求。
但请注意,这将是 "fake TCP"。 没有办法您可以指定真实 TCP 连接的出口速率。
除了双方的硬件,两者之间的网络情况,以及各自对TCP协议的实现(在操作系统层面)。请记住,TCP 是一种连接协议,因此:
- 发送方有时会在发送更多数据之前期望接收方的确认,
- 会有TCP慢启动,见http://en.wikipedia.org/wiki/Slow-start,
- ...可能还有许多其他原因,这两个突然从我的脑海中冒出来。
这是由精心管理的 receive/send window 和双方 TCP 实现中的计时器完成的(同样,这是由操作系统完成的)。
例如,如果发送方发送太快而接收方的应用程序跟不上,接收方window(粗略地说,可用于新数据的缓冲区大小)将开始缩小并最终将变为 0。然后你将有一个 "zero TCP window" 条件,发件人将 停止 发送任何东西,直到有 TCP window 更新。
TCP 协议是为此设计的。每一方都会调整到对方+两者之间的网络状态。
确实,如果您查看 pfsend
的源代码,您会看到以下内容:
...IP(UDP 需要):
http://github.com/ntop/PF_RING/blob/dev/userland/examples/pfsend.c#L53
...UDP:
http://github.com/ntop/PF_RING/blob/dev/userland/examples/pfsend.c#L75
http://github.com/ntop/PF_RING/blob/dev/userland/examples/pfsend.c#L282
...但是TCP没有什么,只是因为它不能真正做到。 pfsend
中的最小 'help' 应该明确说明。