capture 1.2.0
这是一个基于 PcapPlusPlus、PF_RING 和 ClickHouse 构建的高性能网络流量分析系统,专注于实时流量捕获、解析与存储。
|
HTTP统计信息收集器 More...
#include <HttpStatsCollector.h>
Classes | |
struct | HttpFlowData |
为每个流收集的辅助数据,用于帮助计算该流的统计信息 More... |
Public Member Functions | |
HttpStatsCollector () | |
构造函数 - 清空所有结构 | |
void | collectStats (pcpp::Packet *httpPacket) |
为单个包收集统计信息 | |
void | calcRates () |
计算速率。应该定期调用 | |
void | clear () |
清空到目前为止收集的所有统计信息 | |
HttpGeneralStats & | getGeneralStats () |
获取HTTP通用统计信息 | |
HttpRequestStats & | getRequestStats () |
获取HTTP请求统计信息 | |
HttpResponseStats & | getResponseStats () |
获取HTTP响应统计信息 |
Private Member Functions | |
uint32_t | collectHttpTrafficStats (pcpp::Packet *httpPacket) |
收集与每个HTTP包相关的统计信息(请求、响应或任何其他) | |
void | collectHttpGeneralStats (pcpp::TcpLayer *tcpLayer, pcpp::HttpMessage *message, uint32_t flowKey) |
收集与HTTP消息相关的统计信息(请求或响应) | |
void | collectRequestStats (pcpp::HttpRequestLayer *req) |
收集与HTTP请求消息相关的统计信息 | |
void | collectResponseStats (pcpp::HttpResponseLayer *res) |
收集与HTTP响应消息相关的统计信息 | |
double | getCurTime (void) |
获取当前时间 |
Private Attributes | |
HttpGeneralStats | m_GeneralStats |
当前HTTP通用统计信息 | |
HttpGeneralStats | m_PrevGeneralStats |
上次的HTTP通用统计信息 | |
HttpRequestStats | m_RequestStats |
当前HTTP请求统计信息 | |
HttpRequestStats | m_PrevRequestStats |
上次的HTTP请求统计信息 | |
HttpResponseStats | m_ResponseStats |
当前HTTP响应统计信息 | |
HttpResponseStats | m_PrevResponseStats |
上次的HTTP响应统计信息 | |
std::map< uint32_t, HttpFlowData > | m_FlowTable |
流表,存储每个流的辅助数据 | |
double | m_LastCalcRateTime |
上次计算速率的时间 | |
double | m_StartTime |
统计开始时间 |
HTTP统计信息收集器
应该为每个到达的包调用,并定期调用以计算速率。 收集HTTP流量的各种统计信息,包括请求、响应、流量速率等。
|
inlineexplicit |
构造函数 - 清空所有结构
初始化统计收集器并清空所有统计数据
|
inline |
计算速率。应该定期调用
计算当前速率和总体速率,更新所有速率相关的统计信息
|
inline |
清空到目前为止收集的所有统计信息
重置所有统计数据并重新初始化时间戳
|
inlineprivate |
收集与HTTP消息相关的统计信息(请求或响应)
tcpLayer | TCP层指针 |
message | HTTP消息指针 |
flowKey | 流键值 |
处理HTTP事务的开启和关闭,检测HTTP管道化
|
inlineprivate |
收集与每个HTTP包相关的统计信息(请求、响应或任何其他)
httpPacket | HTTP包指针 |
此方法计算并返回此包的流键
|
inlineprivate |
收集与HTTP请求消息相关的统计信息
req | HTTP请求层指针 |
统计请求数量、头部大小、主机名和HTTP方法
|
inlineprivate |
收集与HTTP响应消息相关的统计信息
res | HTTP响应层指针 |
统计响应数量、头部大小、内容长度、内容类型和状态码
|
inline |
为单个包收集统计信息
httpPacket | 要处理的HTTP包指针 |
分析包的类型(请求/响应)并收集相应的统计信息
|
inlineprivate |
获取当前时间
使用gettimeofday获取高精度时间戳
|
inline |
获取HTTP通用统计信息
|
inline |
获取HTTP请求统计信息
|
inline |
获取HTTP响应统计信息
|
private |
流表,存储每个流的辅助数据
|
private |
当前HTTP通用统计信息
|
private |
上次计算速率的时间
|
private |
上次的HTTP通用统计信息
|
private |
上次的HTTP请求统计信息
|
private |
上次的HTTP响应统计信息
|
private |
当前HTTP请求统计信息
|
private |
当前HTTP响应统计信息
|
private |
统计开始时间