在我的应用程序中,我通过原始套接字将数据包发送到另一台计算机而不是返回数据包,并通过原始套接字将返回数据包写入另一台计算机。 我的应用程序是在Ubuntu上使用nfqueue运行的c ++应用程序。
我想测试计算机1和计算机2的已发送数据包,以检查它们是否符合预期。 我需要编写一个自动化测试来检查我的程序,这个自动化测试需要监听eth加载发送的数据包并检查它们是否符合预期(ip,ports,payload)。
我正在寻找一种简单的方法(工具(使用简单的API),代码)来做到这一点。 我需要一种简单的方式来倾听(自动化)eth。 我担心测试将检查发送者,但是可能很难找到api来监听eth(我通过原始套接字发送),因此建议的API将检查接收者计算机也是好的。 测试应用程序可以用c ++,java,python编写。
答案 0 :(得分:0)
自动生成大量随机数据包,将列表提供给两台计算机并开始发送,并在收到时根据列表进行检查。计算机1将发送然后等待来自计算机2的回复。计算机2将检查分组然后发送成功或失败分组。将结果记录在任一计算机上(无关紧要),然后您可以从日志文件生成统计信息。如果需要,可以在两个方向上使用此方法来测试两个连接。在python中应该非常简单。
或者发疯并使用汉明码: http://en.wikipedia.org/wiki/Hamming_code(维基) http://lionel.textmalaysia.com/hamming-code-in-python.html(解释和一些代码)
答案 1 :(得分:0)
检查数据包是否已正确发送的唯一方法是验证接收端的完整性。
答案 2 :(得分:0)
我在接收方计算机上运行tcpdump并将所有数据包保存到文件中。 我用python分析了tcpdump,并检查数据包是否在测试中按预期发送。