X-Git-Url: http://www.git.cypherpunks.ru/?p=nncp.git;a=blobdiff_plain;f=doc%2Fcomparison.texi;h=d3d6fb174a675e0e01fde0af1b8d88a30da787c9;hp=601f46bfc067c10199f6a8ff365a618cbb2ebd11;hb=203dfe36da7adf2b3089e4fa4017a67409cbad70;hpb=17a808cd49f81edff610390a52a6f6073f0620fc diff --git a/doc/comparison.texi b/doc/comparison.texi index 601f46b..d3d6fb1 100644 --- a/doc/comparison.texi +++ b/doc/comparison.texi @@ -1,4 +1,9 @@ @node Comparison +@cindex comparison +@cindex SMTP +@cindex FTN +@cindex FidoNet +@cindex UUCP @unnumbered Comparison with existing solutions Here is comparison with @url{https://en.wikipedia.org/wiki/UUCP, UUCP} @@ -7,28 +12,30 @@ FidoNet} Technology Networks) and @url{https://en.wikipedia.org/wiki/SMTP, SMTP} (because it is also store-and-forward solution). @multitable @columnfractions 0.40 0.15 0.15 0.15 0.15 -@headitem @tab UUCP @tab FTN @tab NNCP @tab SMTP - -@item Ease of setup @tab Medium @tab Hard @tab Easy @tab Hard -@item Mail transmission @tab @strong{Yes} @tab @strong{Yes} @tab @strong{Yes} @tab @strong{Yes} -@item News transmission @tab @strong{Yes} @tab @strong{Yes} @tab No @tab No -@item File transmission @tab @strong{Yes} @tab @strong{Yes} @tab @strong{Yes} @tab No -@item Remote command execution @tab @strong{Yes} @tab No @tab No @tab No -@item Resumable downloads @tab @strong{Yes} @tab @strong{Yes} @tab @strong{Yes} @tab No -@item Packets prioritizing @tab @strong{Yes} @tab No @tab @strong{Yes} @tab No -@item Mail compression @tab No @tab @strong{Yes} @tab @strong{Yes} @tab No -@item SMTP integration @tab @strong{Yes} @tab No @tab @strong{Yes} @tab N/A -@item Push/poll @tab @strong{Both} @tab @strong{Both} @tab @strong{Both} @tab Push -@item Delay tolerant @tab @strong{Yes} @tab @strong{Yes} @tab @strong{Yes} @tab No -@item Intended network size @tab Dozens @tab Global @tab Dozens @tab Global -@item Routing @tab Manual/static @tab Federated @tab Manual/static @tab Federated -@item PSTN support @tab @strong{Yes} @tab @strong{Yes} @tab Possible @tab No -@item Anonymous peers @tab @strong{Yes} @tab No @tab No @tab @strong{Yes} -@item Peers authentication @tab PAP @tab PAP/CHAP @tab public-key @tab No -@item Packets encryption @tab No @tab No @tab @strong{Yes} @tab No -@item Metadata privacy @tab No @tab No @tab @strong{Yes} @tab No -@item Packets integrity check @tab No @tab No @tab @strong{Yes} @tab No -@item Sneakernet friendliness @tab No @tab No @tab @strong{Yes} @tab No +@headitem @tab UUCP @tab FTN @tab NNCP @tab SMTP + +@item Ease of setup @tab Medium @tab Hard @tab Easy @tab Hard +@item Mail transmission @tab @strong{Yes} @tab @strong{Yes} @tab @strong{Yes} @tab @strong{Yes} +@item News transmission @tab @strong{Yes} @tab @strong{Yes} @tab @strong{Yes} @tab No +@item File transmission @tab @strong{Yes} @tab @strong{Yes} @tab @strong{Yes} @tab No +@item Multicast transmission @tab No @tab @strong{Yes} @tab @strong{Yes} @tab No +@item Chunked files @tab No @tab @strong{Yes} @tab @strong{Yes} @tab No +@item Remote command execution @tab @strong{Yes} @tab No @tab @strong{Yes} @tab No +@item Resumable downloads @tab @strong{Yes} @tab @strong{Yes} @tab @strong{Yes} @tab No +@item Packets prioritizing @tab @strong{Yes} @tab No @tab @strong{Yes} @tab No +@item Mail compression @tab No @tab @strong{Yes} @tab @strong{Yes} @tab No +@item SMTP integration @tab @strong{Yes} @tab No @tab @strong{Yes} @tab N/A +@item Push/poll @tab @strong{Both} @tab @strong{Both} @tab @strong{Both} @tab Push +@item DTN @tab @strong{Yes} @tab @strong{Yes} @tab @strong{Yes} @tab No +@item Intended network size @tab Dozens @tab Global @tab Dozens @tab Global +@item Routing @tab Manual/static @tab Federated @tab Manual/static @tab Federated +@item PSTN support @tab @strong{Yes} @tab @strong{Yes} @tab Possible @tab No +@item Anonymous peers @tab @strong{Yes} @tab No @tab No @tab @strong{Yes} +@item Peers authentication @tab PAP @tab PAP/CHAP @tab public-key @tab No +@item Packets encryption @tab No @tab No @tab @strong{Yes} @tab No +@item Metadata privacy @tab No @tab No @tab @strong{Yes} @tab No +@item Packets integrity check @tab No @tab No @tab @strong{Yes} @tab No +@item Sneakernet friendliness @tab No @tab Partially @tab @strong{Yes} @tab No @end multitable @@ -44,25 +51,28 @@ FidoNet} Technology Networks) and @url{https://en.wikipedia.org/wiki/SMTP, SMTP} like GoldEd, not an ordinary email client. Moreover, there is no out-of-box encryption and strong authentication involved. - NNCP requires single YAML file editing and nothing more. - -@item News transmission - SMTP does not know anything about news, NNTP and so forth. Neither - does NNCP, because they are not used very much nowadays. + NNCP requires editing of single Hjson @ref{Configuration, + configuration file}. @item File transmission SMTP could transfer files only Base64-encoding them -- this is very inefficient. +@item Chunked files + FTN software can automatically split huge files on smaller chunks, + to reassemble it on the destination node. NNCP also supports + @ref{Chunked, that feature}, especially important when dealing with + small capacity removable storage devices. + @item Packets prioritizing UUCP and NNCP will push higher priority ("grade" in UUCP terminology) packets first. You mail will pass, even when many - gigabytes files is queued in parallel. + gigabytes files are queued in parallel. @item SMTP integration - Mail servers like @url{http://www.postfix.org/, Postfix} offers - documentation and configuration file examples how to use it with - UUCP. @url{http://www.exim.org/, Exim} and + Mail servers like @url{http://www.postfix.org/, Postfix} and + @url{http://www.exim.org/, Exim} offers documentation and + configuration file examples how to use it with UUCP. @url{http://www.sendmail.com/sm/open_source/, Sendmail} could be integrated with UUCP rather easily too. For using NNCP, just replace UUCP commands with NNCP ones. @@ -74,16 +84,15 @@ FidoNet} Technology Networks) and @url{https://en.wikipedia.org/wiki/SMTP, SMTP} to be independent from specified model and be able to exchange the data with possibility you have. -@item Delay tolerant +@item @url{https://en.wikipedia.org/wiki/Delay-tolerant_networking, DTN} (delay tolerant networking) SMTP will drop messages that can not be delivered for a long time - (several days). Others are - @url{https://en.wikipedia.org/wiki/Delay-tolerant_networking, - tolerant} for the long delays. + (several days). Others are tolerant for the long delays. @item 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. +@cindex PSTN @item 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 @@ -91,15 +100,60 @@ FidoNet} Technology Networks) and @url{https://en.wikipedia.org/wiki/SMTP, SMTP} TCP daemon, but nothing prohibits using of another 8-bit aware online transport. +@cindex anonymity +@cindex Sybil attack @item Anonymous peers NNCP and FTN are friend-to-friend networks exclusively. This is very - secure and mitigates many possible man-in-the-middle attacks. + secure and mitigates many possible man-in-the-middle (MitM) and + @url{https://en.wikipedia.org/wiki/Sybil_attack, Sybil} attacks. +@cindex sneakernet +@cindex floppynet @item Sneakernet friendliness No one, except NNCP, supports data exchanging via removable storages - likes flash drives, CD-ROMs, tapes and hard drives. 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. + 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. @end table + +@cindex UUCP commands +Also there is +@url{https://changelog.complete.org/archives/10165-asynchronous-email-exim-over-nncp-or-uucp, copy of} +comparable commands of UUCP and NNCP, just for the interest: + +@multitable @columnfractions 0.5 0.25 0.25 +@headitem Purpose @tab UUCP @tab NNCP + +@pindex uucico +@pindex uupoll +@pindex uux +@pindex uucp +@pindex uuxqt +@item Connect to remote system + @tab @command{uucico -s}, @command{uupoll} + @tab @command{nncp-call}, @command{nncp-caller} +@item Receive connection (pipe, daemon, etc) + @tab @command{uucico} (@option{-l} or similar) + @tab @command{nncp-daemon} +@item Request remote execution, @code{stdin} piped in + @tab @command{uux} + @tab @command{nncp-exec} +@item Copy file to remote machine + @tab @command{uucp} + @tab @command{nncp-file} +@item Copy file from remote machine + @tab @command{uucp} + @tab @command{nncp-freq} +@item Process received requests + @tab @command{uuxqt} + @tab @command{nncp-toss} +@item Move outbound requests to dir (for USB stick, airgap, etc) + @tab N/A + @tab @command{nncp-xfer} +@item Create streaming package of outbound requests + @tab N/A + @tab @command{nncp-bundle} + +@end multitable