Design, Implementation, and Evaluation of Network Monitoring Tasks with the TelegraphCQ Data Stream Management System



Similar documents
SQL Query Evaluation. Winter Lecture 23

Secure SCTP against DoS Attacks in Wireless Internet

Understanding Slow Start

4 Internet QoS Management

Question: 3 When using Application Intelligence, Server Time may be defined as.

Improving the Database Logging Performance of the Snort Network Intrusion Detection Sensor

OpenFlow with Intel Voravit Tanyingyong, Markus Hidell, Peter Sjödin

STANDPOINT FOR QUALITY-OF-SERVICE MEASUREMENT

Physical DB design and tuning: outline

An apparatus for P2P classification in Netflow traces

Internet Firewall CSIS Packet Filtering. Internet Firewall. Examples. Spring 2011 CSIS net15 1. Routers can implement packet filtering

The Classical Architecture. Storage 1 / 36

ICOM : Computer Networks Chapter 6: The Transport Layer. By Dr Yi Qian Department of Electronic and Computer Engineering Fall 2006 UPRM

Improving DNS performance using Stateless TCP in FreeBSD 9

Communication Protocol

Network Measurement. Why Measure the Network? Types of Measurement. Traffic Measurement. Packet Monitoring. Monitoring a LAN Link. ScienLfic discovery

Agenda. sflow intro. sflow architecture. sflow config example. Summary

ICOM 6005 Database Management Systems Design. Dr. Manuel Rodríguez Martínez Electrical and Computer Engineering Department Lecture 2 August 23, 2001

Limitations of Packet Measurement

Technical Challenges for Big Health Care Data. Donald Kossmann Systems Group Department of Computer Science ETH Zurich

TCP over Multi-hop Wireless Networks * Overview of Transmission Control Protocol / Internet Protocol (TCP/IP) Internet Protocol (IP)

Transport Layer Protocols

Lecture 3: Scaling by Load Balancing 1. Comments on reviews i. 2. Topic 1: Scalability a. QUESTION: What are problems? i. These papers look at

Comp 5311 Database Management Systems. 16. Review 2 (Physical Level)

point to point and point to multi point calls over IP

NetStore: An Efficient Storage Infrastructure for Network Forensics and Monitoring

APPENDIX 1 USER LEVEL IMPLEMENTATION OF PPATPAN IN LINUX SYSTEM

DSMS Part 1 & 2. Data Management: Comparison - DBS versus DSMS. Handle Data Streams in DBS?

Windows Server Performance Monitoring

1. Comments on reviews a. Need to avoid just summarizing web page asks you for:

Network Monitoring On Large Networks. Yao Chuan Han (TWCERT/CC)

Benchmarking Cassandra on Violin

Using Fuzzy Logic Control to Provide Intelligent Traffic Management Service for High-Speed Networks ABSTRACT:

Introduction to Cisco IOS Flexible NetFlow

SWISSBOX REVISITING THE DATA PROCESSING SOFTWARE STACK

10 Gbit Hardware Packet Filtering Using Commodity Network Adapters. Luca Deri Joseph Gasparakis

Chapter 3. Internet Applications and Network Programming

Lecture 14: Data transfer in multihop wireless networks. Mythili Vutukuru CS 653 Spring 2014 March 6, Thursday

Master s Thesis Nr. 14

Cluster Computing. ! Fault tolerance. ! Stateless. ! Throughput. ! Stateful. ! Response time. Architectures. Stateless vs. Stateful.

W I S E. SQL Server 2008/2008 R2 Advanced DBA Performance & WISE LTD.

Solution of Exercise Sheet 5

Parallel Databases. Parallel Architectures. Parallelism Terminology 1/4/2015. Increase performance by performing operations in parallel

Inter-domain Routing Basics. Border Gateway Protocol. Inter-domain Routing Basics. Inter-domain Routing Basics. Exterior routing protocols created to:

Tivoli IBM Tivoli Web Response Monitor and IBM Tivoli Web Segment Analyzer

Cisco IOS Flexible NetFlow Technology

Using IPM to Measure Network Performance

Performance White Paper

Outline. TCP connection setup/data transfer Computer Networking. TCP Reliability. Congestion sources and collapse. Congestion control basics

Data Stream Management System

Configuring a Load-Balancing Scheme

Unit Storage Structures 1. Storage Structures. Unit 4.3

How good can databases deal with Netflow data

Chapter 13: Query Processing. Basic Steps in Query Processing

Introduction. Part I: Finding Bottlenecks when Something s Wrong. Chapter 1: Performance Tuning 3

Cisco Integrated Services Routers Performance Overview

Emerald. Network Collector Version 4.0. Emerald Management Suite IEA Software, Inc.

Business Application Services Testing

Application Latency Monitoring using nprobe

(Refer Slide Time: 02:17)

co Characterizing and Tracing Packet Floods Using Cisco R

Computer Networks. Chapter 5 Transport Protocols

Resource Utilization of Middleware Components in Embedded Systems

A Transport Protocol for Multimedia Wireless Sensor Networks

ENHANCEMENTS TO SQL SERVER COLUMN STORES. Anuhya Mallempati #

Configuring Health Monitoring

Load Distribution in Large Scale Network Monitoring Infrastructures

Exploiting Stateful Inspection of Network Security in Reconfigurable Hardware

Lecture 8 Performance Measurements and Metrics. Performance Metrics. Outline. Performance Metrics. Performance Metrics Performance Measurements

Integrating VoltDB with Hadoop

TOE2-IP FTP Server Demo Reference Design Manual Rev1.0 9-Jan-15

Single Pass Load Balancing with Session Persistence in IPv6 Network. C. J. (Charlie) Liu Network Operations Charter Communications

Life of a Packet CS 640,

Configuring Flexible NetFlow

Security vulnerabilities in the Internet and possible solutions

Services. Relational. Databases & JDBC. Today. Relational. Databases SQL JDBC. Next Time. Services. Relational. Databases & JDBC. Today.

Case Study: Instrumenting a Network for NetFlow Security Visualization Tools

ICS Principles of Operating Systems

Network Security TCP/IP Refresher

Allocating Network Bandwidth to Match Business Priorities

Internet Working 5 th lecture. Chair of Communication Systems Department of Applied Sciences University of Freiburg 2004

Infrastructure for active and passive measurements at 10Gbps and beyond

Network forensics 101 Network monitoring with Netflow, nfsen + nfdump

HP Intelligent Management Center v7.1 Network Traffic Analyzer Administrator Guide

LAB THREE STATIC ROUTING

Chapter 1 Load Balancing 99

Transcription:

Design, Implementation, and Evaluation of Network Monitoring Tasks with the TelegraphCQ Data Stream Management System INF5100, Autumn 2006 Jarle

Content Introduction Streaming Applications Data Stream Management Systems TelegraphCQ Query Design System Implementation Performance Evaluation Conclusion

Introduction Network monitoring is important On-line Real-time A lot of programs exist ZoneRanger SiteAlive InMon Netflow MeasureNet Netdisco Internet Detective and so on Source: http://www.slac.stanford.edu/xorg/nmtf/nmtf-tools.html

Introduction Different solutions based on the protocol standards Cumbersome? Too specific? How about new protocols? Add-ons? Proprietary solutions? Written badly?

Introduction Declarative languages Database management systems (SQL) The web (HTML) Prolog What is solved? Use declarative languages to perform network monitoring!

Introduction Data stream management systems (DSMSs) E.g. SQL syntax Easy to learn Don t have to be a programming expert Several DSMSs available (look at earlier INF5100 lecture) STREAM Gigascope Borealis Aurora, Medusa TelegraphCQ

Introduction We have chosen to evaluate the performance of TelegraphCQ in an on-line network monitoring scenario Build a general understanding/give a reminder of Network monitoring DSMSs TelegraphCQ

Introduction Create a set of network monitoring tasks Create a framework for the network monitoring Evaluate the performance of TelegraphCQ on the set of tasks provided Discuss and show results Conclude the performance evaluation

Content Introduction Streaming Applications Data Stream Management Systems TelegraphCQ Query Design System Implementation Performance Evaluation Conclusion

Streaming Applications Revisited The data stream model A contrast to the traditional stored data records E.g. in databases On-line Un-ordered Un-bounded in size Append-only

Streaming Applications Overview Streaming Applications Streaming Applications Pull-Based Push-Based Sensor Networks Network Monitoring Network Traffic Measurement Others Active Network Traffic Analysis Passive

Pull-Based Applications Sensor networks revisited Pull data from environment at certain intervals Wireless Minimize power usage Aggregate data before sending Locate and communicate with other sensors Send data streams to access points where the data is further analyzed

Push-Based Applications Network monitoring Data packets Protocol headers Header fields

Content Introduction Streaming Applications Data Stream Management Systems TelegraphCQ Query Design System Implementation Performance Evaluation Conclusion

Data Stream Management Systems (DSMSs) Revisited Introduction Database management systems (DBMSs) versus DSMSs A comparison Issues in DSMS Continuous queries and windows Approximation and optimization Query languages Examples of DSMSs

DSMSs: Introduction Pose queries on a stream of data Extract information in real-time Compared to DBMSs for simplicity A data packet can be viewed as a tuple The header(s ) fields can be viewed as attributes Still, there are some critical differences between the two system types

DBMSs versus DSMSs Persistent storage Transient queries Random access and finite data sets Unbounded storage Correct answers Transient streams Persistent queries Sequential access and possibly unlimited data streams Memory limitations Throw away tuples and aggregate at high loads Optimize once Adaptive

Transient and persistent Continuous queries Run query at each instance of time Investigate each tuple Monotonic and append-only due to sequential access Give me all the messages that have not been replied to Blocking of the data stream!! Must be avoided Stream is stopped and tuples are shedded

Introducing Windows Give me all messages that have not been given a reply within five minutes after it has been sent Partition data stream into smaller parts Use windows to unblock Different types: Sliding Jumping Tumbling

Windows Sliding window Jumping window Tumbling window window window window window window window window window

Storage? Disk I/O is expensive! Can not store tuples to disk Can only watch tuples once Dependent on memory and window size Query processing must be simple Windows solve the blocking problem

Content Introduction Streaming Applications Data Stream Management Systems TelegraphCQ Query Design System Implementation Performance Evaluation Conclusion

TelegraphCQ Introduction and overview Description of concepts Wrappers Fjords Eddies SteMs CACQ Other features A practical overview Limitations

TelegraphCQ: Introduction Developed at Berkeley Written in C Open source GNU license Based on the PostgreSQL DBMS Current version: 2.1 on PostgreSQL 7.3.2 code base Each group has a running copy on dmms-lab107 Closed down Summer 2006 Still, many interesting and important features to discuss

TelegraphCQ: Overview Postmaster Server Back end Fjords Eddies SteMs CACQ Shared memory queues Front end Planner Parser Listener Client Client Client Shared memory buffer pool Wrapper clearing house Disk

TelegraphCQ: Overview Based on modules Query processing Adaptive routing Ingress and caching Communicate via Fjords Push and pull data in pipeline fashion Reduce overhead by non-blocking behavior

Wrappers Transform data to Datum items Push or pull Several formats Comma separated format (CSV) is used by TelegraphCQ Contacted via TCP Wrapper clearing house (WCH) Many connections possible Store streams to database if needed

Wrappers Shedded tuples, Data Triage Support for dropping tuples Look at Vera s presentation about methods Periodically summarize tuple information shed Shared Memory Buffer Pool Runs shadow queries on shedded tuples Described later

Eddies DBMSs Query plan created once E.g. R" S" Tjoined on some attributes may give this plan: S" TT R" Ss T Ok, as long as data set is finite and pulled R S

Eddies How about pushed data? S" TT Blocking or throwing away tuples is unavoidable! R" Ss T R S

Eddies A reconfiguration is necessary S" TT Might be much changes in the different streams Reconfiguration R" may Sstake long time Not dynamic enough T R S

Eddies An alternative is to use an eddy: R" Ss S" TT Dynamic on a tuple-per-tuple basis eddy Adaptive to changes in the stream T S R

Eddies: Details Bitmap per tuple represents each operator ready and done bits The ready bits specifies the operators the tuple should visit Tuple is ready for output when all done bits are set Manipulate bits to set a route for a tuple On creation of new tuples due to e.g. joins: OR the bitmaps 1 0 0 0 tuple 1 0 1 1 tuple 1 0 1 1 tuple

Eddies: Routing policy Priority scheme Tuples coming from an operator = high priority Prevents starvation Originally: Back-pressure Self regulating due to queuing Naïve, hence not optimal Extended to lottery scheduling

Eddies: Lottery scheduling Each operator has ticket account Credited for each arriving tuple Debited for each leaving tuple Lottery among available operators Empty in-queue: Fast operators High number of tickets: Low selectivity operators

Eddies: Lottery scheduling Low selectivity operators Win even if the operator is slowing down Expand with a window scheme Banked tickets Escrow tickets 12 0 operator 012345 window

Eddies Works for single query environments Simple and adaptive May still not be optimal with respect to dynamic changes over e.g. a single join Extend the eddy s strength by introducing state modules (SteMs)

SteMs Split joins in two Dynamic T R S Send build tuples Build hash tables eddy Send probe tuples Look for matches R S T

SteMs Any possible problems? S R Two equal intermediate tuples! Solved by globally unique sequence number Only youngest tuples allowed to match

SteMs: Issues SteMs are implemented using hash tables Only equi-joins work properly Alternatively, use B-trees Can correctly express more: <>, >>, <=, Not fast enough for conference show-off?

Eddies and SteMs Still single-query environment DSMSs aim to support many concurrent queries This feature needs to be adaptive and manage creation and deletion of queries in real-time Optimization is proven NP-hard

Introducing CACQ Continuously adaptive continuous queries Heuristics Adding more information to the tuples Creating even more meta information Avoid sending same singleton and intermediate tuples to same operators First of all: Use grouped filters!

CACQ: Grouped Filters Module for early filtering of selection predicates For example: SELECT * FROM stream WHERE stream.a = 7 All tuples without stream.a = 7 are not sent to the eddy Includes >, <, and, as well

The CACQ Tuple Extended the eddy tuple to include bitmaps for queriescompleted and sourceid The queriescompleted bitmap Represents the queries Shows a lineage of the tuple The sourceid bitmap Source when queries do not share tuples

Eddies, SteMs, and CACQ: Issues Bitmap statically configured Faster, but not dynamic Much overhead experienced by the developers Tuple-by-tuple processing takes time Batching tuples are suggested Static for shorter periods

Continuous Queries in TelegraphCQ Windowing supports sliding, hopping, and jumping behavior Aggregations are important for correct results Output does not start until window is reached when aggregations are used SELECT stream.color, COUNT(*) FROM stream [RANGE BY 9 SLIDE BY 1 ] GROUP BY stream.color window 12 12 12 21 21 12 START OUPUT!

Other Information Pros: Introspective streams Sub-queries, to some extent Shadow queries for Data Triage tuples Cons: OR is not understood Only istreams, and not dstreams Only six ANDs between SteMs TelegraphCQ is very unstable at high pressure

Content Introduction Streaming Applications Data Stream Management Systems TelegraphCQ Query Design System Implementation Performance Evaluation Conclusion

Query Design and Implementation The IP/TCP header definition Three tasks for evaluation Two simple One complex and large Show how we think when creating these tasks

The IP/TCP Stream All TCP/IP header fields are included Use TelegraphCQ s data types Try to save space Change most fields into integer values smallint (16), int (32), and bigint (64) (all signed) Use the cidr data type for IP addresses Option fields as text Control bits as char(1) Eddy and CACQ bits are added as well

Task 1 Measure the average load of packets and network load per second over a one minute interval Two results simultaneously Create two different queries Sub-query Non-sub-query

Task 1: Sub-query (task_1.1) WITH streams.task1 1 AS ( SELECT COUNT(*), SUM(totalLength), wtime(*) FROM streams.iptcp [RANGE BY 1 second SLIDE BY 1 second ] ) (SELECT AVG(totalNum), AVG(totalLength)*8 FROM streams.task1 1 [RANGE BY 1 minute SLIDE BY 1 second ]);

Task 1: Non-sub-query (task_1.2) SELECT COUNT(*)/60, AVG(s.totalLength) FROM streams.iptcp AS s [RANGE BY 1 minute SLIDE BY 1 second ];

Task 2 How many packets have been sent to certain ports during the last five minutes? Join between table and stream Which ports are interesting?

Task 2 s query SELECT wtime(*), streams.iptcp.destport, COUNT(*) FROM streams.iptcp [RANGE BY 5 minutes SLIDE BY 1 second ], ports WHERE ports.port = streams.iptcp.destport GROUP BY streams.iptcp.destport;

Task 3: A Theoretical Approach How many bytes have been exchanged on each connection during the last ten seconds? Identify connections <sourceip, sourceport, destip, destport> We try to complicate the connection identification by looking at connection establishment Investigate payload Overall task: Investigate protocol requirement

Task 3: Connection establishment The 3-way handshake Sequence number SYN 3 1 0 ACK Acknowledgement number Client Closed SYN-sent Established SYN-received Established Listen 2 4 1 1 Server 4 3 0 1

Express establishment with query Similar conditions as for STREAM SYN Merge 3-way handshake Time window lasting for a given period SYN/ACK

Task 3: Challenges All connections in first interval are not registered There are time limitations for how long a connection can be stored No possibility of storing a connection in TelegraphCQ and remove when connection is closed TelegraphCQ only supports six SteMs concurrently, needing to reduce the number of conditions

Content Introduction Streaming Applications Data Stream Management Systems TelegraphCQ Query Design System Implementation Performance Evaluation Conclusion

System Implementation: fyaf Simple filter for transforming binary packets to comma separated values (CSVs) understood by TelegraphCQ Use the pcap interface Monitors the stream and itself Harder to implement such behavior using Linux programs like sed and awk More control and less possible sources of failure Runs two threads to stop after a time-to-live after the final tuple Precise with regard to start and stop Batch monitor Higher throughput than the DSMSs

Experiment Setup Computer A Computer B TG NIC Header NIC TG Payload fyaf DSMS

Content Introduction Streaming Applications Data Stream Management Systems TelegraphCQ Query Design System Implementation Performance Evaluation Conclusion

Performance evaluation Metrics Relative throughput How much data the DSMS receives versus how much it manages to compute Accuracy Are the results correct? Consumption Memory CPU

Performance evaluation Factors Network load Evaluation technique Measurements

Performance evaluation Workload selection TCP packets The TG traffic generator Manages to create accurate loads up to approx. 10 Mbits/s (according to sar output) Packet size of 576 bytes How is this for the eddy with respect to load shedding?

TelegraphCQ Monitors Use shadow queries for shedded tuples Wrapper TelegraphCQ Both count kept and dropped tuples Gives relative throughput Use introspective queries

TelegraphCQ Monitors Use introspective streams Queries about inner life in TelegraphCQ Queues Modules Not very much implemented Hard to obtain any useful information

Simple Filtering Task Three tasks projecting *, sourceip, sourceport, destip, destport, destport Using both introspective queries and not Intro: called task_101, task_101.1, and task_101.2 Non-intro: called task_101.3, task_101.4, and task_101.5

Relative Throughput: Simple filtering

Load Shedding Accuracy See how accurate TelegraphCQ is fyaf should not drop any packets since TelegraphCQ supports load shedding We investigated log files from both TelegraphCQ and fyaf on the filtering task For both introspective (lines) and non-introspective tasks (linespoints) Found relation by dividing between fyaf s and TelegraphCQ s results

Load Shedding Accuracy 1 0.95 0.9 RT fyaf / RT TelegraphCQ 0.85 0.8 0.75 0.7 0.65 0.6 0.55 0.5 "intro: *" "intro: sourceip, destip, sourceport, destport" "intro: destip" "*" "sourceip, destip, sourceport, destport" "destip" 5 10 15 20 25 30 35 40 Network load (Mbits/s)

Conclusion, Filtering Projecting few attributes using introspective queries seems to be most accurate So we do this for the remaining tasks

Task 1 Measure the average load of packets and network load per second over a one minute interval task_1.1 with sub-query task_1.2 without sub-query

Task 1: Relative throughput

Task 1: Relative throughput task_1.1 probably faster because of the aggregation streams.iptcp Q1 streams.task_1.1 Q2 Still, not that much faster If one eddy, the eddy still has to manage a lot of tuples Eddy versus SteMs Remember how and where the shedding is performed

Task 1: Accuracy

Task 1 TelegraphCQ manages to perform simple aggregations to investigate a stream Low relative throughput Can possibly use shedded tuple information in real-time to adjust for failure Can use a sub-query to aggregate smaller partitions of the stream Still uncertain how large this window should be

Task 2 How many packets have been sent to certain ports during the last five minutes? Run at three different table sizes 65536, 1024, and 1 SteMs use hash lookups at O(1) task_2.1: 65536 ports task_2.2: 1025 ports task_2.3: 1 port

Task 2: Relative Throughput

Task 2: Relative throughput, task_2.1

Task 2: Accuracy, task_2.1

Task 2: Accuracy Use sar to verify accuracy for 1 Mbits/s What do we see? Memory and CPU? Internal adaptation? Some kind of other adaptation? Run for one hour to investigate patterns

Task 2: Equilibrium

Task 2: Equilibrium At 5 Mbits/s Converge to approx 188 packets each second About 1 Mbits/s Analytical modeling may help predicting the future behavior of the relative throughput Future work: Look at aggregations! Though, remember throughput from other tasks

Content Introduction Streaming Applications Data Stream Management Systems TelegraphCQ Query Design System Implementation Performance Evaluation Conclusion

Conclusions about TelegraphCQ Ok support for basic requirements Problems expressing protocols E.g. connection establishment Not that fast for high traffic monitoring 2-2.5 Mbits/s just for filtering in our current setup Has to perform heavy aggregations Loose fine granularity information, e.g. single packets Accurate Unstable

Conclusion about DSMSs and network monitoring Interesting application for DSMSs Simple way of describing data streams Still interesting to look at several other DSMSs for applicability, expressiveness, and accuracy Ideas: Declarative protocol descriptions in dynamic and self aware and self configuring networks?

Questions??