* Directory for logging.
*/
private static String LOG_DIRECTORY = "./";
+ /**
+ * Multiplier for cluster bounds.
+ */
+ private static float CLUSTER_BOUNDS_MULTIPLIER = 0.1f;
public static void main(String[] args) throws PcapNativeException, NotOpenException, EOFException,
TimeoutException, UnknownHostException, IOException {
// Perform clustering on conversation logged as part of all ON events.
// Calculate number of events per type (only ON/only OFF), which means half of the number of all timestamps.
int numberOfEventsPerType = triggerTimes.size() / 2;
- int lowerBound = numberOfEventsPerType - (int)(numberOfEventsPerType * 0.1);
- int upperBound = numberOfEventsPerType + (int)(numberOfEventsPerType * 0.1);
+ int lowerBound = numberOfEventsPerType - (int)(numberOfEventsPerType * CLUSTER_BOUNDS_MULTIPLIER);
+ int upperBound = numberOfEventsPerType + (int)(numberOfEventsPerType * CLUSTER_BOUNDS_MULTIPLIER);
int minPts = lowerBound;
DBSCANClusterer<PcapPacketPair> onClusterer = new DBSCANClusterer<>(eps, minPts);
List<Cluster<PcapPacketPair>> onClusters = onClusterer.cluster(onPairs);
}
PcapPacketUtils.removeSequenceFromSignature(ppListOfListListOn, sequenceToDelete);
}
+ PrintWriterUtils.println("ON Sequences: ", resultsWriter,
+ DUPLICATE_OUTPUT_TO_STD_OUT);
+ for(List<List<PcapPacket>> listOfList : ppListOfListListOn) {
+ PrintWriterUtils.println(listOfList.get(0).get(0).length() + "...", resultsWriter,
+ DUPLICATE_OUTPUT_TO_STD_OUT);
+ }
ppListOfListListOn = PcapPacketUtils.sortSequences(ppListOfListListOn);
PrintWriterUtils.println("Concatenated and sorted ON signature sequences...", resultsWriter,
DUPLICATE_OUTPUT_TO_STD_OUT);
}
PcapPacketUtils.removeSequenceFromSignature(ppListOfListListOff, sequenceToDelete);
}
+ PrintWriterUtils.println("OFF Sequences: ", resultsWriter,
+ DUPLICATE_OUTPUT_TO_STD_OUT);
+ for(List<List<PcapPacket>> listOfList : ppListOfListListOff) {
+ PrintWriterUtils.println(listOfList.get(0).get(0).length() + "...", resultsWriter,
+ DUPLICATE_OUTPUT_TO_STD_OUT);
+ }
ppListOfListListOff = PcapPacketUtils.sortSequences(ppListOfListListOff);
PrintWriterUtils.println("Concatenated and sorted OFF signature sequences...", resultsWriter,
DUPLICATE_OUTPUT_TO_STD_OUT);
PrintWriterUtils.println("========================================", resultsWriter,
DUPLICATE_OUTPUT_TO_STD_OUT);
PcapPacketUtils.printSignatures(ppListOfListListOff, resultsWriter, DUPLICATE_OUTPUT_TO_STD_OUT);
+ // Clean signatures from null elements
+ PcapPacketUtils.cleanSignature(ppListOfListListOn);
+ PcapPacketUtils.cleanSignature(ppListOfListListOff);
// Printing signatures into files
PrintUtils.serializeIntoFile(onSignatureFile, ppListOfListListOn);
PrintUtils.serializeIntoFile(offSignatureFile, ppListOfListListOff);