问题标签 [tcpreplay]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1523 浏览

c - 为什么我们的数据包嗅探器不能接收到所有重放的 TCP 数据包?

我们正在尝试使用 tcpreplay 通过 10 GbE 连接重放 pcap 文件 (smallFlows.pcap) 并捕获所有数据包,记录源和目标端口/IP 地址。但是,存在显着的数据包丢失。在 3 Gbps 时,我们丢失了大约 15% 的发送数据包。即使是 1 Gbps,我们也损失了 7%。我们的嗅探器程序是使用netmap-libpcap用 C 语言编写的,是sniffex.c的修改版本。

我们在测试时删除了所有打印语句。我们尝试更改快照长度和缓冲区大小,但这仅略微提高了丢包率。我们还将发送器和接收器上的 CPU 内核设置为性能模式,以最大限度地提高时钟速度(接收器上约为 2.67 GHz),但这没有任何效果。根据顶部的说法,CPU 使用率相当低 - 大约 15%。

接收器具有 Intel Core i7 处理器。发送方运行 Ubuntu 12.04.3 LTS(Linux 内核 3.8.13),接收方运行 Ubuntu 12.04(Linux 内核 3.2.0-23-generic)。

我们可以做些什么来确保收到所有的数据包?

这是主要功能:

这是 pcap_loop() 调用的数据包处理程序代码:

谢谢您的帮助。

0 投票
1 回答
956 浏览

docker - 使用 docker 和 boot2docker 运行 tcpreplay

我正在开发一个 netflow 记录器,我想设置一些自动性能测试。我想将我的测试 pcap 并从在 boot2docker 下运行的 docker 映像中重播到我的程序中。网络方面的事情让我很困惑。

我可以从在 boot2docker 下运行的 docker 映像中访问我的桌面(托管 boot2docker vm 的机器)(scp/ssh/netcat 似乎都按预期工作)。但是,当我从 docker 映像中在我的 pcap 上运行 tcpreplay 时,我从未在桌面上看到流量。

我试过的:

  • 将pcap中的srcip重写为docker主机的srcip
  • tcpdump 通过 netcat 进行管道传输(netflow 是 UDP,所以我并不真正关心连接设置)流量成功了,但我的程序遇到了一些异常并死掉了。这并不让我感到惊讶,但它确实表明我可以将流量从 docker vm 中取出并进入我的程序。
  • 我可以从普通的 debian vm 中成功地将 pcap tcpreplay 到我的程序中

关于我需要做什么来让 tcpreplay 将我的 pcap 发送到我的桌面有什么想法吗?

0 投票
1 回答
1168 浏览

tcpreplay - tcpreplay 安装失败,libpcap/collect

我无法在 RHEL 6.6 上安装 tcpreplay

当我尝试运行 ./configure 时出现以下错误

ldconfig 输出显示已安装 libpcap

我也尝试了 --with-libpcap=/usr/lib64 选项,但我得到了同样的错误。

我有另一个具有类似配置的 RHEL 6.6,我用 yum 卸载了 tcpdump、libpcap。从 tarball 安装最新的 libpcap 和 tcpdump 没有错误。我在 tcpreplay tarball 的 ./configure 命令上没有错误。(在本次安装中将libpcap安装到/usr/local/lib中)

但是当我尝试使我得到以下错误。

你有什么想法/解决方案来安装 tcpreplay

谢谢

0 投票
1 回答
930 浏览

omnet++ - send() 如何在 omnet++ 中工作

omn​​et++ 中是否send()将数据包的源地址设置为当前主机地址?

我为什么要问?因为我正在尝试为执行重放攻击的恶意主机“Eve”编写一个类。

您可以在我的代码片段的开头看到我尝试使用该函数dup()来复制一个数据包 ( msg) Eve 接收到的数据包,而它正在前往合法目的地的途中。现在,我可以稍后发送重复的数据包并且它将具有原始源地址还是我应该更深入地挖掘层以伪造源地址以获得 Bob 的地址而不是 Eve 的地址?如下所示:

send()方法是否自动将传出数据包的源地址设置为当前主机地址?如果是这样,那么我的重播尝试不起作用......

0 投票
1 回答
717 浏览

c - pcap_inject 在断开的接口上

我正在尝试使用 libpcap 实现重放存储在 .pcap 文件中的数据包。这个过程非常简单:我会用 'pcap_open_offline' 打开 pcap 文件,然后将数据包传递给用 打开的设备pcap_open_live,并pcap_inject通过接口发送它们。

现在 NIC 没有连接以太网电缆。我知道这pcap_open_live不会说明打开的设备是否支持发送,所以我从 pcap_inject ( errno 100) 得到错误。这是可以预料的吗?如果我只是从 cmd 行中使用 tcpreplay,它会完成并且不会出现错误,无论是否插入了以太网电缆。

任何人都知道 tcpreplay/tcpedit 如何处理“死”接口?tcpreplay 是否会在我尝试将它们原始发送时重写数据包标头?任何帮助表示赞赏!

我在 Ubuntu 14.04 上,界面无地址且处于混杂模式:

0 投票
2 回答
232 浏览

overriding - 覆盖函数不执行 EV<< 命令?

我正在使用 Omnet++ 4.6,并创建了一个类来继承 AODVRouting。现在,我在我的新类中创建了一个handleMessage()从父类覆盖的函数。编译器指示该函数确实被覆盖。我输入了一个EV<<命令将函数的开始打印到事件日志,但它没有打印到事件日志。问题是什么??

父类中的函数是虚拟的和受保护的。这是我继承的class.cc:

这是我的 .h 文件:

0 投票
1 回答
2325 浏览

wireshark - 无法对已编辑的 wireshark 文件进行 tcpreplay

我做了什么 -

  1. 获得了网络流量的wireshark捕获。
  2. 编辑捕获文件以删除一个 GET 请求。(使用editcap删除了该行)
  3. 保存编辑后的文件(从第 2 步开始)
  4. 对这个文件进行了 tcpreplay。

当我这样做时,我收到一个错误:致命错误:打开 pcap 文件时出错:转储文件格式错误。

关于可能出错的任何输入?我在编辑wireshark pcap文件的方式上做错了吗?

谢谢,安迪

0 投票
0 回答
114 浏览

python - python - 将十六进制字符串/数据包发送到没有 IP 的接口

我有一台有两个网络接口的 Centos 机器,我需要发送一个十六进制字符串并将其强制到其中一个接口。

我找到了socket.bindandsocket.connect方法,但问题是 - 我想将十六进制字符串发送到的目的地没有 ip 或端口,它是某些没有 ip 的机器上的 TenGigaBit 端口。

如果有帮助,我可以使用tcpreplay将pcap 文件发送到 TenGigaBit 端口(无 ip 或端口),如下所示:

我希望能够使用十六进制字符串(在pythontcpreplay中)做同样的事情并发送一个十六进制字符串。

0 投票
1 回答
834 浏览

wireshark - Wireshark C 数组

我刚刚下载了wireshark的最新更新(2.0.1 版)。
这个新版本有一个烦人的特性,当我关注一个特定的流并将其保存为 C 数组时,它会在文件的第一行插入一个注释行:
/* Packet 8 */
这行会干扰 TCP 重放工具的工作。如何禁用此功能(无需手动删除此行)?

提前致谢!

0 投票
2 回答
319 浏览

perl - 为什么这个使用 tcpreplay 的脚本不等待用户输入?

下面的代码片段只会等待用户Enter第一次点击;之后,它会循环浏览所有其余.pcap文件,而无需等待用户输入。

为什么这不等待每次循环迭代的用户输入?