我正在使用移动设备,所以我希望网络丢失很常见。我正在付款,所以每个请求都很重要。
我希望能够测试我的服务器,以准确了解它在请求周期中不同点的客户端网络丢失情况 - 特别是在整个网络通信期间任何给定的数据包发送/接收之间。
我怀疑如果在发送响应时丢失通信而在等待FIN-ACK时服务器的行为会略有不同,我想知道我可以区分哪些断开连接的时间。
我尝试使用scapy模拟http请求,并停止每个TCP数据包之间的通信。 (即:首先发送SYN然后消失;然后发送SYN并接收SYN-ACK然后消失;然后发送SYN并接收SYN-ACK并发送ACK然后消失;等等)但是,我很快陷入了细节困境试图重现功能性TCP堆栈。
是否有一个很好的现有工具来自动化/启用此类测试?
答案 0 :(得分:2)
除非您的应用程序实际上正在响应并生成自己的IP数据包(这将非常愚蠢),否则您可能不需要在该层进行测试。简单地在TCP层进行测试(例如,connect()
,send()
,recv()
,shutdown()
)可能就足够了,因为这些事件是您的服务器唯一的事件。意识到了。