如何在每个可能的数据包中测试网络丢失下的服务器行为

时间:2011-09-14 23:54:56

标签: python http tcp network-programming scapy

我正在使用移动设备,所以我希望网络丢失很常见。我正在付款,所以每个请求都很重要。

我希望能够测试我的服务器,以准确了解它在请求周期中不同点的客户端网络丢失情况 - 特别是在整个网络通信期间任何给定的数据包发送/接收之间。

我怀疑如果在发送响应时丢失通信而在等待FIN-ACK时服务器的行为会略有不同,我想知道我可以区分哪些断开连接的时间。

我尝试使用scapy模拟http请求,并停止每个TCP数据包之间的通信。 (即:首先发送SYN然后消失;然后发送SYN并接收SYN-ACK然后消失;然后发送SYN并接收SYN-ACK并发送ACK然后消失;等等)但是,我很快陷入了细节困境试图重现功能性TCP堆栈。

是否有一个很好的现有工具来自动化/启用此类测试?

1 个答案:

答案 0 :(得分:2)

除非您的应用程序实际上正在响应并生成自己的IP数据包(这将非常愚蠢),否则您可能不需要在该层进行测试。简单地在TCP层进行测试(例如,connect()send()recv()shutdown())可能就足够了,因为这些事件是您的服务器唯一的事件。意识到了。