如何将TCP流重播到我的客户端

时间:2014-03-18 03:09:54

标签: c++ sockets networking tcp pcap

我需要对我制作的新饲料处理程序进行一些验证测试。我有一些从生产网络中捕获的pcap数据,我希望我的开发源处理程序连接到"重放"这些数据并比较结果。

我的电脑: 我有一个连接到数据源的prod应用程序,与外部服务器的TCP连接让我们调用假设这是123.456.789.1:1234。然后,此外部服务器将数据发送到我的应用程序,几乎没有客户端与服务器通信,服务器只发送客户端数据,直到客户端丢弃。我有一个pcap从端口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可以不充当外部服务器。我读错了还是有其他工具让我这样做?

谢谢!

1 个答案:

答案 0 :(得分:1)

如果您只是想在工具中丢回一些数据,并且不关心工具发送的内容,您可能需要使用netcat。

您可以通过从pcap文件中提取工具发送的原始数据来实现此目的(this工具可能会有所帮助),然后将其传输到netcat中。