For a few months, I've been thinking of a new paradigm for packet ham radio networking.
Let's start by imagining a hypothetical packet network.
The Net
Legend
Black line | 1200 baud link (VHF) | |
Red line | 300 baud link (HF) |
This network spans 2 provinces. Within each province, the nodes are connected with high speed, 1200 baud connections. Lower speed, 300 baud links are used to connect the provinces together. We'll use this network to compare current packet radio to the new paradigm.
Old packet (AX.25)
Okay, so. Let's say you're a user who can connect to VE2D
from your house. You want to access a BBS which lives on VE9D
. You can do this by hopping between nodes.
First, you send
LIST
toVE2D
.VE2D
will relay your message toVE2C
.VE2C
relays toVE2C
......
VE9D
receives yourLIST
command.The same process is repeated in reverse to get the BBS's response back to you.
It works, but my god, is it slow. I've personally made an AX.25 connection to a BBS over 3 or 4 hops and it's barely usable. Every time you send a command, or more of a post you're writing, you have to wait 5, 10, 15 seconds for a response. This also slows file transfers way down. Whenever the transfer utility waits for a response (which tends to happen every few hundred bytes) there is a similar delay. It's basically impossible to get anywhere near the theoretical 1200 baud transfer if you have any hops at all!
On top of this, there's the fact that every node between you and the target must be up, and remain up for the duration of your connection.
New packet
In the new model, nodes are smarter. Every node has a copy of all posts. Instead of connecting to a node to read and write posts, you only connect to sync your local posts with the remote machine.
Let's again imagine that you're a user, VE2Z
, with access to VE2D
. You'd like to read the latest posts on the network. Maybe you have some posts written offline that you'd like to sync to the network as well. Here's roughly what happens:
Your local node (i.e. your computer)
VE2Z
opens a connection toVE2D
.The nodes efficiently exchange what posts they're missing.
VE2Z
sends missing posts toVE2D
.VE2D
sends missing posts toVE2Z
.The connection is terminated.
Since each node does the same syncing procedure with its neighbours, all posts are eventually propagated to the entire network. For an edge between nodes A
and B
, either A
needs to be configured to reach out to B
or vice versa - but not both! This makes it easy to add new nodes to the network.
Conceptually, this algorithm is very simple. There's no need for routing beyond single nodes, like in AX.25. If a node goes down, the network is still accessible, and will seamlessly re-sync once the node recovers.
With a bit of intelligence around node syncing (grabbing posts in a random order from all neighbouring nodes) it becomes possible to use both 300 baud HF links to sync posts between New Brunswick and Quebec at twice the speed. I don't really want to get into this much (it gives me the brain ouchies trying to explain it) but it still doesn't require routing, and the network is remains mostly stateless.
Limitations
I think the main disadvantage of this new system is its lack of flexibility. With AX.25, a node can do anything it wants. It would be possible to build a node that takes in commands, and does math on them, or searches it on Wikipedia for you... or anything else. Systems can be completely dynamic!
With the new paradigm, everything is static and rigid. I don't necessarily think this is a problem (look at the popularity of FT8!) but it's worth shining a spotlight on.
Similarities to Usenet
A few people have told me that this system is similar to Usenet/UUCP. After doing some reading, it seems like this is the case. There are a few differences, notably that UUCP has the concept of routing (e.g. bang paths) whereas this new protocol does not.
Regardless, the core concept remains the same, and there are probably ideas we could borrow from Usenet and UUCP.
Higher-level thoughts
So far, I've been imagining this as a distributed BBS. This system would be dominated by posts and replies. BBSes are cool, but I think I have a better idea.
Instead of posts, imagine there are pages. Pages would support some kind of markup language (or maybe even just normal HTML) and would be able to link to other pages in the network.
Suddenly, we have a World Wide Web that lives in ham radio! People could create their own little "websites" that live in this distributed system. The network is slow, so there would be size constraints - I think it would lead to a very similar environment to what the web was like in the 1990s.