如何测试数据包发送是否正确



在我的应用程序中,我通过原始套接字将数据包发送到另一台计算机,然后通过原始套接字将数据包取回并将返回的数据包写入另一台电脑。我的应用程序是在Ubuntu上运行的c++应用程序,使用nfqueue。

我想测试计算机1和计算机2发送的数据包,以检查它们是否符合预期。我需要写一个自动化测试来检查我的程序,这个自动化测试需要监听eth加载发送的数据包,并检查它们是否如预期(ip、端口、有效负载)。

我正在寻找一种简单的方法(工具(带有简单的API),代码)来做到这一点。我需要一种简单的方法来收听(自动)eth我倾向于测试将检查发送者,但可能很难找到一个api来监听eth(我通过原始套接字发送),所以建议使用一个api来检查接收者的计算机也是很好的。测试应用程序可以用c++、java、python编写。

检查数据包是否正确发送的唯一方法是在接收端验证其完整性。

自动生成一个随机数据包的大列表,将该列表提供给两台计算机并开始发送,收到后,根据列表进行检查。计算机1将发送,然后等待来自计算机2的答复。计算机2将检查数据包,然后发送成功或失败的数据包。将结果记录在任意一台计算机上(无所谓),然后可以从日志文件中生成统计信息。如果需要,可以在两个方向上使用此方法来测试两个连接。在python中应该非常简单。

或者疯狂使用汉明密码:http://en.wikipedia.org/wiki/Hamming_code(wiki)http://lionel.textmalaysia.com/hamming-code-in-python.html(解释和一些代码)

我在接收方计算机上操作tcpdump,并将所有数据包保存到文件中。我使用python分析tcpdump,并检查数据包是否按测试中的预期发送。

相关内容

最新更新