internet-visualization
Source code of "Towards an interactive visualization of the Internet".
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
Repository
Source code of "Towards an interactive visualization of the Internet".
Basic Info
- Host: GitHub
- Owner: maxmouchet
- License: mit
- Language: Vue
- Default Branch: main
- Homepage: https://www.youtube.com/watch?v=txp0P-ETWrQ
- Size: 4.52 MB
Statistics
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
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).

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
- minilgl for computing the layout
- tippecanoe for building the tilesets
- Python and Poetry
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
- Website: www.maxmouchet.com
- Repositories: 90
- Profile: https://github.com/maxmouchet
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