Download Master’s Thesis (30 credits)

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Master’s Thesis (30 credits)
By: Morten Lindeberg
Supervisors: Vera Goebel and Jarle Søberg
Design, Implementation, and
Evaluation of Network Monitoring
Tasks for the Borealis Stream
Processing Engine
Outline
•
•
•
•
•
•
•
•
•
•
Problem description
Application domains
Data stream management system (DSMS)
Borealis
Design
Experiment Setup
Network monitoring tasks
Implementation
Evaluation
Conclusion
Future Work
Slide no. 2
Problem Description
• Design, Implementation, and Evaluation of
Network Monitoring Tasks for the Borealis
Stream Processing Engine
• Network Monitoring Tasks:
– Task-1: Verify Borealis load shedding mechanisms.
– Task-2: Measure the average load of packets and network
load per second over a one minute interval.
– Task-3: How many packets have been sent to certain ports
during the last five minutes?
– Task-4: How many bytes have been exchanged on each
connection during the last ten seconds?
– Task-5: Identify possible SYN flood attacks
Slide no. 3
Application Domains
• Network monitoring
Push - based
(Controlling and measuring the Internet or parts of it)
– Challenges
• Traffic volumes
• Get relevant data
• Privacy
– On-line network measurements
• Passive: Our network tasks
• Active: E.g. Traceroute and Ping
N.M
Looks at all
passing packets
– Off-line network measurements
• Passive: E.g. InTraBase (Siekkinen, 2006)
• Active: Pandora FMS(Pandora, 2007)
DB
Slide no. 4
Cont. Application Domains
• Sensor networks
– TinyDB
Pull-based
• Financial tickers
– Traderbot
Push-based
Slide no. 5
DSMS
• Stream Data Model
– Definition:
A data stream is a real-time, continuous, ordered
sequence of items (Golab, 2003)
n
Slide no. 6
Cont. DSMS
• Requirements
Windows are either
time-based or
tuple-based
Streaming tuples should
only be kept in main
memory, never written
to disk (too slow)
Window techniques:
– Continuous query language
– Data reduction techniques
• Sampling
• Load shedding
• Aggregations with window techniques
Without sliding windows aggregations
would be a blocking operator, since
one never will see the whole stream at
once
– Adaptive
– Integration with a traditional database
– Low latency and high throughput
Hopping windows
Tumbling windows
Overlapping windows
Slide no. 7
Cont. DSMS
• Existing systems:
Name:
Language:
TelegraphCQ (Berkeley Uni.)
SQL-like
STREAM (Stanford Uni.)
SQL-like
Aurora (Brown, M.I.T++)
Boxes and arrows
Medusa (Brown, M.I.T++)
Boxes and arrows
Borealis (Brown, M.I.T++)
Boxes and arrows
Gigascope ($ AT&T)
SQL-Like
Slide no. 8
Borealis
Data stream
• Stream processing engine (SPE)
– Academic research / Public domain
– Distributed queries
– General purpose
• Multi-player first person shooter game
• Network monitoring
• Continuous query language
Distributed
query
n1
High
Availability
n2
– Operator boxes and stream arrows
– XML + GUI
– E.g., operators: Map, Aggregate, Join, Filter,
Random Drop and operators for integration with
statically stored tables
n3
n4
n5
n6
Result tuples
Slide no. 9
Design
Task 1 - Version 1
– Mapping
Task 2 - Version 1
–
Average load and packet
count
Slide no. 10
Cont. Design
Task 3 - Version 2
– Port destination cont
Task 4 - Version 2
– Exchanged bytes
Slide no. 11
Cont. Design
Task 5 - Version 1
– SYN Flood attack (Several hosts initiate half-open connections to a
server so that it has to deny service to others)
– Identifies the relation between the count of SYN packets and
normal packets (Non-SYN). Joins aggregated tuples if SYN count is
twice or more the normal packet count.
Slide no. 12
Cont. Design
<box name="synfilter" type="filter" >
<in stream="Packet" />
<out stream="Syn" />
<out stream="Normal" />
<parameter name="expression.0” value="syn == 1"/>
<parameter name="pass-on-false-port”
</box>
<box name="SynfloodJoin" type="join" >
<in stream="AggregateNormal" />
<in stream="AggregateSyn" />
<out stream="Result" />
value="1" />
<box name="Normalcount" type="aggregate" >
<in stream="Normal" />
<out stream="Aggregatenormal" />
<parameter name="aggregate-function.0”
value="count()" />
<parameter name="aggregate-function-output-name.0”
value="count" />
<parameter name="window-size-by” value="VALUES" />
<parameter name="window-size”
value="1"
/>
<parameter name="advance”
value="1"
/>
<parameter name="order-by”
value="FIELD" />
<parameter name="order-on-field" value="timestamp" />
</box>
<box name="Syncount" type="aggregate" >
<in stream="Syn" />
<out stream="Aggregatesyn" />
<parameter name="aggregate-function.0”
value="count()" />
<parameter name="aggregate-function-output-name.0”
value="count" />
<parameter name="window-size-by” value="VALUES" />
<parameter name="window-size”
value="1"
/>
<parameter name="advance”
value="1"
/>
<parameter name="order-by”
value="FIELD" />
<parameter name="order-on-field” value="timestamp" />
</box>
<parameter name="predicate"
<parameter
<parameter
<parameter
<parameter
<parameter
<parameter
<parameter
<parameter
<parameter
<parameter
<parameter
<parameter
<parameter
<parameter
</box>
value = "left.count * 2 &lt; right.count
and left.count &gt; 0" />
name="left-buffer-size" value = "1" />
name="left-order-by"
value = "VALUES" />
name="left-order-on-field” value = "timestamp" />
name="right-buffer-size” value = "1" />
name="right-order-by” value = "VALUES" />
name="right-order-on-field” value = "timestamp" />
name="out-field-name.0” value="timestamp" />
name="out-field.0"
value="left.timestamp" />
name="out-field-name.1" value="ratio" />
name="out-field.1”
value="right.count / left.count" />
name="out-field-name.2" value="syn" />
name="out-field.2"
value="right.count" />
name="out-field-name.3” value="normal" />
name="out-field.3"
value="left.count" />
Slide no. 13
Experiment Setup
•
•
•
•
•
Scripts executes the different stages of each experiment
TG: Generates traffic
fyaf: Filters packet headers from NIC. Counts the number of packets retrieved
by the C.A
C.A: Transforms the packet headers into tuples. I/O to the Q.P
Q.P: Performs the query on the tuples retrieved from C.A
System resource
consumption is logged
by the execution
scripts..
TG controls the
amount of
generated traffic
per second..
fyaf calculates the
number of lost
packets..
Slide no. 14
Implementation
fyaf
Client application
Data stream
Query processor
Borealis
<xml-query>
• Client application main-method:
int
{
...
main( int
argc, const char
*argv[] )
Results
sock = get_connection();
NOTICE << "Socket opened: " << sock;
status = marshal.open();
if ( status )
{
WARN << "Could not deply the network.";
}
else
{
//Start the timer..
timer = Time::now();
// Send the first batch of tuples.
marshal.sentPacket();
// Run the client event loop.
marshal.runClient();
Queue up the next round with a delay.
Return only on an exception.
}
...
}
Slide no. 15
Evaluation
Results for Task 1 ( The map task )
CPU Maximums
Drop box can lead to increased
CPU utilization
Slide no. 16
Cont. Evaluation
Results for Task 2 - (the simple task)
(Lost packets at different network loads)
40 Mbit/s
Slide no. 17
Cont. Evaluation
Results for Task 2 - (the simple task)
(Task result - Measured Load)
Ac 98%
Ac 96%
Ac 93%
Slide no. 18
Cont. Evaluation
Results for Task 3 - Memory Consumption
Static tables causes increased
memory consumption,
but not much.
Low memory consumption. (31 Mbyte).
No changes when increasing load.
Slide no. 19
Cont. Evaluation
Task
Network Load
Task 1
30,40 Mbit/s
Memory
Consumption
31 Mbyte
Task 2
40 Mbit/s
31 Mbyte
Task 3
10, 30 Mbit/s
31, 33 Mbyte
Task 4
20 Mbit/s
31 Mbyte
Task 5
20 Mbit/s
30, 50+ Mbyte
Slide no. 20
Conclusion
• Support complex network monitor queries
• Borealis can handle network loads:
– 40 Mbit/s for simple tasks
– 20 - 30 Mbit/s for complex tasks
– 10 Mbit/s when comparing input packets with several
thousands of statically stored tuples.
• Load Shedding
– Not fully working, does not identify overload situations
– random_drop box does not significantly increase supported
network load
• Low memory consumption
– System code parameters might affect performance
Slide no. 21
Future Work
• Distribution of queries
• Expand client application (fyaf and load
shedding)
• Optimization of source code system
parameters
• New version of Borealis (Winter 2007)
• Comparison with results from TelegraphCQ
(Søberg, 2006) and STREAM (Hernes, 2006)
Slide no. 22
Bibliography
• (Søberg, 2006) - Design, implementation, and evaluation
of network monitoring tasks with the TelegraphCQ data
stream management system,Master’s Thesis 2006.
• (Hernes, 2006) - Design, implementation, and evaluation
of network monitoring tasks with the STREAM data stream
management system, Master’s Thesis 2006.
• (Siekkinen, 2006) - Root Cause Analysis of TCP
Throughput: Methodology, Techniques, and Applications,
Dr. Scient. Thesis 2006.
• (Golab, 2003) - Issues in Data Stream Management,
Lukasz Golab and M. Tamer Ötzu, 2003
• (Pandora, 2007) - http://pandora.sourceforge.net
Slide no. 23
Related documents