All Projects → czivar → Ruru

czivar / Ruru

Licence: bsd-3-clause
Real-time TCP latency monitoring using DPDK backend and a 3D React frontend

Programming Languages

c
50402 projects - #5 most used programming language

Labels

Projects that are alternatives of or similar to Ruru

susanow
Thread based NFVi on DPDK
Stars: ✭ 27 (-82.58%)
Mutual labels:  dpdk
Trex Core
trex-core site
Stars: ✭ 776 (+400.65%)
Mutual labels:  dpdk
Pcapplusplus
PcapPlusPlus is a multiplatform C++ library for capturing, parsing and crafting of network packets. It is designed to be efficient, powerful and easy to use. It provides C++ wrappers for the most popular packet processing engines such as libpcap, WinPcap, DPDK and PF_RING.
Stars: ✭ 1,322 (+752.9%)
Mutual labels:  dpdk
Jupiter
Jupiter is a high-performance 4-layer network load balance service based on DPDK.
Stars: ✭ 292 (+88.39%)
Mutual labels:  dpdk
Gatekeeper
First open-source DDoS protection system
Stars: ✭ 440 (+183.87%)
Mutual labels:  dpdk
Trafficengine
a high performance TCP traffic generator
Stars: ✭ 22 (-85.81%)
Mutual labels:  dpdk
sip3-captain-ce
SIP3 Captain (Community Edition)
Stars: ✭ 73 (-52.9%)
Mutual labels:  dpdk
The router
TheRouter is a software packet router based on DPDK an NPF libraries.
Stars: ✭ 123 (-20.65%)
Mutual labels:  dpdk
Seastar
High performance server-side application framework
Stars: ✭ 6,328 (+3982.58%)
Mutual labels:  dpdk
Nff Go
NFF-Go -Network Function Framework for GO (former YANFF)
Stars: ✭ 1,036 (+568.39%)
Mutual labels:  dpdk
Containerdns
a fast DNS for Kubernetes clusters
Stars: ✭ 321 (+107.1%)
Mutual labels:  dpdk
Qnsm
QNSM is network security monitoring framework based on DPDK.
Stars: ✭ 334 (+115.48%)
Mutual labels:  dpdk
Dpdk Ans
ANS(Accelerated Network Stack) on DPDK, DPDK native TCP/IP stack.
Stars: ✭ 925 (+496.77%)
Mutual labels:  dpdk
Lagopus
Yet another SDN / OpenFlow software switch
Stars: ✭ 281 (+81.29%)
Mutual labels:  dpdk
Fastclick
FastClick - A faster version the Click Modular Router featuring batching, advanced multi-processing and improved Netmap and DPDK support (ANCS'15). Check the metron branch for Metron specificities (NSDI'18).
Stars: ✭ 100 (-35.48%)
Mutual labels:  dpdk
upf-epc
4G/5G Mobile Core User Plane
Stars: ✭ 97 (-37.42%)
Mutual labels:  dpdk
Moongen
MoonGen is a fully scriptable high-speed packet generator built on DPDK and LuaJIT. It can saturate a 10 Gbit/s connection with 64 byte packets on a single CPU core while executing user-provided Lua scripts for each packet. Multi-core support allows for even higher rates. It also features precise and accurate timestamping and rate control.
Stars: ✭ 810 (+422.58%)
Mutual labels:  dpdk
Lvs Dpdk
LVS on dpdk
Stars: ✭ 125 (-19.35%)
Mutual labels:  dpdk
Natasha
Natasha is a fast and scalable, DPDK powered, stateless NAT44 packet processor
Stars: ✭ 111 (-28.39%)
Mutual labels:  dpdk
Fastdns
fastDNS is an authoritative only, high performance, simple and open source name server based on DPDK and NSD server
Stars: ✭ 12 (-92.26%)
Mutual labels:  dpdk

Ruru: real-time TCP latency monitoring

'Ruru' is a TCP latency monitoring application that helps understanding wide area TCP traffic in real time. It utilises Intel DPDK for high speed packet processing (up to 40Gbit/s) and a Node.JS web frontend to present results.

Ruru live

Publications, talks, podcasts

Ruru at RIPE 75: https://ripe75.ripe.net/archives/video/92/

Ruru was featured in a PacketPushers podcast: http://packetpushers.net/podcast/podcasts/pq-142-tcp-latency-monitoring-ruru/

Ruru has been published in SIGCOMM 2017. Our paper is:

[1] Cziva, R., Lorier, C. and Pezaros, D. P. (2017) Ruru: High-speed, Flow-level Latency Measurement and Visualization of Live Internet Traffic. In: SIGCOMM 2017, Los Angeles, CA, USA, 21-25 Aug 2017

High-level architecture

The system componses of three parts:

  • DPDK-latency backend (written in C / multi-threaded): This software measures the elapsed time between SYN, SYN-ACK and the first ACK TCP packets for all TCP streams. It sends the measurement information (source IP, destination IP, latency (in microsecond)) on a ZMQ sockets.
  • Analytics (written in C / multi-threaded): This component retrieves AS / geotag information for all IPs (using the IP2location.com databases) in the measurement data received from the DPDK backend and generates basic statistics. It pushes information in JSON format on ZMQ sockets.
  • Frontend: It is a Node.js built with React and Deck.Gl. It uses socket.io to communicate with the browser.

Communication between components uses sockets (zmq and websockets). The high-level architecture is shown below.

Architecture

Installation

Installation consists of the following steps:

  1. Install dpdk with by running ./setup.sh
  2. Compile dpdk-latency with make
  3. Set up analytics (more details in the README file of the analytics)
  4. Set up the frontend (more details in the README file of the frontend)

Frequently asked questions

What does Ruru mean?

Ruru is an owl from New Zealand. The bird has been selected to symbolise our software's 'intelligence' and 'clarity in the darkness'. In Māori tradition the ruru was seen as a watchful guardian. You can learn more here.

Can I deploy it? What are the license restrictions?

Ruru is free to deploy and use. The software is provided using a BSD licence that you can find in the LICENSE file.

What does Ruru measure?

It measures TCP handshakes for each individual flow: the time it takes to set up a TCP connection. It looks at TCP flags (SYN, SYN-ACK, first ACK) of the TCP packets (and nothing else).

How does Ruru figure out geographical location / ASN information for IP addresses?

Ruru uses the IP2Location.com databases for IP->ASN, IP->geolocation and IP->proxy information mapping (these are 3 different databases from IP2Location).

What processing performance does Ruru provide?

The core of Ruru (that measures the latency for each flow) is based on DPDK, therefore it can cope with up to 40Gbit/s traffic. Geo-localising each source and destination IP address takes a lot of CPU cycles, therefore it mostly depends on how powerful your host machine is. We have deployed Ruru tapping a 10Gbit/s link.

Which NICs do you support?

All DPDK supported NICs can be used for Ruru. All supported NICs can be found here: http://dpdk.org/doc/nics. We used Intel X520 NICs at REANNZ.

In case of any other questions, please contact Richard Cziva ([email protected])

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].