Network Measurement and Optimisation
'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.
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 / proxy information for all IPs (using 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.
https://github.com/czivar/ruru/blob/master/animation-zoom.gif
Publications
-
Cziva, Richard (University of Glasgow), Lorier, Chris (REANNZ) and Pezaros, D. Pezaros (University of Glasgow) Ruru: High-speed, Flow-level Latency Measurement and Visualization of Live Internet Traffic. (2017) In: ACM SIGCOMM 2017, Los Angeles, CA, USA, 21-25 Aug 2017 (second place on ACM SRC competition)