tcp的测试蛮麻烦。目前设想了两种测试方法。一种是完全用rawsocket收包发包,相当于在应用层重新实现一套tcp协议。当然这么复杂的tcp协 议完全实现太没有必要了,所以这种方式只适合模拟一些简单的测试情况。比如TCP建立连接、断开连接时的各种情况、各种异常报文、边界条件。
另一种测试方法是利用操作系统自身的tcp,测试程序监视tcp连接,在适当的时候施加控制,甚至整个接管。
最后就是测试结果的分析,测试结果是测试过程中记录下来的tcp报文。分析程序据此判断被测tcp协议栈有没有正常的work。
分析这两种测试方法和最后的结果分析,它们公共的部分是实现tcp协议栈状态机,后面两个的状态机甚至比tcp本身状态机还要复杂,因为它们是被动的 监听者,简单的说,当一方报文到来时,它不能确定另一方是否进入某种状态,而是要等待其发出应答报文,这样状态数就扩大了。
没有评论:
发表评论