您的位置:首页 > 理论基础 > 计算机网络

tcp阻断模块实现和测试

2017-07-05 23:48 225 查看
在搜集资料了解了tcp阻断的原理之后,心里评估了下还算是比较好实现的需求。7月4号基本上写完代码,7月5号今天花了一天时间来测试功能。悲催的发现功能不好使,有点尴尬了,哈哈

思考了下,可能是如下原因导致的:

现在能确认,数据包成功发送到对端,那么就是构造的rst数据包错误

1.ip包构造时,tcp包构造时,某些字段填充的不正确

2.要对ip包和tcp进行checksum计算,这个checksum计算是否正确,验证下正确性。

3.是否转到其他ip地址上去了

4.搞网络编程和数据包打交道,定位问题瞎猜可不行,要将数据包抓取下来,用wireshark打开抓包文件,看看构造的rst数据包是否合法。

5.网络字节序和主机字节序的正确使用

6.测试方法:虚拟机的host only 模式或者桥接模式

学习鑫哥思考问题,以及一步步解决问题的思路,学习他人的优点,才能不断的进步。

7月5号,测试成功后总结:

代码测试方法:使用libevent搭建文件传输服务器和客户端,进行文件传输服务。在传输文件的过程中,如果发送rst包后能成功阻断,则说明有效。

在获取到client和server段的seq序列号和ack号,然后构造rst包来进行发包操作。

从搜集资料了解阻断原理->动手编码开始实践->阻断失败,遇到坑->分析问题,解决问题->出坑。

做事情一定要有工匠精神,力求把事情做到更细更好。不管是tcp阻断功能还是http重定向功能,其定位就是在旁路进行阻断操作。

完整程序以后再传吧,没啥技术点,主要是要多调试bug。

参考资料:

http://www.cnblogs.com/jinxiaopeng/p/4201030.html(不过代码有点bug)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: