NNCP

What is NNCP?

  1. NNCP lets you securely send files, or request remote execution, between systems. It uses asynchronous communication, so the source and destination need never be online simultaneously. NNCP can route requests via intermediate devices – other NNCP nodes, USB sticks, tapes, radios, phones, cloud services, whatever – leading to a network that is highly resilient and flexible. NNCP makes it much easier to communicate with devices that lack Internet connectivity, or have poor Internet.

  2. NNCP is to UUCP what ssh is to telnet; NNCP is an Encrypted, authenticated, onion-routed version of UUCP!

  3. According to the NNCP documentation, NNCP is intended to help build up small size ad-hoc friend-to-friend (F2F) statically routed darknet delay-tolerant networks for fire-and-forget secure reliable files, file requests, Internet email and commands transmission. All packets are integrity checked, end-to-end encrypted, explicitly authenticated by known participants public keys. Onion encryption is applied to relayed packets. Each node acts both as a client and server, can use push and poll behaviour model. Also there is multicasting area support.

  4. Over NNCP, you can run email, Usenet, web downloading services, and more. NNCP’s use cases and integrations pages will give you ideas!

  5. A tool for small technology, privacy, and self-resilience.

See more about NNCP and download it at https://nncp.mirrors.quux.org/.

Learning about NNCP

Here are some materials for you:

NNCP information


Email is one of the most common examples of Asynchronous Communication people are familiar with today. It is a store-and-forward approach which is tolerant of temporary disruptions to services and supports multiple hops.

Asynchronous communication is communication between two endpoints that doesn’t have to happen in real time or near-real-time.

We’re going to cover two different sudo situations:

Usenet is sometimes said to be the world’s oldest social network. Since 1980, Usenet has been a massive, global discussion system. Participants can read and post messages (called articles) in discussion forums (called newsgroups). Unlike web forums, Usenet newgroups are available from thousands of independently-operated servers worldwide (instead of just one particular site). You can also use the client of your choice to access them.

UUCP is a system for exchanging data and requesting remote execution. It dates back to 1979, and was primarily used over modems using telephone landlines for most of its days of popularity. It is an Asynchronous Communication system, which transmits data from one machine to the next on the way to its destination. Each intermediate node may store the data before passing it on to the next.

Anything that uses encryption to keep content away from spying eyes.

Syncthing is a serverless, peer-to-peer file synchronization tool. It is often compared to Dropbox. However, unlike Dropbox, there is no central server with Syncthing; your devices talk directly to each other to sync data. Syncthing has various effective methods for firewall traversal, including public relays for the worst case. All Syncthing traffic is fully encrypted and authenticated.

Linux

These sites are hosted on the complete.org server. Some are hosted with resources donated to non-profit organizations.

You can use NNCP at SDF Public Access Unix!

NNCP can be run over Yggdrasil in two ways:

Old technology is any tech that’s, well… old.

This started out at a post on my blog. This edited version is intended to be kept more up-to-date.

Here are some (potentially) interesting topics you can find here:

NNCP has built-in support for running over TCP, with nncp-daemon and nncp-call/caller. NNCP’s own use cases page talks about various use cases for NNCP. Some of them, such as the no link page, cover use of nncp-xfer; others, such as the one-way broadcasting page go over nncp-bundle.

This page describes the basic installation and configuration of NNCP.

Usenet, of course, originally ran over UUCP in quite a few cases. Since NNCP is quite similar to UUCP – in fact, you can map UUCP commands to NNCP ones – it is quite possible, and not all that hard, to run Usenet over NNCP. In fact, in a number of ways, it works better than Usenet over UUCP!

When things are difficult – maybe there’s been a disaster, or an invasion (this page is being written in 2022 just after Russia invaded Ukraine), or maybe you’re just backpacking off the grid – there are tools that can help you keep in touch, or move your data around. This page aims to survey some of them, roughly in order from easiest to more complex.

This page describes some basic concepts of NNCP.

One of several single-board computers. The Raspberry Pi is an ARM computer that typically sells for less than $50. Generally is runs a derivative of Debian.

This page is intended to describe how to run Debian’s backports on a Raspberry Pi. Backports is Debian’s way of building newer packages for its stable releases. I intend this page specifically to help people run the Debian packages for NNCP and Yggdrasil, both of which are maintained by me, John Goerzen.

To use NNCP on Android, we need a way to build and run it. The easiest option for that is Termux.

The care and feeding of an NNCP installation.

According to the NNCP documentation, NNCP is intended to help build up small size ad-hoc friend-to-friend (F2F) statically routed darknet delay-tolerant networks for fire-and-forget secure reliable files, file requests, Internet Email and commands transmission. All packets are integrity checked, end-to-end Encrypted, explicitly authenticated by known participants public keys. Onion encryption is applied to relayed packets. Each node acts both as a client and server, can use push and poll behaviour model. Also there is multicasting area support.

“Airgap” refers to a computer (or network) that is physically disconnected from a larger network and the Internet.

I sometimes see people read about NNCP and wonder “This sounds great! But… what can I do with it?” This page aims to answer those questions.