瀏覽代碼

comment out all new calculations to measure performance

aidmar.wainakh 6 年之前
父節點
當前提交
4d62df95e3

+ 10 - 0
code/ID2TLib/AttackController.py

@@ -1,6 +1,9 @@
 import importlib
 import sys
 
+#Aidmar
+import time
+
 from Attack.AttackParameters import Parameter
 from ID2TLib import LabelManager
 from ID2TLib import Statistics
@@ -77,12 +80,19 @@ class AttackController:
         else:
             attack_note = ""
 
+        # Aidmar
+        start_time = time.clock()
+
         # Write attack into pcap file
         print("Generating attack packets...", end=" ")
         sys.stdout.flush()  # force python to print text immediately
         total_packets, temp_attack_pcap_path = self.current_attack.generate_attack_pcap()
         print("done. (total: " + str(total_packets) + " pkts.)")
 
+        # Aidmar
+        end_time = time.clock()
+        print("Generated Attack in " + str(end_time-start_time)[:4] + " sec")
+
         # Store label into LabelManager
         l = Label(attack, self.get_attack_start_utime(),
                   self.get_attack_end_utime(), attack_note)

+ 6 - 6
code/ID2TLib/Statistics.py

@@ -485,7 +485,7 @@ class Statistics:
         def plot_interval_pktCount(file_ending: str):
             plt.gcf().clear()
             result = self.stats_db._process_user_defined_query(
-                "SELECT timestamp, pktsCount FROM interval_statistics ORDER BY timestamp")
+                "SELECT lastPktTimestamp, pktsCount FROM interval_statistics ORDER BY timestamp")
             graphx, graphy = [], []
             for row in result:
                 graphx.append(row[0])
@@ -516,7 +516,7 @@ class Statistics:
         def plot_interval_ip_src_ent(file_ending: str):
             plt.gcf().clear()
             result = self.stats_db._process_user_defined_query(
-                "SELECT timestamp, ipSrcEntropy FROM interval_statistics ORDER BY timestamp")
+                "SELECT lastPktTimestamp, ipSrcEntropy FROM interval_statistics ORDER BY timestamp")
             graphx, graphy = [], []
             for row in result:
                 graphx.append(row[0])
@@ -547,7 +547,7 @@ class Statistics:
         def plot_interval_ip_dst_ent(file_ending: str):
             plt.gcf().clear()
             result = self.stats_db._process_user_defined_query(
-                "SELECT timestamp, ipDstEntropy FROM interval_statistics ORDER BY timestamp")
+                "SELECT lastPktTimestamp, ipDstEntropy FROM interval_statistics ORDER BY timestamp")
             graphx, graphy = [], []
             for row in result:
                 graphx.append(row[0])
@@ -578,7 +578,7 @@ class Statistics:
         def plot_interval_ip_dst_cum_ent(file_ending: str):
             plt.gcf().clear()
             result = self.stats_db._process_user_defined_query(
-                "SELECT timestamp, ipDstCumEntropy FROM interval_statistics ORDER BY timestamp")
+                "SELECT lastPktTimestamp, ipDstCumEntropy FROM interval_statistics ORDER BY timestamp")
             graphx, graphy = [], []
             for row in result:
                 graphx.append(row[0])
@@ -609,7 +609,7 @@ class Statistics:
             plt.gcf().clear()
 
             result = self.stats_db._process_user_defined_query(
-                "SELECT timestamp, ipSrcCumEntropy FROM interval_statistics ORDER BY timestamp")
+                "SELECT lastPktTimestamp, ipSrcCumEntropy FROM interval_statistics ORDER BY timestamp")
             graphx, graphy = [], []
             for row in result:
                 graphx.append(row[0])
@@ -663,7 +663,7 @@ class Statistics:
         :return: normalized packet rates for each time interval.
         """
         result = self.process_db_query(
-            "SELECT timestamp,pktsCount FROM interval_statistics ORDER BY timestamp")
+            "SELECT lastPktTimestamp,pktsCount FROM interval_statistics ORDER BY timestamp")
         # print(result)
         bg_interval_pps = []
         complement_interval_pps = []

+ 1 - 1
code/ID2TLib/StatsDatabase.py

@@ -180,7 +180,7 @@ class StatsDatabase:
             "most_used.ttlvalue": "SELECT ttlValue FROM ip_ttl GROUP BY ttlValue ORDER BY SUM(ttlCount) DESC LIMIT 1",
             "most_used.mssvalue": "SELECT mssValue FROM tcp_mss_dist GROUP BY mssValue ORDER BY SUM(mssCount) DESC LIMIT 1",
             "most_used.winsize": "SELECT winSize FROM tcp_syn_win GROUP BY winSize ORDER BY SUM(winCount) DESC LIMIT 1",
-            "most_used.ipclass": "SELECT class FROM ip_statistics GROUP BY class ORDER BY COUNT(*) DESC LIMIT 1",
+            "most_used.ipclass": "SELECT ipClass FROM ip_statistics GROUP BY ipClass ORDER BY COUNT(*) DESC LIMIT 1",
 
             "least_used.ipaddress": "SELECT ipAddress FROM ip_statistics WHERE (pktsSent+pktsReceived) == (SELECT MIN(pktsSent+pktsReceived) from ip_statistics)",
             "least_used.macaddress": "SELECT * FROM (SELECT macAddress, COUNT(*) as occ from ip_mac GROUP BY macAddress ORDER BY occ ASC) WHERE occ=(SELECT COUNT(*) as occ from ip_mac GROUP BY macAddress ORDER BY occ ASC LIMIT 1)",

+ 22 - 21
code_boost/src/cxx/pcap_processor.cpp

@@ -108,7 +108,7 @@ void pcap_processor::collect_statistics() {
         std::cout << "Loading pcap..." << std::endl;
         FileSniffer sniffer(filePath);
         // Aidmar - used to know the capture duration, thus choose a suitable interval
-        FileSniffer snifferOverview(filePath);
+        //FileSniffer snifferOverview(filePath);
         
         SnifferIterator i = sniffer.begin();                
         Tins::Timestamp lastProcessedPacket;
@@ -118,38 +118,39 @@ void pcap_processor::collect_statistics() {
     
         // Aidmar
         int counter=0;
-        int timeIntervalCounter = 1;   
-        int timeIntervalsNum = 100;
-        std::chrono::microseconds intervalStartTimestamp = stats.getTimestampFirstPacket();
-        std::chrono::microseconds firstTimestamp = stats.getTimestampFirstPacket();        
+        //int timeIntervalCounter = 1;   
+        //int timeIntervalsNum = 100;
+        //std::chrono::microseconds intervalStartTimestamp = stats.getTimestampFirstPacket();
+        //std::chrono::microseconds firstTimestamp = stats.getTimestampFirstPacket();        
         SnifferIterator lastpkt;
-        for (SnifferIterator j = snifferOverview.begin(); j != snifferOverview.end(); j++) {lastpkt = j;}        
-        std::chrono::microseconds lastTimestamp = lastpkt->timestamp();                  
-        std::chrono::microseconds captureDuration = lastTimestamp - firstTimestamp;
-        if(captureDuration.count()<=0){
+        //for (SnifferIterator j = snifferOverview.begin(); j != snifferOverview.end(); j++) {lastpkt = j;}        
+        //std::chrono::microseconds lastTimestamp = lastpkt->timestamp();                  
+        //std::chrono::microseconds captureDuration = lastTimestamp - firstTimestamp;
+        /*if(captureDuration.count()<=0){
             std::cout<<"ERROR: PCAP file is empty!"<<"\n";
             return;
-        }
-        long timeInterval_microsec = captureDuration.count() / timeIntervalsNum;
-        std::chrono::duration<int, std::micro> timeInterval(timeInterval_microsec);             
-        int previousPacketCount = 0;
-        float previousSumPacketSize = 0;
+        }*/
+        //long timeInterval_microsec = captureDuration.count() / timeIntervalsNum;
+        //std::chrono::duration<int, std::micro> timeInterval(timeInterval_microsec);             
+        //int previousPacketCount = 0;
+        //float previousSumPacketSize = 0;
         
         // Iterate over all packets and collect statistics
         for (; i != sniffer.end(); i++) {                  
             // Aidmar            
-            std::chrono::microseconds lastPktTimestamp = i->timestamp();
+            //std::chrono::microseconds lastPktTimestamp = i->timestamp();
             //Tins::Timestamp tt = i->timestamp();                        
-            std::chrono::microseconds currentCaptureDuration = lastPktTimestamp - firstTimestamp;
-            std::chrono::microseconds barrier =  timeIntervalCounter*timeInterval;
+            //std::chrono::microseconds currentCaptureDuration = lastPktTimestamp - firstTimestamp;
+            //std::chrono::microseconds barrier =  timeIntervalCounter*timeInterval;
             // For each interval
-            if(currentCaptureDuration>barrier){                    
+            /*if(currentCaptureDuration>barrier){                    
                 stats.addIntervalStat(timeInterval, intervalStartTimestamp, lastPktTimestamp, previousPacketCount, previousSumPacketSize);
                 timeIntervalCounter++;   
                 intervalStartTimestamp = lastPktTimestamp;
                 previousPacketCount = stats.getPacketCount();
                 previousSumPacketSize = stats.getSumPacketSize();
-            }                    
+            }*/ 
+            
             stats.incrementPacketCount();
             this->process_packets(*i);                    
             lastProcessedPacket = i->timestamp();            
@@ -258,7 +259,7 @@ void pcap_processor::process_packets(const Packet &pkt) {
                     
             // Aidmar
             // Conversation statistics
-            stats.addConvStat(ipAddressSender, tcpPkt.sport(), ipAddressReceiver, tcpPkt.dport(), pkt.timestamp());  
+            //stats.addConvStat(ipAddressSender, tcpPkt.sport(), ipAddressReceiver, tcpPkt.dport(), pkt.timestamp());  
             
             // Aidmar
             // Check window size for SYN noly
@@ -272,7 +273,7 @@ void pcap_processor::process_packets(const Packet &pkt) {
                 
                 // Aidmar
                 // MSS distribution
-                stats.incrementMSScount(ipAddressSender, val);                          
+                //stats.incrementMSScount(ipAddressSender, val);                          
             } catch (Tins::option_not_found) {
                 // Ignore MSS if option not set
             }

+ 2 - 2
code_boost/src/cxx/statistics.cpp

@@ -644,11 +644,11 @@ void statistics::writeToDatabase(std::string database_path) {
     db.writeStatisticsPorts(ip_ports);
     db.writeStatisticsProtocols(protocol_distribution);
     // Aidmar
-    db.writeStatisticsMss_dist(mss_distribution);
+    /*db.writeStatisticsMss_dist(mss_distribution);
     db.writeStatisticsWin(win_distribution);
     db.writeStatisticsConv(conv_statistics);
     db.writeStatisticsInterval(interval_statistics);
-    
+    */
     
 }
 

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

@@ -26,7 +26,7 @@ void statistics_db::writeStatisticsIP(std::unordered_map<std::string, entry_ipSt
         SQLite::Transaction transaction(*db);
         const char *createTable = "CREATE TABLE ip_statistics ( "
                 "ipAddress TEXT, "
-                "pktsReceived INTEGER, "
+                "pktsReceived INTEGtimestampER, "
                 "pktsSent INTEGER, "
                 "kbytesReceived REAL, "
                 "kbytesSent REAL, "
@@ -384,7 +384,7 @@ void statistics_db::writeStatisticsInterval(std::unordered_map<std::string, entr
                 "ipDstEntropy REAL,"  
                 "ipSrcCumEntropy REAL,"      
                 "ipDstCumEntropy REAL," 
-                "PRIMARY KEY(timestamp));";
+                "PRIMARY KEY(lastPktTimestamp));";
         db->exec(createTable);
         SQLite::Statement query(*db, "INSERT INTO interval_statistics VALUES (?, ?, ?, ?, ?, ?)");
         for (auto it = intervalStatistics.begin(); it != intervalStatistics.end(); ++it) {