抓包函数分析
2012-03-02 17:00
113 查看
tcpcopy代码中试验了各种不同的抓包函数:
1)int sock = socket(AF_PACKET,SOCK_DGRAM,htons(ETH_P_ALL));
这个函数工作在数据链路层,可以截取IN的数据包和OUT的数据包,我们做了这么一个测试:
我们在208机器上发起mysql请求,148作为在线服务器,同时在148上面运行tcpcopy来截取数据包,并且发送请求包给161(作为测试服务器)
结果测试如下:
tcpcopy截获了148上面的mysql请求packets,mysql响应packets,还有tcpcopy自身发送的请求packets
2)int sock = socket(AF_PACKET,SOCK_DGRAM,htons(ETH_P_IP));
这个函数工作在数据链路层,但没有数据链路层的头部信息。
同上面试验一样,我们可以截取到mysql请求packets,但mysql响应packets和tcpcopy自身发出的请求packets没有截获到。
3) socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP));
这个函数工作在数据链路层,与2不同的是,截获到的packets,会有数据链路层的头部信息
4)int sock = socket(AF_INET,SOCK_RAW,IPPROTO_TCP);
这个函数工作在ip层,同1)试验一样,我们可以截取到mysql请求packets,但mysql响应packets和tcpcopy自身发出的请求packets没有截获到
目前tcpcopy采用4方式来运行。
1)int sock = socket(AF_PACKET,SOCK_DGRAM,htons(ETH_P_ALL));
这个函数工作在数据链路层,可以截取IN的数据包和OUT的数据包,我们做了这么一个测试:
我们在208机器上发起mysql请求,148作为在线服务器,同时在148上面运行tcpcopy来截取数据包,并且发送请求包给161(作为测试服务器)
结果测试如下:
tcpcopy截获了148上面的mysql请求packets,mysql响应packets,还有tcpcopy自身发送的请求packets
2)int sock = socket(AF_PACKET,SOCK_DGRAM,htons(ETH_P_IP));
这个函数工作在数据链路层,但没有数据链路层的头部信息。
同上面试验一样,我们可以截取到mysql请求packets,但mysql响应packets和tcpcopy自身发出的请求packets没有截获到。
3) socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP));
这个函数工作在数据链路层,与2不同的是,截获到的packets,会有数据链路层的头部信息
4)int sock = socket(AF_INET,SOCK_RAW,IPPROTO_TCP);
这个函数工作在ip层,同1)试验一样,我们可以截取到mysql请求packets,但mysql响应packets和tcpcopy自身发出的请求packets没有截获到
目前tcpcopy采用4方式来运行。
相关文章推荐
- 分析函数KEEP关键字释义
- page_address()函数分析--如何通过page取得虚拟地址
- tcpdump抓包分析详解
- XNA Math Library 函数调用之参数传递分析
- 关于C语言feof()函数判断文件结尾的问题分析
- Vxworks启动代码usrRoot()函数分析(一)
- Linux内核源码分析--内存管理(二、函数实现技巧)
- Oracle聚合函数/分析函数
- Windows系统调用架构分析—也谈KiFastCallEntry函数地址的获取
- Wireshark数据抓包教程之认识捕获分析数据包
- Oracle PostgreSQL (ROW_NUMBER() OVER)分析函数
- PHP中substr()与explode()函数用法分析
- 网络基本功(二十七):Wireshark抓包实例分析HTTP问题(上)
- 几个重要windows驱动函数分析
- getopt函数分析命令行参数
- oracle中 三个分析函数的区分
- oracle分析函数
- C++类对象内存模型与成员函数调用分析
- 算法学习四:算法性能分析理论基础——函数增长与渐进分析
- orcle分析函数