# 2019-03-02 "IRP" Project Status

## Naming

For complete lack of a better name, I'm going to continue
using the placeholder "IRP" name suggested by Stephen (W8BSD): "IRP."
I don't even remember what it stood for now. Inter-radio-protocol
maybe? Plan is to rename. Not getting hung up on that for now.

## Survey of existing research:

Working through skim-level reading of available research, focusing on
topics like routing for Delay Tolerant Networks. Learning
terminology.

Current keywords that may be useful:

- MANET (Mobile ad hoc network)

- VANET (Vehicular ad hoc network)

- DTN (Disruption or Delay Tolerant Network)

- VDTN (Vehicular DTN)

- Hybrid V2I and I2V networks (communication between vehicle nodes and
 fixed location "infrastructure" nodes)

- Ferries (mobile nodes in a hybrid network that can carry messages)

- Store-Carry-Forward (SCF)

In skimming research, I'm still casting a broad net in chasing
citations, and not reading deeply yet. There are at least a couple
survey papers that already look very useful, in particular, "Routing
in Delay/Disruption Tolerant Networks: A Taxonomy, Survey and
Challenges" - I've starting methodically chasing down some of the 146
citations from that paper in a subcollection. I plan to eventually
pull together the most useful papers I find from casting this broad
net into another smaller subcollection. Eventually, I'll likely move
this to a group library published to Zotero, to share with
collaborators.

Informal survey of existing projects:
- ActivityPub
- Mastodon (implementation)
- (Secure) Scuttlebutt
- Patchwork (implementation)
- Rumble (implementation)
- APRS
- LoraWAN and HamLora

## Project scope

### Use cases:

#### Uses Not (yet) in scope:

I'm intentionally allowing myself a fair amount of flexibility in
terms of project scope at this stage, allowing my interests to carry
me afield into new domains or clarify requirements wherever seems
appropriate. At this stage, I'm not interesting in ruling out
_eventual_ support for use-cases like carrying the private
communications and public propaganda of political dissidents in more
dangerous contexts, but I'm attaching the initial design goals to an
amateur radio implementation, so any encryption that obscures meaning
will necessarily be omitted for legal reasons.

I'm also not _initially_ targeting emergency communications, though
given the centrality of designing around DTNs, the project may very
well lend itself to such adaptations in the future.

I'd like to make geodata an _optional_ component of this system rather
than a required one so that privacy-preserving applications may
_eventually_ be built on an adapted network. This may significatly
limit our recourse to information-based routing algorithms though, so
I haven't yet set this in stone.

#### Uses in scope:

- Informal social networks for local communities of licensed amateur
 radio operators. (Something like Twitter over the air for local ham
 radio clubs)

- Distribution of small messages.

- Possible authentication of said messages via lightweight signatures?
 (i.e. I know this message about the change to our Field Day location
 came from W8TAU because he signed it, and I can verify with his
 public key) The implementation details of this could be punted on,
 but authentication security should be legally feasible for an
 amateur radio implementation as it would not obscure the meaning of
 the messages.

- Eventual support for an ISM-band implementation for unlicensed use
 as a DTN for local communities (e.g. community event announcements,
 local business advertisements, garage sales, etc.)

- Sharing of updates to collective knowledge bases like wikis and
 documentation websites. [Insert hand-waving about things like IPFS
 and DAT here]

### Layer scope:

Several layers are very much still in scope for this project. It may
deal with the bundle and/or application layer in terms of adaptors to
existing decentralized or federated social networking protocols and
applications like ActivityPub or Scuttlebutt. This project will also
deal with routing protocols for a hybrid VANET. PHY layer details may
also be in scope, but it's possible we may be able to re-use existing
digital modes as our transport. Essentially the whole network stack is
still in scope, but as routing is likely the most interesting problem,
we may lean on existing implementations for as many of the other
layers as possible.

### Software scope:

It is quite likely that software will need to be written.

### Hardware scope:

Ideally, a design for low-cost BoM infrastructure and mobile nodes
would be included in this project as well. That may take the form of
Raspberry Pis with additional transceiver or filtering circuitry, or
it may take the form of new microprocessor-based fixed-band QRP
transceiver circuit designs.

The ideal design would be a standarized, small, batteries-included,
solar-powered transceiver + antenna package.  That is, there will
likely be not only (some) circuit design and layout needs, but also
integration considations, antenna system tradeoffs to be made, and
some mechanical design considarations for long term project housing.

## Project Goals

### Learning

The primary goal of this project is to learn new and interesting
things. Therefore, this is a research project.

The new and interesting things do not necessarily need to be 100%
novel to be worthwhile, they only need to be new and interesting to me
personally.

### Implementation

A secondary goal is to actually implement a network described by the
eventual research design so that further research can be done.

### Publication

A tertiary goal is to publish research findings from this project in
order to advance the radio art and share the excitement of learning
new and interesting things.

## Planning

At this point, I'm still mostly just chasing what seems most
interesting to learn or work on at the moment, but I'm starting to see
a number of things that may be needed in order to implement the
complete project.

### Research tasks

- Identify and summarize relevent routing protocols

- Formalize characterization of the desired network in precise terms
 congruous with the existing research body of knowledge.

- Identify any network layers requiring novel protocol designs

- Formalize requirements for specific protocols

### Experimentation tasks

- Learn to use various simulation tools:
 - ns-3
 - MANE / CORE ?
 - SUMO (for traffic modelling?)

- Extract or record historic real-world APRS data from aprs.fi or some
 other service for use in modeling possible traffic flows on
 hypothetical "IRP" networks

 - (The thought here is that if successful, initial adoption of "IRP"
   may look a lot like APRS)

- Experiment with local digital-mode propagation on various bands with
 various hardware

 - i.e. can we put a LPF and a small antenna on an RPi and reliably
   get something like MT63 down the street and back on 1.25cm using
   rpitx?

- Experiment with small and inexpensive antenna systems
 - Even very short distances may be useful!
 - Creative inexpensive antenna designs are very much in play still

- Experiment with inexpensive transciever options
 - What all can be done with rpitx?
 - What's possible with low-cost IC transceivers?

- Experiment with existing digital modes

 - What are the bandwidth, latency, and reliability characteristics
   of existing digital modes:

   - on various bands
   - at various distances
   - under various conditions

- Experiment with novel layering of existing protocols

 - Can we deliver ActivityPub over HTTP over Bundle and make any
   existing applications work?

- Experiment with new implementations of protocols found in research

 - Bundle Protocol https://tools.ietf.org/html/rfc5050

 - HTTP over Bundle Protocol for Delay-Tolerant Networks (DTN)
   https://tools.ietf.org/id/draft-perreault-dtnrg-http-00.html

 - various routing protocols for MANETs and VDTNs