ndn-traffic-plotting-scripts

NDN traffic traces - Plotting scripts

https://github.com/tntech-ngin/ndn-traffic-plotting-scripts

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.4%) to scientific vocabulary

Keywords

ndn
Last synced: 6 months ago · JSON representation ·

Repository

NDN traffic traces - Plotting scripts

Basic Info
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 1
  • Open Issues: 1
  • Releases: 0
Topics
ndn
Created about 3 years ago · Last pushed about 2 years ago
Metadata Files
Readme License Citation

README.md

Description

This project is a packet analyser for Named Data Networking (NDN) packets. It uses a MongoDB database to store the packets and provides various plotting scripts to visualise the data. The included plotting scripts are: * components_hexbin.py - plots the distribution of number of components to its name length * grid_throughput.py - plots the throughput graph of four nodes * hoplimit.py - plots the hop limit of packets * lifetime_freshness.py - plots cdf of lifetime and freshness of packets * throughput.py - plots the throughput graph of a node with number of packets and size of packets in separate plots * popular_prefixes.py - plots the most popular prefixes in interest and data packets * content_size_distribution - plots the distribution of content size of NLSR traffic

Getting Started

Prerequisites

  • Python >= 3.10
  • MongoDB >= 6.0.6
  • ndntdump

Installation

  1. Create virtual environment and activate bash cd ndn-packet-view python3 -m venv venv source venv/bin/activate
  2. Install dependencies bash pip install -r requirements.txt
  3. Create .env bash cp .env.sample .env
  4. Create ndjson from pcapng.zst dump file
    • Find the local MAC address bash zstdcat <file_path_to_pcapng.zst> | tcpdump -r- -n -e | head -5
    • Extract into ndjson bash ndntdump -r <file_path_to_pcapng.zst> --local <local_mac_address> -L <path_to_output_file>
  5. Edit .env file and change the MONGODBNAME to the name of the database you want to use
  6. Index ndjson file into MongoDB bash python -m tools.index <file_path>
  7. Run the plotting scripts bash python -m tools.plots.<script_name>

Linters and Formatters

The project uses git pre-commit hooks to run linters and formatters. To enable the pre-commit hooks, run the following command: bash pre-commit install

Troubleshooting

If the commit reports conflicts with the unstaged changes, run the pre-commit hooks manually and commit again: bash pre-commit run --all-files or use --no-verify flag to skip the pre-commit verification: bash git commit --no-verify -m <message>

Owner

  • Login: tntech-ngin
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: "Please consider citing from preferred-citation below instead of citing the GitHub repository."
title: "NDN Traffic Plotting Scripts"
url: "https://github.com/tntech-ngin/ndn-traffic-plotting-scripts"
preferred-citation:
  type: conference-paper
  authors:
    - family-names: "Timilsina"
      given-names: "Sankalpa"
      orcid: "https://orcid.org/0009-0009-3936-5078"
    - family-names: "Pesavento"
      given-names: "Davide"
      orcid: "https://orcid.org/0000-0002-7136-1888"
    - family-names: "Shi"
      given-names: "Junxiao"
      orcid: "https://orcid.org/0000-0003-3138-0790"
    - family-names: "Shannigrahi"
      given-names: "Susmit"
      orcid: "https://orcid.org/0000-0001-6213-7473"
    - family-names: "Benmohamed"
      given-names: "Lotfi"
      orcid: "https://orcid.org/0009-0003-4857-7351"
  doi: "10.1145/3623565.3623707"
  start: 101
  end: 108
  pages: 8
  title: "Capture and Analysis of Traffic Traces on a Wide-Area NDN Testbed"
  collection-title: "Proceedings of the 10th ACM Conference on Information-Centric Networking"
  conference:
    name: "ACM ICN 2023"
    date-start: 2023-10-08
    date-end: 2023-10-10
  year: 2023
  month: 10

GitHub Events

Total
Last Year

Dependencies

pyproject.toml pypi
requirements.txt pypi
  • Pillow ==9.5.0
  • PyYAML ==6.0.1
  • aenum ==3.1.12
  • black ==23.7.0
  • cfgv ==3.4.0
  • click ==8.1.7
  • contourpy ==1.1.0
  • cycler ==0.11.0
  • distlib ==0.3.7
  • dnspython ==2.3.0
  • envparse ==0.2.0
  • filelock ==3.12.2
  • fonttools ==4.40.0
  • identify ==2.5.26
  • kiwisolver ==1.4.4
  • lark ==1.1.5
  • matplotlib ==3.6.3
  • motor ==3.1.1
  • mypy-extensions ==1.0.0
  • nodeenv ==1.8.0
  • numpy ==1.23.5
  • packaging ==23.1
  • pandas ==1.5.3
  • pathspec ==0.11.2
  • platformdirs ==3.10.0
  • pre-commit ==3.3.3
  • pycodestyle ==2.11.0
  • pycryptodomex ==3.18.0
  • pygtrie ==2.5.0
  • pymongo ==4.3.3
  • pyparsing ==3.0.9
  • python-dateutil ==2.8.2
  • python-ndn ==0.3.post2
  • pytz ==2023.3
  • ruff ==0.0.285
  • seaborn ==0.12.2
  • six ==1.16.0
  • tomli ==2.0.1
  • tqdm ==4.64.0
  • virtualenv ==20.24.3