From a315a7187514946ab1a40b973dae2e9f6b2dfad3 Mon Sep 17 00:00:00 2001 From: Janus Varmarken Date: Sat, 12 Jan 2019 20:18:53 -0800 Subject: [PATCH] Reorganize code by creating a package for code that reassembles traffic flows at different layers --- .../edu/uci/iotproject/FlowPatternFinder.java | 2 +- .../Layer2FlowReassemblerObserver.java | 19 ------------------- .../main/java/edu/uci/iotproject/Main.java | 7 ++----- .../analysis/TcpConversationUtils.java | 2 +- .../iotproject/analysis/TrafficLabeler.java | 4 ++-- .../AbstractPatternComparisonResult.java | 2 +- .../comparison/ComparisonFunctions.java | 2 +- .../CompleteMatchPatternComparisonResult.java | 2 +- .../comparison/PatternComparisonTask.java | 2 +- .../seqalignment/ExtractedSequence.java | 2 +- .../seqalignment/SequenceExtraction.java | 3 +-- .../detection/AbstractClusterMatcher.java | 1 - .../iotproject/detection/ClusterMatcher.java | 4 ++-- .../detection/Layer2FlowObserver.java | 2 +- .../{ => layer2}/Layer2ClusterMatcher.java | 14 ++++++++------ .../{ => layer2}/Layer2SequenceMatcher.java | 2 +- .../evaluation/SanitySignatureGenerator.java | 4 ++-- .../layer2}/Layer2Flow.java | 2 +- .../layer2/Layer2FlowReassembler.java} | 6 ++++-- .../layer2/Layer2FlowReassemblerObserver.java | 19 +++++++++++++++++++ .../layer3}/Conversation.java | 2 +- .../layer3}/FinAckPair.java | 2 +- .../layer3}/TcpReassembler.java | 2 +- .../uci/iotproject/util/PcapPacketUtils.java | 2 +- 24 files changed, 54 insertions(+), 55 deletions(-) delete mode 100644 Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Layer2FlowReassemblerObserver.java rename Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/{ => layer2}/Layer2ClusterMatcher.java (92%) rename Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/{ => layer2}/Layer2SequenceMatcher.java (98%) rename Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/{ => trafficreassembly/layer2}/Layer2Flow.java (97%) rename Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/{L2FlowReassembler.java => trafficreassembly/layer2/Layer2FlowReassembler.java} (92%) create mode 100644 Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassemblerObserver.java rename Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/{ => trafficreassembly/layer3}/Conversation.java (99%) rename Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/{ => trafficreassembly/layer3}/FinAckPair.java (99%) rename Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/{ => trafficreassembly/layer3}/TcpReassembler.java (99%) diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/FlowPatternFinder.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/FlowPatternFinder.java index 1d0a9ba..c384852 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/FlowPatternFinder.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/FlowPatternFinder.java @@ -3,6 +3,7 @@ package edu.uci.iotproject; import edu.uci.iotproject.comparison.ComparisonFunctions; import edu.uci.iotproject.comparison.CompleteMatchPatternComparisonResult; import edu.uci.iotproject.comparison.PatternComparisonTask; +import edu.uci.iotproject.trafficreassembly.layer3.Conversation; import org.pcap4j.core.NotOpenException; import org.pcap4j.core.PcapHandle; import org.pcap4j.core.PcapNativeException; @@ -15,7 +16,6 @@ import java.io.*; import java.net.UnknownHostException; import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.time.temporal.ChronoField; import java.util.*; import java.util.concurrent.*; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Layer2FlowReassemblerObserver.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Layer2FlowReassemblerObserver.java deleted file mode 100644 index c9eb2f7..0000000 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Layer2FlowReassemblerObserver.java +++ /dev/null @@ -1,19 +0,0 @@ -package edu.uci.iotproject; - -/** - * For observing a {@link L2FlowReassembler}. - * - * @author Janus Varmarken - */ -public interface Layer2FlowReassemblerObserver { - - /** - * Invoked when when a {@link L2FlowReassembler} detects a new flow (i.e., when it encounters traffic between two - * MAC addresses that has not previously communicated in the traffic trace). - * - * @param reassembler The {@link L2FlowReassembler} that detected the new flow. - * @param newFlow The new flow. - */ - void onNewFlow(L2FlowReassembler reassembler, Layer2Flow newFlow); - -} 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 5b9a54e..a7e9a6c 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 @@ -3,10 +3,9 @@ package edu.uci.iotproject; import static edu.uci.iotproject.analysis.UserAction.Type; import edu.uci.iotproject.analysis.*; -import edu.uci.iotproject.comparison.seqalignment.ExtractedSequence; -import edu.uci.iotproject.comparison.seqalignment.SequenceAlignment; -import edu.uci.iotproject.comparison.seqalignment.SequenceExtraction; import edu.uci.iotproject.io.TriggerTimesFileReader; +import edu.uci.iotproject.trafficreassembly.layer3.Conversation; +import edu.uci.iotproject.trafficreassembly.layer3.TcpReassembler; import edu.uci.iotproject.util.PcapPacketUtils; import edu.uci.iotproject.util.PrintUtils; import org.apache.commons.math3.stat.clustering.Cluster; @@ -15,8 +14,6 @@ import org.pcap4j.core.*; import org.pcap4j.packet.namednumber.DataLinkType; import java.io.EOFException; -import java.io.File; -import java.io.PrintWriter; import java.net.UnknownHostException; import java.time.Instant; import java.util.*; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/analysis/TcpConversationUtils.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/analysis/TcpConversationUtils.java index 7484d8a..f1c264b 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/analysis/TcpConversationUtils.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/analysis/TcpConversationUtils.java @@ -1,6 +1,6 @@ package edu.uci.iotproject.analysis; -import edu.uci.iotproject.Conversation; +import edu.uci.iotproject.trafficreassembly.layer3.Conversation; import edu.uci.iotproject.DnsMap; import edu.uci.iotproject.util.PcapPacketUtils; import org.pcap4j.core.PcapPacket; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/analysis/TrafficLabeler.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/analysis/TrafficLabeler.java index ebc87b1..983de12 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/analysis/TrafficLabeler.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/analysis/TrafficLabeler.java @@ -1,8 +1,8 @@ package edu.uci.iotproject.analysis; -import edu.uci.iotproject.Conversation; +import edu.uci.iotproject.trafficreassembly.layer3.Conversation; import edu.uci.iotproject.DnsMap; -import edu.uci.iotproject.TcpReassembler; +import edu.uci.iotproject.trafficreassembly.layer3.TcpReassembler; import org.pcap4j.core.PacketListener; import org.pcap4j.core.PcapPacket; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/AbstractPatternComparisonResult.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/AbstractPatternComparisonResult.java index f3bd585..cadadbe 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/AbstractPatternComparisonResult.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/AbstractPatternComparisonResult.java @@ -1,6 +1,6 @@ package edu.uci.iotproject.comparison; -import edu.uci.iotproject.Conversation; +import edu.uci.iotproject.trafficreassembly.layer3.Conversation; import edu.uci.iotproject.FlowPattern; /** diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/ComparisonFunctions.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/ComparisonFunctions.java index 15eda20..960d6a7 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/ComparisonFunctions.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/ComparisonFunctions.java @@ -1,6 +1,6 @@ package edu.uci.iotproject.comparison; -import edu.uci.iotproject.Conversation; +import edu.uci.iotproject.trafficreassembly.layer3.Conversation; import edu.uci.iotproject.FlowPattern; import org.pcap4j.core.PcapPacket; import org.pcap4j.packet.TcpPacket; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/CompleteMatchPatternComparisonResult.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/CompleteMatchPatternComparisonResult.java index 3ddd884..960a0d0 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/CompleteMatchPatternComparisonResult.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/CompleteMatchPatternComparisonResult.java @@ -1,6 +1,6 @@ package edu.uci.iotproject.comparison; -import edu.uci.iotproject.Conversation; +import edu.uci.iotproject.trafficreassembly.layer3.Conversation; import edu.uci.iotproject.FlowPattern; /** diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/PatternComparisonTask.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/PatternComparisonTask.java index 808dee7..5a888b7 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/PatternComparisonTask.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/PatternComparisonTask.java @@ -1,6 +1,6 @@ package edu.uci.iotproject.comparison; -import edu.uci.iotproject.Conversation; +import edu.uci.iotproject.trafficreassembly.layer3.Conversation; import edu.uci.iotproject.FlowPattern; import java.util.concurrent.Callable; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/seqalignment/ExtractedSequence.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/seqalignment/ExtractedSequence.java index 297107d..2d193a9 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/seqalignment/ExtractedSequence.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/seqalignment/ExtractedSequence.java @@ -1,6 +1,6 @@ package edu.uci.iotproject.comparison.seqalignment; -import edu.uci.iotproject.Conversation; +import edu.uci.iotproject.trafficreassembly.layer3.Conversation; import org.pcap4j.core.PcapPacket; import java.util.List; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/seqalignment/SequenceExtraction.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/seqalignment/SequenceExtraction.java index c611968..6aaa318 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/seqalignment/SequenceExtraction.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/comparison/seqalignment/SequenceExtraction.java @@ -1,9 +1,8 @@ package edu.uci.iotproject.comparison.seqalignment; -import edu.uci.iotproject.Conversation; +import edu.uci.iotproject.trafficreassembly.layer3.Conversation; import edu.uci.iotproject.analysis.TcpConversationUtils; -import java.util.Comparator; import java.util.List; import java.util.Map; import java.util.stream.Collectors; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/AbstractClusterMatcher.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/AbstractClusterMatcher.java index 4c74eb8..3815acd 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/AbstractClusterMatcher.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/AbstractClusterMatcher.java @@ -1,6 +1,5 @@ package edu.uci.iotproject.detection; -import edu.uci.iotproject.Conversation; import org.pcap4j.core.PcapPacket; import java.util.List; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/ClusterMatcher.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/ClusterMatcher.java index 25f3191..1ff2c02 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/ClusterMatcher.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/ClusterMatcher.java @@ -1,7 +1,7 @@ package edu.uci.iotproject.detection; -import edu.uci.iotproject.Conversation; -import edu.uci.iotproject.TcpReassembler; +import edu.uci.iotproject.trafficreassembly.layer3.Conversation; +import edu.uci.iotproject.trafficreassembly.layer3.TcpReassembler; import edu.uci.iotproject.analysis.TcpConversationUtils; import edu.uci.iotproject.io.PcapHandleReader; import edu.uci.iotproject.util.PrintUtils; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/Layer2FlowObserver.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/Layer2FlowObserver.java index 05cf9a1..26823de 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/Layer2FlowObserver.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/Layer2FlowObserver.java @@ -1,6 +1,6 @@ package edu.uci.iotproject.detection; -import edu.uci.iotproject.Layer2Flow; +import edu.uci.iotproject.trafficreassembly.layer2.Layer2Flow; import org.pcap4j.core.PcapPacket; /** diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/Layer2ClusterMatcher.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.java similarity index 92% rename from Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/Layer2ClusterMatcher.java rename to Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.java index e0438d6..d50a517 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/Layer2ClusterMatcher.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.java @@ -1,8 +1,10 @@ -package edu.uci.iotproject.detection; +package edu.uci.iotproject.detection.layer2; -import edu.uci.iotproject.L2FlowReassembler; -import edu.uci.iotproject.Layer2Flow; -import edu.uci.iotproject.Layer2FlowReassemblerObserver; +import edu.uci.iotproject.trafficreassembly.layer2.Layer2FlowReassembler; +import edu.uci.iotproject.trafficreassembly.layer2.Layer2Flow; +import edu.uci.iotproject.trafficreassembly.layer2.Layer2FlowReassemblerObserver; +import edu.uci.iotproject.detection.AbstractClusterMatcher; +import edu.uci.iotproject.detection.Layer2FlowObserver; import edu.uci.iotproject.io.PcapHandleReader; import edu.uci.iotproject.util.PrintUtils; import org.pcap4j.core.*; @@ -24,7 +26,7 @@ public class Layer2ClusterMatcher extends AbstractClusterMatcher implements Laye List>> onSignature = PrintUtils.deserializeSignatureFromFile(onSignatureFile); - L2FlowReassembler flowReassembler = new L2FlowReassembler(); + Layer2FlowReassembler flowReassembler = new Layer2FlowReassembler(); Layer2ClusterMatcher l2ClusterMatcher = new Layer2ClusterMatcher(onSignature.get(0)); flowReassembler.addObserver(l2ClusterMatcher); @@ -141,7 +143,7 @@ public class Layer2ClusterMatcher extends AbstractClusterMatcher implements Laye @Override - public void onNewFlow(L2FlowReassembler reassembler, Layer2Flow newFlow) { + public void onNewFlow(Layer2FlowReassembler reassembler, Layer2Flow newFlow) { // Subscribe to the new flow to get updates whenever a new packet pertaining to the flow is processed. newFlow.addFlowObserver(this); } diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/Layer2SequenceMatcher.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/layer2/Layer2SequenceMatcher.java similarity index 98% rename from Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/Layer2SequenceMatcher.java rename to Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/layer2/Layer2SequenceMatcher.java index 35d628d..de5c14a 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/Layer2SequenceMatcher.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/detection/layer2/Layer2SequenceMatcher.java @@ -1,4 +1,4 @@ -package edu.uci.iotproject.detection; +package edu.uci.iotproject.detection.layer2; import edu.uci.iotproject.analysis.TriggerTrafficExtractor; import org.pcap4j.core.PcapPacket; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/evaluation/SanitySignatureGenerator.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/evaluation/SanitySignatureGenerator.java index 9cecf56..060387a 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/evaluation/SanitySignatureGenerator.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/evaluation/SanitySignatureGenerator.java @@ -1,7 +1,7 @@ package edu.uci.iotproject.evaluation; -import edu.uci.iotproject.Conversation; -import edu.uci.iotproject.TcpReassembler; +import edu.uci.iotproject.trafficreassembly.layer3.Conversation; +import edu.uci.iotproject.trafficreassembly.layer3.TcpReassembler; import edu.uci.iotproject.io.PcapHandleReader; import edu.uci.iotproject.util.PrintUtils; import org.pcap4j.core.*; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Layer2Flow.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer2/Layer2Flow.java similarity index 97% rename from Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Layer2Flow.java rename to Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer2/Layer2Flow.java index d50a911..f1b7190 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Layer2Flow.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer2/Layer2Flow.java @@ -1,4 +1,4 @@ -package edu.uci.iotproject; +package edu.uci.iotproject.trafficreassembly.layer2; import edu.uci.iotproject.detection.Layer2FlowObserver; import org.pcap4j.core.PcapPacket; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/L2FlowReassembler.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassembler.java similarity index 92% rename from Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/L2FlowReassembler.java rename to Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassembler.java index b09189f..e7b7304 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/L2FlowReassembler.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassembler.java @@ -1,5 +1,7 @@ -package edu.uci.iotproject; +package edu.uci.iotproject.trafficreassembly.layer2; +import edu.uci.iotproject.trafficreassembly.layer2.Layer2Flow; +import edu.uci.iotproject.trafficreassembly.layer2.Layer2FlowReassemblerObserver; import org.pcap4j.core.PacketListener; import org.pcap4j.core.PcapPacket; import org.pcap4j.packet.EthernetPacket; @@ -14,7 +16,7 @@ import java.util.*; * @author Janus Varmarken {@literal } * @author Rahmadi Trimananda {@literal } */ -public class L2FlowReassembler implements PacketListener { +public class Layer2FlowReassembler implements PacketListener { /** * Maps a pair of MAC addresses to the packets exchanged between the two hosts. diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassemblerObserver.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassemblerObserver.java new file mode 100644 index 0000000..a71cd19 --- /dev/null +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassemblerObserver.java @@ -0,0 +1,19 @@ +package edu.uci.iotproject.trafficreassembly.layer2; + +/** + * For observing a {@link Layer2FlowReassembler}. + * + * @author Janus Varmarken + */ +public interface Layer2FlowReassemblerObserver { + + /** + * Invoked when when a {@link Layer2FlowReassembler} detects a new flow (i.e., when it encounters traffic between two + * MAC addresses that has not previously communicated in the traffic trace). + * + * @param reassembler The {@link Layer2FlowReassembler} that detected the new flow. + * @param newFlow The new flow. + */ + void onNewFlow(Layer2FlowReassembler reassembler, Layer2Flow newFlow); + +} diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Conversation.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer3/Conversation.java similarity index 99% rename from Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Conversation.java rename to Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer3/Conversation.java index 490dc4f..e89e81b 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/Conversation.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer3/Conversation.java @@ -1,4 +1,4 @@ -package edu.uci.iotproject; +package edu.uci.iotproject.trafficreassembly.layer3; import edu.uci.iotproject.analysis.TcpConversationUtils; import edu.uci.iotproject.util.PcapPacketUtils; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/FinAckPair.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer3/FinAckPair.java similarity index 99% rename from Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/FinAckPair.java rename to Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer3/FinAckPair.java index d4451f3..fe4f032 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/FinAckPair.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer3/FinAckPair.java @@ -1,4 +1,4 @@ -package edu.uci.iotproject; +package edu.uci.iotproject.trafficreassembly.layer3; import org.pcap4j.core.PcapPacket; import org.pcap4j.packet.IpV4Packet; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/TcpReassembler.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer3/TcpReassembler.java similarity index 99% rename from Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/TcpReassembler.java rename to Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer3/TcpReassembler.java index 72f0c1c..e150875 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/TcpReassembler.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/trafficreassembly/layer3/TcpReassembler.java @@ -1,4 +1,4 @@ -package edu.uci.iotproject; +package edu.uci.iotproject.trafficreassembly.layer3; import org.pcap4j.core.PacketListener; import org.pcap4j.core.PcapPacket; diff --git a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/util/PcapPacketUtils.java b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/util/PcapPacketUtils.java index cc958ee..f07072a 100644 --- a/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/util/PcapPacketUtils.java +++ b/Code/Projects/SmartPlugDetector/src/main/java/edu/uci/iotproject/util/PcapPacketUtils.java @@ -1,6 +1,6 @@ package edu.uci.iotproject.util; -import edu.uci.iotproject.Conversation; +import edu.uci.iotproject.trafficreassembly.layer3.Conversation; import edu.uci.iotproject.analysis.PcapPacketPair; import edu.uci.iotproject.analysis.TcpConversationUtils; import edu.uci.iotproject.analysis.TriggerTrafficExtractor; -- 2.34.1