Network Topology is the arrangement of the elements (links, nodes, etc.) of a communication network.
Each have their pros and cons.
As of Jan 23, 2022, our network topology looks like this:
BC Nodes are on the left, Alberta and other nodes are on the right.
Hovering over the picture will bring up a control panel:
-
and +
signs are to zoom out and in.
One of the things to notice is that there are quite a few small tunnel network loops in the current topology:
VE7LSE VE7ODG VE7GEC | VE7LSE VE7TOM VE7KGV | VE7LSE VE7OHM VE6VH | VE7OHM VE7MRP VA7DGP | VE7LSE VE7ODG VE7PMD VE7TOM | VE7LSE VE7TOM VE7KOD VE7RBE |
One way to eliminate these loops without compromising redundancy would be to add 3 new links and remove 6 (see p. 2):
The result would be a sort of hybrid where the RF links with Mt-Benson form a star, and the tunnel form a ring (see p.3).
Implement the changes above using this sheet to track the changes:
These are proposed rules for creating new tunnel links.
There was two steps in creating the diagram above:
The first step only takes a few seconds, but the second takes a little bit of time to move the nodes and format them in a way that is easy to visualize.
This Python script loads every mesh status pages on a given network and builds the list of connected nodes. All four .py
files should be located in the same folder.
aredn_topology.py | maps the topology of the network. |
aredn_speedtest.py | measures the time it takes to load each page. |
read_pages.py | functions needed to read the mesh status pages. |
write_files.py | functions needed to write the output files. |
The scripts output these text files:
aredn_topology.py: | |
→ Diagrams.net.txt | can be inputted into https://www.diagrams.net (AKA draw.io) |
→ Flowchart.fun.txt | can be inputted into https://flowchart.fun |
→ Human_Readable_List.txt | is an easy to read list of all stations and who they're connected to. |
→ Topology.csv | is a spreadsheet view of each connection. |
aredn_speedtest.py: | |
→ Download_Times.csv | is a spreadsheet with the times it took to load each page. |
The latest version (Dec 20) loads a maximum of 30 pages at a time, which was found to minimize the overall download time. Individual pages have a timeout period of one minute so the script can take anywhere from 9 seconds to 60 seconds to complete.
The table below shows the speed of the script depending on the number of concurrent downloads.
Concurrent Downloads | Total Run Time (s) | Sum of Individual Times (s) | Average Time per Page (s) |
---|---|---|---|
1 | 213.4 | 172.5 | 2.1 |
2 | 104.2 | 164.6 | 2.0 |
5 | 42.2 | 166.1 | 2.0 |
10 | 22.1 | 170.7 | 2.0 |
20 | 13.1 | 186.6 | 2.2 |
25 | 12.1 | 208.6 | 2.5 |
28 | 9.1 | 183.4 | 2.2 |
30 | 9.1 | 182 | 2.2 |
32 | 9.1 | 180 | 2.1 |
35 | 13.1 | 195.7 | 2.3 |
40 | 12.1 | 236.5 | 2.8 |
45 | 16.1 | 264.4 | 3.1 |
50 | 16.1 | 309 | 3.7 |
60 | 15.1 | 320.9 | 3.8 |
70 | 17.1 | 350.9 | 4.2 |
Notice that when downloading more than 10 pages at once, each individual page takes a little longer to load (maybe because of total bandwidth or CPU limitation), but the minimum total run time was with around 30 downloads. Another problem also arises when the number of download is greater than 70: some pages simply don't load (maybe because of CPU or memory limitation).
— Patrick, VA7FI 2021/12/14 20:08
From diagrams.net:
diagrams.net (previously draw.io) is a free and open source cross-platform graph drawing software developed in HTML5 and JavaScript.
diagrams.net is available as online as cross-browser web app, and as offline desktop application for Linux, macOS, and Windows. The web app does not require online login or registration, and can open from and save to the local hard drive.
To create a chart from the output of the python script:
Save diagrams to: Device
Create New Diagrams
Blank Diagram
+
sign in the tool bar at the top
Advanced
→ From Text…
Diagram
instead of List
Insert
Edit
→ Select Edges