internet-visualization

Source code of "Towards an interactive visualization of the Internet".

https://github.com/maxmouchet/internet-visualization

Science Score: 54.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
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.9%) to scientific vocabulary

Keywords

data-visualization internet
Last synced: 6 months ago · JSON representation ·

Repository

Source code of "Towards an interactive visualization of the Internet".

Basic Info
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Topics
data-visualization internet
Created over 2 years ago · Last pushed over 2 years ago
Metadata Files
Readme License Citation

README.md

internet-visualization

This repository contains the source code for the web interface demoed in "Towards an interactive visualization of the Internet" (slides, dataset).

Screenshot

Reproduce the web interface

To reproduce the web interface demoed in the talk, download the tileset (5.2GB) and start the server: bash curl -Lo data/iris-2022-04-02.mbtiles 'https://zenodo.org/record/8034723/files/iris-2022-04-02.mbtiles?download=1' docker compose up Then, open http://localhost:1234 in your browser.

Rebuild the dataset

We provide four data files: - iris-2022-04-02.edges: the IP-level graph in the LGL format - iris-2022-04-02.layout: the coordinates of each IP address as computed by the LGL algorithm - iris-2022-04-02.geojsonl: points and lines representing IP addresses and links, augmented with RIR and AS information - iris-2022-04-02.mbtiles: the tileset used by Mapbox GL

In this section we show how to build the tileset starting from the IP-level graph.

If you want to run this on your own data, simply replace iris-2022-04-02.edges with your own file. You can use the write_lgl function of networkxtra to convert a graph to the LGL format.

Requirements

Download the graph

bash curl -Lo data/iris-2022-04-02.edges.zst 'https://zenodo.org/record/8034723/files/iris-2022-04-02.edges.zst?download=1' zstd -d data/iris-2022-04-02.edges.zst

Compute the layout

bash lglayout2d -t 4 data/iris-2022-04-02.edges mv lgl.out data/iris-2022-04-02.layout

With this graph containing 1.3M nodes and 3.5M edges this should take ~2 hours, depending on your machine and the number of threads set with -t.

Build the GeoJSON file

Create a virtual environment for the internet_maps module and enter a shell inside it:

bash poetry -C python/ install poetry -C python/ shell

Augment the graph with RIR and AS information, convert the node positions to the approriate coordinate system and output a GeoJSONL file: bash internet-maps geojson --bgp-date 2022-04-02 --scale 10 \ data/iris-2022-04-02.edges data/iris-2022-04-02.layout data/iris-2022-04-02.geojsonl

This is relatively fast, although downloading the BGP RIB can take some time.

Build the tileset

We encode some metadata in the tileset name as a JSON string.

bash tippecanoe \ --drop-densest-as-needed \ --extend-zooms-if-still-dropping \ --force \ --hilbert \ --maximum-zoom=g \ --read-parallel \ --name='{"data_source": "Iris", "vantage_point": "LIP6, Paris, France", "date": "2022-04-02"}' \ --output data/iris-2022-04-02.mbtiles data/iris-2022-04-02.geojsonl

This should take ~15 minutes depending on your machine.

Owner

  • Name: Maxime Mouchet
  • Login: maxmouchet
  • Kind: user
  • Location: Rennes, Brittany
  • Company: @ipinfo

traceroute enthusiast.

Citation (CITATION.bib)

@misc{mouchet_maxime_2022_8034723,
  author       = {Mouchet, Maxime},
  title        = {{Towards an interactive visualization of the 
                   Internet}},
  month        = apr,
  year         = 2022,
  publisher    = {Zenodo},
  doi          = {10.5281/zenodo.8034723},
  url          = {https://doi.org/10.5281/zenodo.8034723}
}

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels