Browse Source

replace single attributes with vectors for IP entropies

Jens Keim 5 years ago
parent
commit
f23d9b0cca

+ 3 - 17
code_boost/src/cxx/statistics.cpp

@@ -318,22 +318,8 @@ void statistics::addIntervalStat(std::chrono::duration<int, std::micro> interval
     intervalCumMSSValues = mss_values;
     intervalCumPortValues = port_values;
 
-    if(ipEntopies.size()>1){
-        interval_statistics[lastPktTimestamp_s].ip_src_entropy = ipEntopies[0];
-        interval_statistics[lastPktTimestamp_s].ip_dst_entropy = ipEntopies[1];
-        interval_statistics[lastPktTimestamp_s].ip_src_novel_entropy = ipEntopies[2];
-        interval_statistics[lastPktTimestamp_s].ip_dst_novel_entropy = ipEntopies[3];
-        interval_statistics[lastPktTimestamp_s].ip_src_entropy_norm = ipEntopies[4];
-        interval_statistics[lastPktTimestamp_s].ip_dst_entropy_norm = ipEntopies[5];
-        interval_statistics[lastPktTimestamp_s].ip_src_novel_entropy_norm = ipEntopies[6];
-        interval_statistics[lastPktTimestamp_s].ip_dst_novel_entropy_norm = ipEntopies[7];
-    }
-    if(ipCumEntopies.size()>1){
-        interval_statistics[lastPktTimestamp_s].ip_src_cum_entropy = ipCumEntopies[0];
-        interval_statistics[lastPktTimestamp_s].ip_dst_cum_entropy = ipCumEntopies[1];
-        interval_statistics[lastPktTimestamp_s].ip_src_cum_entropy_norm = ipCumEntopies[2];
-        interval_statistics[lastPktTimestamp_s].ip_dst_cum_entropy_norm = ipCumEntopies[3];
-    }
+    interval_statistics[lastPktTimestamp_s].ip_entropies = ipEntopies;
+    interval_statistics[lastPktTimestamp_s].ip_cum_entropies = ipCumEntopies;
 }
 
 /**
@@ -430,7 +416,7 @@ void statistics::addConvStatExt(const std::string &ipAddressSender,int sport,con
  * Do this by computing the average packet rate per interval and the average time between intervals.
  * Also compute average interval duration and total communication duration (i.e. last_msg.time - first_msg.time)
  */
-void statistics::createCommIntervalStats(){    
+void statistics::createCommIntervalStats(){
     // iterate over all <convWithProt, entry_convStatExt> pairs
     for (auto &cur_elem : conv_statistics_extended) {
         entry_convStatExt &entry = cur_elem.second;

+ 4 - 24
code_boost/src/cxx/statistics.h

@@ -242,18 +242,8 @@ struct entry_intervalStat {
     float pkt_rate;
     float kbytes;
     float kbyte_rate;
-    double ip_src_entropy;
-    double ip_dst_entropy;
-    double ip_src_novel_entropy;
-    double ip_dst_novel_entropy;
-    double ip_src_entropy_norm;
-    double ip_dst_entropy_norm;
-    double ip_src_novel_entropy_norm;
-    double ip_dst_novel_entropy_norm;
-    double ip_src_cum_entropy;
-    double ip_dst_cum_entropy;
-    double ip_src_cum_entropy_norm;
-    double ip_dst_cum_entropy_norm;
+    std::vector<double> ip_entropies;
+    std::vector<double> ip_cum_entropies;
     std::vector<double> ttl_entropies;
     std::vector<double> win_size_entropies;
     std::vector<double> tos_entropies;
@@ -278,18 +268,8 @@ struct entry_intervalStat {
                && pkt_rate == other.pkt_rate
                && kbytes == other.kbytes
                && kbyte_rate == other.kbyte_rate
-               && ip_src_entropy == other.ip_src_entropy
-               && ip_dst_entropy == other.ip_dst_entropy
-               && ip_src_novel_entropy == other.ip_src_novel_entropy
-               && ip_dst_novel_entropy == other.ip_dst_novel_entropy
-               && ip_src_entropy_norm == other.ip_src_entropy_norm
-               && ip_dst_entropy_norm == other.ip_dst_entropy_norm
-               && ip_src_novel_entropy_norm == other.ip_src_novel_entropy_norm
-               && ip_dst_novel_entropy_norm == other.ip_dst_novel_entropy_norm
-               && ip_src_cum_entropy == other.ip_src_cum_entropy
-               && ip_dst_cum_entropy == other.ip_dst_cum_entropy
-               && ip_src_cum_entropy_norm == other.ip_src_cum_entropy_norm
-               && ip_dst_cum_entropy_norm == other.ip_dst_cum_entropy_norm
+               && ip_entropies == other.ip_entropies
+               && ip_cum_entropies == other.ip_cum_entropies
                && payload_count == other.payload_count
                && incorrect_tcp_checksum_count == other.incorrect_tcp_checksum_count
                && correct_tcp_checksum_count == other.correct_tcp_checksum_count

+ 12 - 12
code_boost/src/cxx/statistics_db.cpp

@@ -723,10 +723,10 @@ void statistics_db::writeStatisticsInterval(const std::unordered_map<std::string
                 query.bind(4, e.pkt_rate);
                 query.bind(5, e.kbytes);
                 query.bind(6, e.kbyte_rate);
-                query.bind(7, e.ip_src_entropy);
-                query.bind(8, e.ip_dst_entropy);
-                query.bind(9, e.ip_src_cum_entropy);
-                query.bind(10, e.ip_dst_cum_entropy);
+                query.bind(7, e.ip_entropies[0]);
+                query.bind(8, e.ip_entropies[1]);
+                query.bind(9, e.ip_cum_entropies[0]);
+                query.bind(10, e.ip_cum_entropies[1]);
                 query.bind(11, e.payload_count);
                 query.bind(12, e.incorrect_tcp_checksum_count);
                 query.bind(13, e.correct_tcp_checksum_count);
@@ -757,14 +757,14 @@ void statistics_db::writeStatisticsInterval(const std::unordered_map<std::string
                 query.bind(38, e.win_size_entropies[3]);
                 query.bind(39, e.tos_entropies[3]);
                 query.bind(40, e.mss_entropies[3]);
-                query.bind(41, e.ip_src_entropy_norm);
-                query.bind(42, e.ip_dst_entropy_norm);
-                query.bind(43, e.ip_src_cum_entropy_norm);
-                query.bind(44, e.ip_dst_cum_entropy_norm);
-                query.bind(45, e.ip_src_novel_entropy);
-                query.bind(46, e.ip_dst_novel_entropy);
-                query.bind(47, e.ip_src_novel_entropy_norm);
-                query.bind(48, e.ip_dst_novel_entropy_norm);
+                query.bind(41, e.ip_entropies[4]);
+                query.bind(42, e.ip_entropies[5]);
+                query.bind(43, e.ip_cum_entropies[2]);
+                query.bind(44, e.ip_cum_entropies[3]);
+                query.bind(45, e.ip_entropies[2]);
+                query.bind(46, e.ip_entropies[3]);
+                query.bind(47, e.ip_entropies[6]);
+                query.bind(48, e.ip_entropies[7]);
                 query.exec();
                 query.reset();