14#include <unordered_map>
20#include "PayloadLayer.h"
21#include "PacketUtils.h"
22#include "SystemUtils.h"
32#define MAX_SIZE_PAC_LEN 100
58 std::vector<uint16_t>
ttl;
59 std::vector<uint16_t>
tos;
60 std::vector<uint16_t>
id;
70 std::vector<uint16_t>
flag;
110 for (
const auto& val : seq) {
111 outputF << val <<
',';
150 uint32_t hashVal = packet_attr.
hash_val;
199 void to_csv(std::ofstream& outputFile,
const std::string& tag)
202 std::vector<flowUniAttr> attr_l;
207 pair.second.resize();
208 attr_l.push_back(pair.second);
213 for (
const auto& item : attr_l) {
215 outputFile << item.hash_val <<
',';
216 outputFile << item.src_ip <<
',';
217 outputFile << item.dst_ip <<
',';
218 outputFile << item.src_port <<
',';
219 outputFile << item.dst_port <<
',';
220 outputFile << item.protocol <<
',';
239 outputFile << tag <<
'\n';
处理网络包并提取流级属性的类
Definition flowUniAttr.h:122
std::unordered_map< uint32_t, flowUniAttr > m_FlowTable
将流哈希值映射到流属性的哈希表
Definition flowUniAttr.h:128
void handle_packet(pcpp::Packet *packet)
处理单个网络包
Definition flowUniAttr.h:144
long long packet_count
此操作器处理的总包数
Definition flowUniAttr.h:135
void to_csv(std::ofstream &outputFile, const std::string &tag)
将流数据导出为CSV格式
Definition flowUniAttr.h:199
包统一属性基类,表征了IPv4的IP到传输层大多数有用的属性
Definition unifiedPacketAttr.h:46
uint16_t len_load
负载长度
Definition unifiedPacketAttr.h:67
uint8_t protocol
传输层协议类型:TCP=0, UDP=1, ICMP=2
Definition unifiedPacketAttr.h:66
uint8_t icmp_type
ICMP类型
Definition unifiedPacketAttr.h:81
uint32_t ack_num
确认号(UDP无此字段)
Definition unifiedPacketAttr.h:70
uint16_t src_port
源端口(ICMP无此字段)
Definition unifiedPacketAttr.h:68
uint8_t protocol_ip
IP协议类型字段
Definition unifiedPacketAttr.h:63
uint8_t icmp_code
ICMP代码
Definition unifiedPacketAttr.h:82
uint32_t tv_sec
时间戳(秒)
Definition unifiedPacketAttr.h:51
uint16_t dst_port
目的端口(ICMP无此字段)
Definition unifiedPacketAttr.h:69
uint32_t packet_len
包长度
Definition unifiedPacketAttr.h:50
uint8_t tos
服务类型(Type of Service)
Definition unifiedPacketAttr.h:58
uint8_t ttl
生存时间(Time To Live)
Definition unifiedPacketAttr.h:57
uint16_t len_udp
UDP长度字段
Definition unifiedPacketAttr.h:78
uint16_t flag
TCP标志位
Definition unifiedPacketAttr.h:74
std::string dst_ip
目的IP地址
Definition unifiedPacketAttr.h:54
uint16_t window
TCP窗口大小
Definition unifiedPacketAttr.h:75
std::string src_ip
源IP地址
Definition unifiedPacketAttr.h:53
uint32_t tv_nsec
时间戳(纳秒)
Definition unifiedPacketAttr.h:52
uint32_t seq_num
序列号(UDP无此字段)
Definition unifiedPacketAttr.h:71
uint16_t id
IP标识字段
Definition unifiedPacketAttr.h:59
uint32_t hash_val
五元组计算的流ID
Definition unifiedPacketAttr.h:49
uint16_t offset
片偏移字段
Definition unifiedPacketAttr.h:60
void sequence_to_csv(const std::vector< T > &seq, std::ofstream &outputF)
将向量序列转换为CSV格式的模板函数
Definition flowUniAttr.h:109
#define MAX_SIZE_PAC_LEN
每个流会话的最大包数
Definition flowUniAttr.h:32
存储网络流统一属性的结构体
Definition flowUniAttr.h:42
std::vector< uint16_t > len_load
负载长度序列
Definition flowUniAttr.h:65
std::vector< uint16_t > icmp_type
ICMP类型值序列
Definition flowUniAttr.h:77
uint16_t src_port
源端口号(ICMP不适用)
Definition flowUniAttr.h:48
std::string src_ip
源IP地址
Definition flowUniAttr.h:45
std::vector< uint32_t > tv_sec
时间戳秒数序列
Definition flowUniAttr.h:54
std::vector< uint32_t > seq_num
序列号序列(仅TCP)
Definition flowUniAttr.h:67
std::string dst_ip
目标IP地址
Definition flowUniAttr.h:46
std::vector< uint16_t > ttl
生存时间值序列
Definition flowUniAttr.h:58
std::vector< uint16_t > id
IP标识值序列
Definition flowUniAttr.h:60
uint16_t protocol
传输层协议类型(TCP=0, UDP=1, ICMP=2)
Definition flowUniAttr.h:47
std::vector< uint16_t > flag
TCP标志值序列
Definition flowUniAttr.h:70
std::vector< uint16_t > icmp_code
ICMP代码值序列
Definition flowUniAttr.h:78
std::vector< uint16_t > tos
服务类型值序列
Definition flowUniAttr.h:59
uint32_t hash_val
流标识的哈希值
Definition flowUniAttr.h:44
std::vector< uint32_t > packet_len
包长度序列
Definition flowUniAttr.h:53
std::vector< uint16_t > len_udp
UDP长度值序列
Definition flowUniAttr.h:74
std::vector< uint32_t > ack_num
确认号序列(仅TCP)
Definition flowUniAttr.h:66
std::vector< uint32_t > tv_nsec
时间戳纳秒数序列
Definition flowUniAttr.h:55
size_t packet_count
此流中的包数量
Definition flowUniAttr.h:50
uint16_t dst_port
目标端口号(ICMP不适用)
Definition flowUniAttr.h:49
std::vector< uint16_t > window
TCP窗口大小序列
Definition flowUniAttr.h:71
void clear()
清空所有流数据
Definition flowUniAttr.h:85
void resize()
调整流数据数组大小
Definition flowUniAttr.h:95
std::vector< uint16_t > offset
片偏移值序列
Definition flowUniAttr.h:61
std::vector< uint16_t > protocol_ip
IP协议值序列
Definition flowUniAttr.h:62