tcprstat源码分析之tcp数据包分析
2016-04-27 17:19
771 查看
tcprstat是percona用来监测mysql响应时间的。不过对于任何运行在TCP协议上的响应时间,都可以用。本文主要做源码分析,如何使用tcprstat请大家查看博文《tcprstat分析服务的响应速度利器》
tcprstat和tcpdump一样,使用libpcap库进行抓包,然后再通过程序对抓取的tcp包进行分析。
tcprstat对tcp包分析的大概流程如下:
1、通过分析来源ip和目标ip,看那个ip是本地ip,来判断是进来的包(请求包)还是出去的包(响应包)。
2、如果包的数据大小为0,那么就跳过,不再处理。数据大小为0的视为tcp控制包。
3、如果数据包为进来的包(请求包),则插入一条记录到哈希表。
4、如果数据包为出去的包(响应包),则用现在的包和之前插入哈希表中的响应包做时间差计算。并把之前的包在哈希表中删除。
数据包分析的代码在process-packet.c文件中,方法如下:
ps:在这个文件中,process_packet 方法用户获取头信息。
tcprstat和tcpdump一样,使用libpcap库进行抓包,然后再通过程序对抓取的tcp包进行分析。
tcprstat对tcp包分析的大概流程如下:
1、通过分析来源ip和目标ip,看那个ip是本地ip,来判断是进来的包(请求包)还是出去的包(响应包)。
2、如果包的数据大小为0,那么就跳过,不再处理。数据大小为0的视为tcp控制包。
3、如果数据包为进来的包(请求包),则插入一条记录到哈希表。
4、如果数据包为出去的包(响应包),则用现在的包和之前插入哈希表中的响应包做时间差计算。并把之前的包在哈希表中删除。
数据包分析的代码在process-packet.c文件中,方法如下:
相关文章推荐
- 使用万能框架HttpHelper抓取安卓APP数据
- tcprstat的使用方式
- HTTPS 初解
- HTTP实体和编码
- TCP/IP网络是如何通讯的
- Servlet——HttpServletRequest对象详解
- 【转载】iOS ASI http 框架详解
- SQL Server之——JDBC 到主机 的 TCP/IP 连接失败
- 利用nginx的http转发功能做内网yum源
- OpenSSH的应用和利用OpenSSL创建私有CA签证给httpd服务器开起https
- HTTP的识别,认证与安全
- HTTP网络连接相关知识整理(六):分发处理根异常
- 小米路由器mini--OpenWrt刷机/adhoc网络配置/视频传输测试
- IOS学习 网络 NSURLSession和POST文件上传
- Android网络链接状态
- 深信服系列课程视频---网络安全必修课
- iOS应用架构谈-网络层设计方案
- RMI、Hessian、Burlap、Httpinvoker、WebService的比较
- HTTP网络连接相关知识整理(四):超时异常
- P2P实时音视频之NAT穿越