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)
思考了下,可能是如下原因导致的:
现在能确认,数据包成功发送到对端,那么就是构造的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)
相关文章推荐
- 用OpenCL实现HEVC中ME模块的测试数据分析
- 快速JavaEE轻量级框架&公用业务模块 设计&实现 6.1 - DAO测试
- 性格色彩测试android程序开发之七--测试题模块dialog的实现
- 【iCore2双核心板视频教程三】iM_LAN 100M 以太网模块TCP压力测试(更新视频教程)
- 模块管理常规功能自定义系统的设计与实现(56--开源开发测试版发布 )
- 游戏任务成就体系的实现(五):通讯模块(MsgUtil)基于NodeJS+TCP的机制的实现
- centos7.2 源码编译安装nginx,实现tcp反向代理,不中断服务新增编译模块
- 用OpenCL实现HEVC中ME模块的测试数据分析
- C# 与 C 分别实现最简单的tcp-modbus 通信测试 (func_code = 0x03)
- 用蓝牙串口模块,实现和笔记本电脑自带蓝牙的数据收发测试
- 快速JavaEE轻量级框架&公用业务模块 设计&实现 6 - 测试框架
- 模拟摄像头解码模块最新测试 TVP5150模块 FPGA+SDRAM+TVP5150+VGA 实现PAL AV输入 VGA视频输出
- 用 脚本+monkey,实现模块进入和退出的自动测试
- Cocos2dx 的TCP/IP socket通信模块的设计与实现(一)
- ZF2框架实现自定义模块并测试成功
- 用struct模块实现python socket收发自定义TCP包
- 实现方法重载的测试代码
- 微软软件实现技术授课系列内容之五:软件测试基础
- 基于双缓冲队列的串口通信模块的研究与实现
- 内存分配的的模块已经基本写完。帮忙测试一下内存分配器。