srt-packet-iat
This script parses .pcapng
tcpdump trace file captured at the receiver side and perform packet inter-arrival times analysis.
Getting Started
Requirements
- python 3.6+
- Custom library lib-tcpdump-processing (included in
requirements.txt
)
To install the library dependencies run:
pip install -r requirements.txt
Script Usage
The main purpose of srt-packet-iat
script is to parse .pcapng
tcpdump trace file captured at the receiver side, process the data as described in readme of lib-tcpdump-processing and perform packet inter-arrival time distribution analysis. SRT DATA (all data packets including probing packets) and SRT DATA probing packets only are supported.
.pcapng
filepath should be passed as an argument to the script. Script usage:
Usage: packet_iat.py [OPTIONS] PATH
Use --help
to get the full list of script options
Options:
--type [data|probing] Packet type to analyze: SRT DATA (all data
packets including probing packets) or SRT DATA
probing packets only. [default: data]
--overwrite / --no-overwrite If exists, overwrite the .csv file produced
out of the .pcapng tcpdump trace one at the
previous iterations of running the script.
[default: False]
--help Show this message and exit.
Note: The inter-arrival time for the first SRT data packet by default is equal to 0, that's why this packet is excluded from the analysis.
Tabs Description
The output of the script is the multitab .html
file generated with the help of bokeh library. The description of the tabs is provided below.
Tab: Exploratory Data Analysis
The Exploratory Data Analysis tab consists of the following tables and graphs:
- Inter-arrival packet time in microseconds vs Time in seconds graph,
- Table with basic statistics: percentiles, inter-quartile range (IQR), mean, standard deviation, etc.,
- Barchart of the number of packets vs inter-arrival packet time diaposon in microseconds (0-10, 10-100, 100-500 microseconds, etc.),
- Table of the number of packets, packets cumsum in absolute/percentage value vs inter-arrival packet time diaposon in microseconds (0-10, 10-100, 100-500 microseconds, etc.),
- Histograms regular and normalized of the inter-arrival packet time, 100 microseconds bins,
- Histograms regular and normalized of the inter-arrival packet time, 10 microseconds bins,
- Empirical Cumulative Distribution Function (ECDF) of the packet inter-arrival time.
Histograms
Packet inter-arrival time was split into intervals: ((n - 1) x 100, n x 100], n ∈ [1, 5000] for 100 microseconds bins and ((n - 1) x 10, n x 10], n ∈ [1, 50000] for 10 microseconds bins. Higher numbers of the intervals is not used due to the lower number of packets falling into them.
Graphs plot the histograms to the amount it reveals the trend cutting the long tails.
Fig. 1 corresponds to the regular 10 microseconds bins histogram of packet inter-arrival time, which zoomed version (Fig. 2) shows, for example, that approximately 77000 packets have the inter-arrival time falling into 40-50 microseconds interval and almost 114500 packets have the inter-arrival time falling into 50-60 microseconds interval.
Fig. 1. Histogram of inter-arrival packet time, 10 microseconds bins
Fig. 2. Histogram of inter-arrival packet time, 10 microseconds bins, zoomed
Empirical Cumulative Distribution Function (ECDF)
Graph plots the ECDF to the amount it reveals the trend cutting the long tails.
Fig. 3 corresponds to the ECDF of packet inter-arrival time distribution, which zoomed version (Fig. 4) shows, for example, that 95% of all the packets arrive in less than 76 microseconds and almost 97% of all the packets arrive in less than 100 microseconds.
Fig. 3. Empirical Cumulative Distribution Function of inter-arrival packet time
Fig. 4. Empirical Cumulative Distribution Function of inter-arrival packet time, zoomed
Tab: Statistics - Outliers Removed
Tab Statistics - Outliers Removed contains tables with basic statistics, e.g., percentiles, inter-quartile range (IQR), mean, standard deviation, etc., once the outliers have been removed from the original sample of packet inter-arrival times.