【发布时间】:2014-04-23 13:25:46
【问题描述】:
我需要对我制作的新提要处理程序进行一些验证测试。我有一些从生产网络捕获的 pcap 数据,我想让我的开发提要处理程序连接到这些数据的“重放”并比较结果。
我的 pcap: 我有一个连接到数据馈送的产品应用程序,与外部服务器的 TCP 连接让调用假设这是 123.456.789.1:1234。然后,这个外部服务器将数据发送到我的应用程序,几乎没有客户端到服务器的通信,服务器只发送客户端数据,直到客户端断开。我有一个 pcap,其中包含发送到端口 1234 和从端口 1234 发送的所有数据包。我通过镜像交换机上的生产端口 (SPAN) 并将 tcpdump 连接到插入镜像网络端口的接口来获得这个 pcap。当我在wireshark 中查看PCAP 时,它拥有我所期望的所有数据。
我的问题: 我绝不是网络工程师,我不确定如何使用这个 pcap 来测试我的应用程序。我想做的是从 pcap 中“重放”这个流,并用我的开发应用程序连接到它,以验证数据的处理方式是否与 prod 连接上的数据相同。
我想了解如何在 127.0.0.1:1234 上“重放”从 123.456.789.1:12344 发送的数据,然后使用我的开发应用程序连接到 127.0.0.1:1234。我查看了 tcpreplay 但从文档中我似乎无法弄清楚它是否可以做到这一点,我觉得他们不处理 tcp 会话数据,如果它是 UDP 流我可以这样做,但 tcpreplay 可以不充当外部服务器。我读错了还是有其他工具可以让我这样做?
谢谢!
【问题讨论】:
-
你查看this SO question的答案了吗?精确的 TCP 重放通常非常困难。
-
我看了这个问题,猜想我希望因为我的交互比他的更简单(我真的没有任何客户端 -> 服务器通信它只是一个连接和监听模型)我的是我可以使用的 tcpreplay 上的一些简单设置。但我猜不是,我会按照 Slartibartfast 的建议转储数据并对其进行 netcat,并且在另一个问题中也有暗示。
标签: c++ sockets networking tcp pcap