X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=Code%2FProjects%2FSmartPlugDetector%2Fsrc%2Fmain%2Fjava%2Fedu%2Fuci%2Fiotproject%2FMain.java;h=7d95895b29f84b65971b38b966f239efb801e9b1;hb=00ee9d53efe3437eccc75ba423567466be4998fb;hp=f37719a03a1baa3ae6b55ecfcd5b95ea9d48be56;hpb=977a0a5efeea4a210e5d08c8aa7a43e474bba05e;p=pingpong.git diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Main.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Main.java index f37719a..7d95895 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Main.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Main.java @@ -42,10 +42,16 @@ public class Main { // final String deviceIp = "192.168.1.246"; // .246 == phone; .199 == dlink plug? // TP-Link July 25 experiment - final String inputPcapFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/tplink/tplink.wlan1.local.pcap"; - final String outputPcapFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/tplink/tplink-processed.pcap"; - final String triggerTimesFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/tplink/tplink-july-25-2018.timestamps"; - final String deviceIp = "192.168.1.159"; +// final String inputPcapFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/tplink/tplink.wlan1.local.pcap"; +// final String outputPcapFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/tplink/tplink-processed.pcap"; +// final String triggerTimesFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/tplink/tplink-july-25-2018.timestamps"; +// final String deviceIp = "192.168.1.159"; + + // SmartThings Plug July 25 experiment +// final String inputPcapFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/stplug/stplug.wlan1.local.pcap"; +// final String outputPcapFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/stplug/stplug-processed.pcap"; +// final String triggerTimesFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/stplug/smartthings-july-25-2018.timestamps"; +// final String deviceIp = "192.168.1.246"; // .246 == phone; .142 == SmartThings Hub (note: use eth0 capture for this!) // Wemo July 30 experiment // final String inputPcapFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/wemo/wemo.wlan1.local.pcap"; @@ -53,11 +59,17 @@ public class Main { // final String triggerTimesFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/wemo/wemo-july-30-2018.timestamps"; // final String deviceIp = "192.168.1.145"; + // Wemo Insight July 31 experiment +// final String inputPcapFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/wemoinsight/wemoinsight.wlan1.local.pcap"; +// final String outputPcapFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/wemoinsight/wemoinsight-processed.pcap"; +// final String triggerTimesFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-07/wemoinsight/wemo-insight-july-31-2018.timestamps"; +// final String deviceIp = "192.168.1.135"; + // TP-Link BULB August 1 experiment -// final String inputPcapFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-08/tplink-bulb/tplink-bulb.wlan1.local.pcap"; -// final String outputPcapFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-08/tplink-bulb/tplink-bulb-processed.pcap"; -// final String triggerTimesFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-08/tplink-bulb/tplink-bulb-aug-1-2018.timestamps"; -// final String deviceIp = "192.168.1.140"; + final String inputPcapFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-08/tplink-bulb/tplinkbulb.wlan1.local.pcap"; + final String outputPcapFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-08/tplink-bulb/tplinkbulb-processed.pcap"; + final String triggerTimesFile = "/Users/varmarken/temp/UCI IoT Project/experiments/2018-08/tplink-bulb/tplink-bulb-aug-3-2018.timestamps"; + final String deviceIp = "192.168.1.140"; TriggerTimesFileReader ttfr = new TriggerTimesFileReader(); List triggerTimes = ttfr.readTriggerTimes(triggerTimesFile, false); @@ -107,8 +119,39 @@ public class Main { System.out.println("Counted frequencies of packet pairs per hostname"); // For each user action, reassemble the set of TCP connections occurring shortly after final Map> userActionToConversations = trafficLabeler.getLabeledReassembledTcpTraffic(); + final Map>> userActionsToConvsByHostname = trafficLabeler.getLabeledReassembledTcpTraffic(dnsMap); System.out.println("Reassembled TCP conversations occurring shortly after each user event"); + + + + // ons + Map> ons = new HashMap<>(); + Map> offs = new HashMap<>(); + + userActionsToConvsByHostname.forEach((ua, hostnameToConvs) -> { + Map> outer = ua.getType() == Type.TOGGLE_ON ? ons : offs; + hostnameToConvs.forEach((host, convs) -> { + Map sequenceCounts = TcpConversationUtils.countPacketSequenceFrequencies(convs); + outer.merge(host, sequenceCounts, (existingMap, newMap) -> { + newMap.forEach((sequence, count) -> existingMap.merge(sequence, count, (i1, i2) -> i1+i2)); + return existingMap; + }); + }); + }); + + +// for (Map.Entry newMapEntry : newMap.entrySet()) { +// if (existingMap.get(newMapEntry.getKey()) != null) { +// existingMap.put(newMapEntry.getKey(), existingMap.get(newMapEntry.getKey()) + newMapEntry.getValue()); +// } else { +// existingMap.put(newMapEntry.getKey(), newMapEntry.getValue()); +// } +// } +// return existingMap; + + System.out.println(""); + // ------------------------------------------------------------------------------------------------------------- // ------------------------------------------------------------------------------------------------------------- }