Subject: Re: Air Gap & News

From: Sergey Matveev <[email-masked]>
Date: Sat, 26 Dec 2020 19:49:28 +0300

Greetings!

*** John Goerzen [2020-12-26 08:10]:
>First of all, I was planning to send a message here in the next day or two
>about this anyhow, but I'm working on a series of blog posts about NNCP.  You
>can see them at https://changelog.complete.org/archives/tag/asynchronous and
>I've got several more planned, covering using NNCP for Exim, using NNCP to
>handle both ZFS and non-ZFS backups, etc.

Thank you for your post! Beeing the "ZFS-fan" too, I am waiting for your
shared experience.

>Your solution was not part of
>UUCP and involved quite a bit of work (even private mount namespaces, which
>aren't available on every platform that UUCP/NNCP uses).  With NNCP it is
>just there. It doesn't need any particular configuration, just nncp-xfer and
>done.  Plus the security model is already baked in and non-optional (ssh
>style).

Yeah, exactly that I tried to tell in my previous message there! I do
not remember clearly, but possibly I decided to write my own UUCP for my
needs after writing another similar kind of the shell script for
sneakernet friendliness. That was too much :-)

>You are correct that NNCP could be used with rnews just as easily as UUCP.
>Sergey, you might correct that in the comparison table.

Added to the TODO, will correct it in the nearest time. That comparison
was written before "command exchanging" was available in NNCP.

>As a general matter, I am aware of only one feature that UUCP has which NNCP
>lacks: the ability to run across unreliable links (protocol g and friends,
>and PSTN).  As someone that has worked to develop a clone of certain UUCP
>protocols for low-bandwidth radio links, I totally get why!

Actually I have even started to write it, to run at least over COM-port.
But it is not so trivial. Well, actually creating something like XMODEM
of course is very simple, but one wish to use something like ZMODEM with
scaling windows. I did not find the way to easily call and interact with
lrzsz utilities for NNCP needs. And writing own complete implementation
of "TCP"/ZMODEM/similar is challenging (to make it efficient). So
currently I paused that work.

Moreover literally two weeks ago I was trying UDT
(https://en.wikipedia.org/wiki/UDP-based_Data_Transfer_Protocol)
protocol, Tsunami UDP and other UDP-based protocols, for being able to
saturate high-bandwidth/latency links, where TCP out-of-box may work
pretty badly. But it also was not so trivial to deal with. Out-of-box
UDT4 gave only 300-400 Mbps on 1Gbps LAN Ethernet link, much slower than
ordinary TCP. So I also paused work on that direction.

>However, I should certainly note that nncp-bundles can be *easily* sent
>across UUCP; just pipe the output via uux and have it pipe into nncp-bundle
>on the remote.  So if you're dealing with oldschool modems, or unreliable
>radios, or whatever, you can still run UUCP at the communication layer and
>pipe NNCP bundles across it.  The NNCP bundles, of course, carry the full
>encryption that NNCP uses, so additional encryption at the UUCP level would
>be unnecessary.

That is very interesting use-case! However of course it is not full
replacement for existing synchronization protocol (-call/-daemon) that
will exchange higher priority packets first.

>So, along those lines, I want to say thank you to Sergey for writing and
>maintaing NNCP, and also to you, for being interested in it and sending your
>message to the list.  I am glad both of you are here.

Thank you, John! I am also glad about feedback and interest.

-- 
Sergey Matveev (http://www.stargrave.org/)
OpenPGP: CF60 E89A 5923 1E76 E263  6422 AE1A 8109 E498 57EF