capture 1.2.0
这是一个基于 PcapPlusPlus、PF_RING 和 ClickHouse 构建的高性能网络流量分析系统,专注于实时流量捕获、解析与存储。
|
维护哈希表的类 More...
#include <HashTableManager.h>
Public Member Functions | |
HashTableManager () | |
构造函数 | |
~HashTableManager () | |
析构函数 | |
long long | updatePacketCount (uint32_t hashVal) |
更新指定哈希值的包数 | |
std::vector< uint32_t > | getHashesToInfer () |
获取待推理的哈希值 | |
void | markAsInferred (uint32_t hashVal) |
标记某个哈希值为已推理 | |
void | talk_to_python () |
与Python推理客户端通信 |
Private Member Functions | |
void | log (LogLevel level, const std::string &message) |
记录日志 | |
void | server_routine () |
服务器线程函数 |
Private Attributes | |
std::unordered_map< uint32_t, HashEntry > | hashTable |
存储哈希表数据 | |
std::queue< uint32_t > | inferenceQueue |
待推理队列 | |
SocketServer | server |
用于Python客户端通信的套接字服务器 | |
std::thread | server_thread |
服务器线程 | |
std::atomic< bool > | running |
控制服务器线程运行 | |
std::mutex | hashTable_mutex |
保护哈希表的互斥锁 | |
std::mutex | queue_mutex |
保护待推理队列的互斥锁 |
Static Private Attributes | |
static constexpr size_t | MAX_HASH_TABLE_SIZE = 1000000 |
哈希表最大容量 | |
static constexpr int | RECONNECT_DELAY_MS = 5000 |
重连延迟(毫秒) | |
static constexpr int | PACKET_THRESHOLD = 100 |
包数阈值 |
维护哈希表的类
此类维护网络流的哈希表,跟踪包数,管理准备推理的流队列, 并通过套接字连接与Python推理客户端通信。它运行后台服务器线程 来处理客户端连接和定期数据传输。
|
inline |
构造函数
初始化哈希表管理器并启动后台服务器线程
|
inline |
析构函数
停止服务器线程并关闭 socket,使 accept 能被中断
|
inline |
获取待推理的哈希值
从推理队列中检索最多MAX_SEND_ONCE个哈希值。 线程安全操作,从队列中移除条目。
|
inlineprivate |
记录日志
level | 日志消息的严重程度级别 |
message | 要记录的消息内容 |
格式化并输出带有时间戳和级别信息的日志消息
|
inline |
标记某个哈希值为已推理
hashVal | 要标记为已推理的哈希值 |
设置指定流的推理标志,防止其再次被添加到推理队列
|
inlineprivate |
服务器线程函数
初始化套接字服务器,等待Python客户端连接, 并定期向连接的客户端发送推理数据。处理连接失败并尝试重连。
std::runtime_error | 如果服务器初始化失败 |
|
inline |
与Python推理客户端通信
检索准备推理的哈希值并将其发送到连接的Python客户端。 将成功发送的哈希值标记为已推理。
std::runtime_error | 如果与Python客户端通信失败 |
|
inline |
更新指定哈希值的包数
hashVal | 网络流的哈希值 |
增加给定流的包数。如果流达到包数阈值且尚未被推理, 将其添加到推理队列。为之前未见过的流创建新条目。
|
private |
存储哈希表数据
|
private |
保护哈希表的互斥锁
|
private |
待推理队列
|
staticconstexprprivate |
哈希表最大容量
|
staticconstexprprivate |
包数阈值
|
private |
保护待推理队列的互斥锁
|
staticconstexprprivate |
重连延迟(毫秒)
|
private |
控制服务器线程运行
|
private |
用于Python客户端通信的套接字服务器
|
private |
服务器线程