Next: , Previous: , Up: NNCP   [Index]


Comparison with existing solutions

Here is comparison with UUCP (Unix to Unix copy), FTN (FidoNet Technology Networks) and SMTP (because it is also store-and-forward solution).

UUCPFTNNNCPSMTP
Ease of setupMediumHardEasyHard
Mail transmissionYesYesYesYes
News transmissionYesYesYesNo
File transmissionYesYesYesNo
Multicast transmissionNoYesYesNo
Chunked filesNoYesYesNo
Remote command executionYesNoYesNo
Resumable downloadsYesYesYesNo
Packets prioritizingYesNoYesNo
Mail compressionNoYesYesNo
SMTP integrationYesNoYesN/A
Push/pollBothBothBothPush
DTNYesYesYesNo
Intended network sizeDozensGlobalDozensGlobal
RoutingManual/staticFederatedManual/staticFederated
PSTN supportYesYesPossibleNo
Anonymous peersYesNoNoYes
Peers authenticationPAPPAP/CHAPpublic-keyNo
Packets encryptionNoNoYesNo
Metadata privacyNoNoYesNo
Packets integrity checkNoNoYesNo
Sneakernet friendlinessNoPartiallyYesNo
Ease of setup

UUCP can be setup rather easily with few configuration files and few lines in each of them. But you have to add some encryption and authentication overlay for securing you data transmission.

FTN is hard to setup because it is totally different world of software comparing to Unix one. Even mail editor will be something like GoldEd, not an ordinary email client. Moreover, there is no out-of-box encryption and strong authentication involved.

NNCP requires editing of single Hjson configuration file.

File transmission

SMTP could transfer files only Base64-encoding them – this is very inefficient.

Chunked files

FTN software can automatically split huge files on smaller chunks, to reassemble it on the destination node. NNCP also supports that feature, especially important when dealing with small capacity removable storage devices.

Packets prioritizing

UUCP and NNCP will push higher priority ("grade" in UUCP terminology) packets first. You mail will pass, even when many gigabytes files are queued in parallel.

SMTP integration

Mail servers like Postfix and Exim offers documentation and configuration file examples how to use it with UUCP. Sendmail could be integrated with UUCP rather easily too. For using NNCP, just replace UUCP commands with NNCP ones.

Push/poll

With SMTP, you have to wait online when remote peers will push you the messages. There are extensions to the protocol allowing poll-model, but they are not used everywhere. This is very important to be independent from specified model and be able to exchange the data with possibility you have.

DTN (delay tolerant networking)

SMTP will drop messages that can not be delivered for a long time (several days). Others are tolerant for the long delays.

Routing

UUCP and NNCP does not known nothing about routing. You have to explicitly tell how to send (what hops to use) packets to each node.

PSTN support

UUCP and FidoNet always have been working with modems out-of-box. Only many years later they gained support for working over TCP/IP connections. SMTP works only over TCP/IP. NNCP currently has only TCP daemon, but nothing prohibits using of another 8-bit aware online transport.

Anonymous peers

NNCP and FTN are friend-to-friend networks exclusively. This is very secure and mitigates many possible man-in-the-middle (MitM) and Sybil attacks.

Sneakernet friendliness

No one, except NNCP, supports data exchanging via removable storages likes flash drives, CD-ROMs, tapes and hard drives out-of-box. It can be emulated for many FTN software, by manually copying files in its inbound/outbound directories. But UUCP and SMTP software requires more manual work to do so.

Also there is copy of comparable commands of UUCP and NNCP, just for the interest:

PurposeUUCPNNCP
Connect to remote systemuucico -s, uupollnncp-call, nncp-caller
Receive connection (pipe, daemon, etc)uucico (-l or similar)nncp-daemon
Request remote execution, stdin piped inuuxnncp-exec
Copy file to remote machineuucpnncp-file
Copy file from remote machineuucpnncp-freq
Process received requestsuuxqtnncp-toss
Move outbound requests to dir (for USB stick, airgap, etc)N/Anncp-xfer
Create streaming package of outbound requestsN/Anncp-bundle

Next: Use cases, Previous: NNCP, Up: NNCP   [Index]