Giter Club home page Giter Club logo

atm_overhead_detector's Introduction

ATM_overhead_detector

Heuristically determine likelihood of ATM-AAL5 "quantization" and likely per packet overhead for ATM based links.

Basically, this is just following the ideas established by Jesper Dangaard Brouer in https://web.archive.org/web/20130811042603/http://adsl-optimizer.dk/thesis/main_final_hyper.pdf and by Russell Stuart (https://web.archive.org/web/20150606220856/http://ace-host.stuart.id.au/russell/files/tc/tc-atm/) so none if this is actually new or original.

In a nutshell, this project consists out of two stages, a data collection phase and an atm detection phase. The first phase is performed by a small shell script, that, on unix machines, should collect a set ICMP (ping) probes of systematically differing sizes to a remote site. The second phase then parses the results and tries to detect whether one of the links on the network path was/is affected by ATM AAL5 quantization; in addition it also tries to estimate the amount of per packet overhead that is applied on the ATM-AAL5 link. Note that the 2nd phase will always generate an overhead estimate even on non-ATM links, where the overhead is going to be probably wrong. The user is advised to apply good judgment in seeing how well the estimated quantised "stair"-function fits the empirical data.

The wiki contains a bit more information: https://github.com/moeller0/ATM_overhead_detector/wiki

Instructions:

  1. Read ping_collector.sh (unix) or ping_collector.bat (windows)

  2. optionally edit parameters in ping_collector.sh/ping_collector.bat

  3. Exceute the following from a terminal "./ping_collector.sh suitable.remote.host.IP_or_address" for windows run "ping_collector.bat" inside a command window (CMD.EXE, should be started with the "Run as Administrator" option), make sure to first install hrping (https://www.cfos.de/en/ping/ping.htm)

  4. wait until the script finishes (might take a few hours, basically PINGSPERSIZE * PINGPERIOD * n_SWEEPS in seconds)

  5. run ATM_overhead_detector.m in either matlab or octave* and look at the output (load the resulting output file from the ping_collector run)

NOTE: The estimated overhead will only be correct for ATM links, so if you are certain your link does not use ATM/AAL5, don't bother to use use ATM_overhead_detector, it will not give you reliable information about your link's per-paket-overhead...

*) If the octave statistics package is selected the geometric mean becomes available as measure to use, if the pkg is not available the script simply disables geomean and selects median as default use_measure.

Tests with the fltk backend on both linux and macosx caused octave/ghostscript crashes, so this now defaults to gnuplot under octave

Especially the parser for the output file of the 1st phase is slow, especially under octave; case in point parsing a ~400 MB file contaning 1506625 ping packets took 6420.28 seconds (1 hour 47 minutes and 0.28 seconds) under octave but only 2524.7899 seconds (42 minutes and 4.7899 seconds) under matlab. Fortunetely each file only needs to be parsed once...

Now, it would be great if users of this code could post the "Quantized ATM carrier LIKELY (cummulative residual: stair fit 1.9738 linear fit 14.5684" information from the run as a new issue, together with the information whether the link truely is using an ATM carrier or not. The goal is to figure out a better heuristic to declare ATM carrier likelyhood than simply comparing the cummulative residuals...

atm_overhead_detector's People

Contributors

moeller0 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

atm_overhead_detector's Issues

A1 - result 21. January 2022

ISP - A1

PINGPERIOD=0.005
PINGSPERSIZE=15000

ADSL2plus

ping_sweep__20220120_000843_results

Minimum size of ping payload used: 16 bytes.

lower bound estimate for one ATM cell RTT based of specified up and downlink is 0.42885 ms.
estimate for one ATM cell RTT based on linear fit of the ping sweep data is 0.42885 ms.
Starting brute-force search for optimal stair fit, might take a while...
Best staircase fit cumulative difference is: 2.4513
Best linear fit cumulative difference is: 16.0693
Quantized ATM carrier LIKELY (cummulative residual: stair fit 2.4513 linear fit 16.0693
remaining ATM cell length after ICMP header is 13 bytes.
ICMP RTT of a single ATM cell is 0.39883 ms.

Estimated overhead preceding the IP header: 40 bytes

non-ATM link results

Happy new year!
Here's another run on a different ISP; this time it's PPPoE/PTM (VDSL2).
Cheers!
fig 1
fig 2

Changes?

TODO:
light mode, where the ping process keeps running in the background with multiple sizes and just updates on-line min, max, mean and standard deviation for each ping packet size. This should allow to collect the data on a router without exceeding the storage size.

my own ATM Overhead Detector results, as requested

Quantized ATM carrier LIKELY (cumulative residual: stair fit 3.2921 linear fit 18.8933)
ADSL Provider: Dodo Australia, PPPoE LLC, ADSL2 running at 1430/385 kbps
Estimated overhead preceding the IP header is 40 bytes. Tested using Google DNS

listing packages required for octave, as requested.

This was on a Sid system, up-to-date before I went to install 'octave' with apt-get. Versions may differ for Jessie.

I can also run this on a Jessie machine (on a raspberrypi) if desired.

The following NEW packages will be installed:
aglfn gnuplot-data gnuplot-tex gnuplot-x11 libamd2.4.1 libarpack2 libcamd2.4.1 libccolamd2.9.1 libcholmod3.0.6 libcolamd2.9.1
libcxsparse3.1.4 libfltk-gl1.3 libfltk1.3 libgl2ps0 libglpk36 libgraphicsmagick++-q16-12 libgraphicsmagick-q16-3 libhdf5-10
libmagick++-6.q16-5v5 liboctave3v5 libopenblas-base libosmesa6 libplot2c2 libpstoedit0c2a libqrupdate1 libqscintilla2-12v5
libqscintilla2-l10n libsuitesparseconfig4.4.5 libumfpack5.7.1 octave octave-common octave-info pstoedit

ATM overhead detector results

Quantized ATM carrier LIKELY (cumulative residual: stair fit 7.9245 linear fit 26.8822)

My ADSL provider is CenturyLink, the modem says transport mode is ATM and the "Service Mode" or "Encapsulation" is "ATM - LLC Bridged".

I tested against the first hop after the router instead of Google's DNS server and the estimated overhead preceding the IP header is 32 bytes.

Results when testing my ISP DSLAM

Hello as you asked here are two graphs of me testing my isp dslam and the isp router after it with a repetition of 150 on the shell:

Router after DSLAM:
routerafterdslam

DSLAM:
dslam

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.