1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
5 <!-- Generated by javadoc (1.8.0_191) on Thu Mar 28 11:26:59 PDT 2019 -->
6 <title>Layer2ClusterMatcher</title>
7 <meta name="date" content="2019-03-28">
8 <link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
9 <script type="text/javascript" src="../../../../../script.js"></script>
12 <script type="text/javascript"><!--
14 if (location.href.indexOf('is-external=true') == -1) {
15 parent.document.title="Layer2ClusterMatcher";
21 var methods = {"i0":10,"i1":10};
22 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
23 var altColor = "altColor";
24 var rowColor = "rowColor";
25 var tableTab = "tableTab";
26 var activeTableTab = "activeTableTab";
29 <div>JavaScript is disabled on your browser.</div>
31 <!-- ========= START OF TOP NAVBAR ======= -->
32 <div class="topNav"><a name="navbar.top">
35 <div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
36 <a name="navbar.top.firstrow">
39 <ul class="navList" title="Navigation">
40 <li><a href="../../../../../overview-summary.html">Overview</a></li>
41 <li><a href="package-summary.html">Package</a></li>
42 <li class="navBarCell1Rev">Class</li>
43 <li><a href="package-tree.html">Tree</a></li>
44 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
45 <li><a href="../../../../../index-files/index-1.html">Index</a></li>
46 <li><a href="../../../../../help-doc.html">Help</a></li>
51 <li><a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2AbstractMatcher.html" title="class in edu.uci.iotproject.detection.layer2"><span class="typeNameLink">Prev Class</span></a></li>
52 <li><a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2RangeMatcher.html" title="class in edu.uci.iotproject.detection.layer2"><span class="typeNameLink">Next Class</span></a></li>
55 <li><a href="../../../../../index.html?edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html" target="_top">Frames</a></li>
56 <li><a href="Layer2ClusterMatcher.html" target="_top">No Frames</a></li>
58 <ul class="navList" id="allclasses_navbar_top">
59 <li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
62 <script type="text/javascript"><!--
63 allClassesLink = document.getElementById("allclasses_navbar_top");
65 allClassesLink.style.display = "block";
68 allClassesLink.style.display = "none";
74 <ul class="subNavList">
75 <li>Summary: </li>
76 <li>Nested | </li>
77 <li>Field | </li>
78 <li><a href="#constructor.summary">Constr</a> | </li>
79 <li><a href="#method.summary">Method</a></li>
81 <ul class="subNavList">
82 <li>Detail: </li>
83 <li>Field | </li>
84 <li><a href="#constructor.detail">Constr</a> | </li>
85 <li><a href="#method.detail">Method</a></li>
88 <a name="skip.navbar.top">
91 <!-- ========= END OF TOP NAVBAR ========= -->
92 <!-- ======== START OF CLASS DATA ======== -->
94 <div class="subTitle">edu.uci.iotproject.detection.layer2</div>
95 <h2 title="Class Layer2ClusterMatcher" class="title">Class Layer2ClusterMatcher</h2>
97 <div class="contentContainer">
98 <ul class="inheritance">
99 <li>java.lang.Object</li>
101 <ul class="inheritance">
102 <li><a href="../../../../../edu/uci/iotproject/detection/AbstractClusterMatcher.html" title="class in edu.uci.iotproject.detection">edu.uci.iotproject.detection.AbstractClusterMatcher</a></li>
104 <ul class="inheritance">
105 <li>edu.uci.iotproject.detection.layer2.Layer2ClusterMatcher</li>
111 <div class="description">
112 <ul class="blockList">
113 <li class="blockList">
115 <dt>All Implemented Interfaces:</dt>
116 <dd><a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowObserver.html" title="interface in edu.uci.iotproject.trafficreassembly.layer2">Layer2FlowObserver</a>, <a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassemblerObserver.html" title="interface in edu.uci.iotproject.trafficreassembly.layer2">Layer2FlowReassemblerObserver</a></dd>
120 <pre>public class <span class="typeNameLabel">Layer2ClusterMatcher</span>
121 extends <a href="../../../../../edu/uci/iotproject/detection/AbstractClusterMatcher.html" title="class in edu.uci.iotproject.detection">AbstractClusterMatcher</a>
122 implements <a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassemblerObserver.html" title="interface in edu.uci.iotproject.trafficreassembly.layer2">Layer2FlowReassemblerObserver</a>, <a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowObserver.html" title="interface in edu.uci.iotproject.trafficreassembly.layer2">Layer2FlowObserver</a></pre>
123 <div class="block">Attempts to detect members of a cluster (packet sequence mutations) in layer 2 flows.</div>
127 <div class="summary">
128 <ul class="blockList">
129 <li class="blockList">
130 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
131 <ul class="blockList">
132 <li class="blockList"><a name="constructor.summary">
135 <h3>Constructor Summary</h3>
136 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
137 <caption><span>Constructors</span><span class="tabEnd"> </span></caption>
139 <th class="colOne" scope="col">Constructor and Description</th>
141 <tr class="altColor">
142 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html#Layer2ClusterMatcher-java.util.List-java.util.function.Function-int-boolean-double-">Layer2ClusterMatcher</a></span>(java.util.List<java.util.List<org.pcap4j.core.PcapPacket>> cluster,
143 java.util.function.Function<<a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2Flow.html" title="class in edu.uci.iotproject.trafficreassembly.layer2">Layer2Flow</a>,java.lang.Boolean> flowFilter,
144 int inclusionTimeMillis,
145 boolean isRangeBased,
146 double eps)</code>
147 <div class="block">Create a new <a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html" title="class in edu.uci.iotproject.detection.layer2"><code>Layer2ClusterMatcher</code></a> that attempts to find occurrences of <code>cluster</code>'s members.</div>
150 <tr class="rowColor">
151 <td class="colOne"><code><span class="memberNameLink"><a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html#Layer2ClusterMatcher-java.util.List-int-boolean-double-">Layer2ClusterMatcher</a></span>(java.util.List<java.util.List<org.pcap4j.core.PcapPacket>> cluster,
152 int inclusionTimeMillis,
153 boolean isRangeBased,
154 double eps)</code>
155 <div class="block">Create a new <a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html" title="class in edu.uci.iotproject.detection.layer2"><code>Layer2ClusterMatcher</code></a> that attempts to find occurrences of <code>cluster</code>'s members.</div>
161 <!-- ========== METHOD SUMMARY =========== -->
162 <ul class="blockList">
163 <li class="blockList"><a name="method.summary">
166 <h3>Method Summary</h3>
167 <table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
168 <caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd"> </span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd"> </span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd"> </span></span></caption>
170 <th class="colFirst" scope="col">Modifier and Type</th>
171 <th class="colLast" scope="col">Method and Description</th>
173 <tr id="i0" class="altColor">
174 <td class="colFirst"><code>void</code></td>
175 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html#onNewFlow-edu.uci.iotproject.trafficreassembly.layer2.Layer2FlowReassembler-edu.uci.iotproject.trafficreassembly.layer2.Layer2Flow-">onNewFlow</a></span>(<a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassembler.html" title="class in edu.uci.iotproject.trafficreassembly.layer2">Layer2FlowReassembler</a> reassembler,
176 <a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2Flow.html" title="class in edu.uci.iotproject.trafficreassembly.layer2">Layer2Flow</a> newFlow)</code>
177 <div class="block">Invoked when when a <a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassembler.html" title="class in edu.uci.iotproject.trafficreassembly.layer2"><code>Layer2FlowReassembler</code></a> detects a new flow (i.e., when it encounters traffic between two
178 MAC addresses that has not previously communicated in the traffic trace).</div>
181 <tr id="i1" class="rowColor">
182 <td class="colFirst"><code>void</code></td>
183 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html#onNewPacket-edu.uci.iotproject.trafficreassembly.layer2.Layer2Flow-org.pcap4j.core.PcapPacket-">onNewPacket</a></span>(<a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2Flow.html" title="class in edu.uci.iotproject.trafficreassembly.layer2">Layer2Flow</a> flow,
184 org.pcap4j.core.PcapPacket newPacket)</code>
185 <div class="block">Invoked when a new packet is added to the observed flow.</div>
189 <ul class="blockList">
190 <li class="blockList"><a name="methods.inherited.from.class.edu.uci.iotproject.detection.AbstractClusterMatcher">
193 <h3>Methods inherited from class edu.uci.iotproject.detection.<a href="../../../../../edu/uci/iotproject/detection/AbstractClusterMatcher.html" title="class in edu.uci.iotproject.detection">AbstractClusterMatcher</a></h3>
194 <code><a href="../../../../../edu/uci/iotproject/detection/AbstractClusterMatcher.html#addObserver-edu.uci.iotproject.detection.ClusterMatcherObserver-">addObserver</a>, <a href="../../../../../edu/uci/iotproject/detection/AbstractClusterMatcher.html#removeObserver-edu.uci.iotproject.detection.ClusterMatcherObserver-">removeObserver</a></code></li>
196 <ul class="blockList">
197 <li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
200 <h3>Methods inherited from class java.lang.Object</h3>
201 <code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
208 <div class="details">
209 <ul class="blockList">
210 <li class="blockList">
211 <!-- ========= CONSTRUCTOR DETAIL ======== -->
212 <ul class="blockList">
213 <li class="blockList"><a name="constructor.detail">
216 <h3>Constructor Detail</h3>
217 <a name="Layer2ClusterMatcher-java.util.List-int-boolean-double-">
220 <ul class="blockList">
221 <li class="blockList">
222 <h4>Layer2ClusterMatcher</h4>
223 <pre>public Layer2ClusterMatcher(java.util.List<java.util.List<org.pcap4j.core.PcapPacket>> cluster,
224 int inclusionTimeMillis,
225 boolean isRangeBased,
226 double eps)</pre>
227 <div class="block">Create a new <a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html" title="class in edu.uci.iotproject.detection.layer2"><code>Layer2ClusterMatcher</code></a> that attempts to find occurrences of <code>cluster</code>'s members.</div>
229 <dt><span class="paramLabel">Parameters:</span></dt>
230 <dd><code>cluster</code> - The sequence mutations that the new <a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html" title="class in edu.uci.iotproject.detection.layer2"><code>Layer2ClusterMatcher</code></a> should search for.</dd>
234 <a name="Layer2ClusterMatcher-java.util.List-java.util.function.Function-int-boolean-double-">
237 <ul class="blockListLast">
238 <li class="blockList">
239 <h4>Layer2ClusterMatcher</h4>
240 <pre>public Layer2ClusterMatcher(java.util.List<java.util.List<org.pcap4j.core.PcapPacket>> cluster,
241 java.util.function.Function<<a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2Flow.html" title="class in edu.uci.iotproject.trafficreassembly.layer2">Layer2Flow</a>,java.lang.Boolean> flowFilter,
242 int inclusionTimeMillis,
243 boolean isRangeBased,
244 double eps)</pre>
245 <div class="block">Create a new <a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html" title="class in edu.uci.iotproject.detection.layer2"><code>Layer2ClusterMatcher</code></a> that attempts to find occurrences of <code>cluster</code>'s members.</div>
247 <dt><span class="paramLabel">Parameters:</span></dt>
248 <dd><code>cluster</code> - The sequence mutations that the new <a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html" title="class in edu.uci.iotproject.detection.layer2"><code>Layer2ClusterMatcher</code></a> should search for.</dd>
249 <dd><code>flowFilter</code> - A filter that defines what <a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2Flow.html" title="class in edu.uci.iotproject.trafficreassembly.layer2"><code>Layer2Flow</code></a>s the new <a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html" title="class in edu.uci.iotproject.detection.layer2"><code>Layer2ClusterMatcher</code></a> should
250 search for <code>cluster</code>'s members in. If <code>flowFilter</code> returns <code>true</code>, the flow
251 will be included (searched). Note that <code>flowFilter</code> is only queried once for each flow,
252 namely when the <a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassembler.html" title="class in edu.uci.iotproject.trafficreassembly.layer2"><code>Layer2FlowReassembler</code></a> notifies the <a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html" title="class in edu.uci.iotproject.detection.layer2"><code>Layer2ClusterMatcher</code></a> about
253 the new flow. This functionality may for example come in handy when one only wants to search
254 for matches in the subset of flows that involves a specific (range of) MAC(s).</dd>
255 <dd><code>inclusionTimeMillis</code> - Packet inclusion time limit for matching.</dd>
256 <dd><code>isRangeBased</code> - The boolean that decides if it is range-based vs. strict matching.</dd>
257 <dd><code>eps</code> - The epsilon value used in the DBSCAN algorithm.</dd>
263 <!-- ============ METHOD DETAIL ========== -->
264 <ul class="blockList">
265 <li class="blockList"><a name="method.detail">
268 <h3>Method Detail</h3>
269 <a name="onNewPacket-edu.uci.iotproject.trafficreassembly.layer2.Layer2Flow-org.pcap4j.core.PcapPacket-">
272 <ul class="blockList">
273 <li class="blockList">
275 <pre>public void onNewPacket(<a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2Flow.html" title="class in edu.uci.iotproject.trafficreassembly.layer2">Layer2Flow</a> flow,
276 org.pcap4j.core.PcapPacket newPacket)</pre>
277 <div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowObserver.html#onNewPacket-edu.uci.iotproject.trafficreassembly.layer2.Layer2Flow-org.pcap4j.core.PcapPacket-">Layer2FlowObserver</a></code></span></div>
278 <div class="block">Invoked when a new packet is added to the observed flow.</div>
280 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
281 <dd><code><a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowObserver.html#onNewPacket-edu.uci.iotproject.trafficreassembly.layer2.Layer2Flow-org.pcap4j.core.PcapPacket-">onNewPacket</a></code> in interface <code><a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowObserver.html" title="interface in edu.uci.iotproject.trafficreassembly.layer2">Layer2FlowObserver</a></code></dd>
282 <dt><span class="paramLabel">Parameters:</span></dt>
283 <dd><code>flow</code> - The observed flow.</dd>
284 <dd><code>newPacket</code> - The packet that was added to the flow.</dd>
288 <a name="onNewFlow-edu.uci.iotproject.trafficreassembly.layer2.Layer2FlowReassembler-edu.uci.iotproject.trafficreassembly.layer2.Layer2Flow-">
291 <ul class="blockListLast">
292 <li class="blockList">
294 <pre>public void onNewFlow(<a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassembler.html" title="class in edu.uci.iotproject.trafficreassembly.layer2">Layer2FlowReassembler</a> reassembler,
295 <a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2Flow.html" title="class in edu.uci.iotproject.trafficreassembly.layer2">Layer2Flow</a> newFlow)</pre>
296 <div class="block"><span class="descfrmTypeLabel">Description copied from interface: <code><a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassemblerObserver.html#onNewFlow-edu.uci.iotproject.trafficreassembly.layer2.Layer2FlowReassembler-edu.uci.iotproject.trafficreassembly.layer2.Layer2Flow-">Layer2FlowReassemblerObserver</a></code></span></div>
297 <div class="block">Invoked when when a <a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassembler.html" title="class in edu.uci.iotproject.trafficreassembly.layer2"><code>Layer2FlowReassembler</code></a> detects a new flow (i.e., when it encounters traffic between two
298 MAC addresses that has not previously communicated in the traffic trace).</div>
300 <dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
301 <dd><code><a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassemblerObserver.html#onNewFlow-edu.uci.iotproject.trafficreassembly.layer2.Layer2FlowReassembler-edu.uci.iotproject.trafficreassembly.layer2.Layer2Flow-">onNewFlow</a></code> in interface <code><a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassemblerObserver.html" title="interface in edu.uci.iotproject.trafficreassembly.layer2">Layer2FlowReassemblerObserver</a></code></dd>
302 <dt><span class="paramLabel">Parameters:</span></dt>
303 <dd><code>reassembler</code> - The <a href="../../../../../edu/uci/iotproject/trafficreassembly/layer2/Layer2FlowReassembler.html" title="class in edu.uci.iotproject.trafficreassembly.layer2"><code>Layer2FlowReassembler</code></a> that detected the new flow.</dd>
304 <dd><code>newFlow</code> - The new flow.</dd>
314 <!-- ========= END OF CLASS DATA ========= -->
315 <!-- ======= START OF BOTTOM NAVBAR ====== -->
316 <div class="bottomNav"><a name="navbar.bottom">
319 <div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
320 <a name="navbar.bottom.firstrow">
323 <ul class="navList" title="Navigation">
324 <li><a href="../../../../../overview-summary.html">Overview</a></li>
325 <li><a href="package-summary.html">Package</a></li>
326 <li class="navBarCell1Rev">Class</li>
327 <li><a href="package-tree.html">Tree</a></li>
328 <li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
329 <li><a href="../../../../../index-files/index-1.html">Index</a></li>
330 <li><a href="../../../../../help-doc.html">Help</a></li>
335 <li><a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2AbstractMatcher.html" title="class in edu.uci.iotproject.detection.layer2"><span class="typeNameLink">Prev Class</span></a></li>
336 <li><a href="../../../../../edu/uci/iotproject/detection/layer2/Layer2RangeMatcher.html" title="class in edu.uci.iotproject.detection.layer2"><span class="typeNameLink">Next Class</span></a></li>
339 <li><a href="../../../../../index.html?edu/uci/iotproject/detection/layer2/Layer2ClusterMatcher.html" target="_top">Frames</a></li>
340 <li><a href="Layer2ClusterMatcher.html" target="_top">No Frames</a></li>
342 <ul class="navList" id="allclasses_navbar_bottom">
343 <li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
346 <script type="text/javascript"><!--
347 allClassesLink = document.getElementById("allclasses_navbar_bottom");
349 allClassesLink.style.display = "block";
352 allClassesLink.style.display = "none";
358 <ul class="subNavList">
359 <li>Summary: </li>
360 <li>Nested | </li>
361 <li>Field | </li>
362 <li><a href="#constructor.summary">Constr</a> | </li>
363 <li><a href="#method.summary">Method</a></li>
365 <ul class="subNavList">
366 <li>Detail: </li>
367 <li>Field | </li>
368 <li><a href="#constructor.detail">Constr</a> | </li>
369 <li><a href="#method.detail">Method</a></li>
372 <a name="skip.navbar.bottom">
375 <!-- ======== END OF BOTTOM NAVBAR ======= -->