]> Cypherpunks.ru repositories - nncp.git/blob - doc/comparison.texi
Align tables
[nncp.git] / doc / comparison.texi
1 @node Comparison
2 @unnumbered Comparison with existing solutions
3
4 Here is comparison with @url{https://en.wikipedia.org/wiki/UUCP, UUCP}
5 (Unix to Unix copy), FTN (@url{https://en.wikipedia.org/wiki/FidoNet,
6 FidoNet} Technology Networks) and @url{https://en.wikipedia.org/wiki/SMTP, SMTP}
7 (because it is also store-and-forward solution).
8
9 @multitable @columnfractions 0.40 0.15 0.15 0.15 0.15
10 @headitem @tab UUCP @tab FTN @tab NNCP @tab SMTP
11
12 @item Ease of setup            @tab Medium        @tab Hard          @tab Easy          @tab Hard
13 @item Mail transmission        @tab @strong{Yes}  @tab @strong{Yes}  @tab @strong{Yes}  @tab @strong{Yes}
14 @item News transmission        @tab @strong{Yes}  @tab @strong{Yes}  @tab @strong{Yes}  @tab No
15 @item File transmission        @tab @strong{Yes}  @tab @strong{Yes}  @tab @strong{Yes}  @tab No
16 @item Multicast transmission   @tab No            @tab @strong{Yes}  @tab @strong{Yes}  @tab No
17 @item Chunked files            @tab No            @tab @strong{Yes}  @tab @strong{Yes}  @tab No
18 @item Remote command execution @tab @strong{Yes}  @tab No            @tab @strong{Yes}  @tab No
19 @item Resumable downloads      @tab @strong{Yes}  @tab @strong{Yes}  @tab @strong{Yes}  @tab No
20 @item Packets prioritizing     @tab @strong{Yes}  @tab No            @tab @strong{Yes}  @tab No
21 @item Mail compression         @tab No            @tab @strong{Yes}  @tab @strong{Yes}  @tab No
22 @item SMTP integration         @tab @strong{Yes}  @tab No            @tab @strong{Yes}  @tab N/A
23 @item Push/poll                @tab @strong{Both} @tab @strong{Both} @tab @strong{Both} @tab Push
24 @item DTN                      @tab @strong{Yes}  @tab @strong{Yes}  @tab @strong{Yes}  @tab No
25 @item Intended network size    @tab Dozens        @tab Global        @tab Dozens        @tab Global
26 @item Routing                  @tab Manual/static @tab Federated     @tab Manual/static @tab Federated
27 @item PSTN support             @tab @strong{Yes}  @tab @strong{Yes}  @tab Possible      @tab No
28 @item Anonymous peers          @tab @strong{Yes}  @tab No            @tab No            @tab @strong{Yes}
29 @item Peers authentication     @tab PAP           @tab PAP/CHAP      @tab public-key    @tab No
30 @item Packets encryption       @tab No            @tab No            @tab @strong{Yes}  @tab No
31 @item Metadata privacy         @tab No            @tab No            @tab @strong{Yes}  @tab No
32 @item Packets integrity check  @tab No            @tab No            @tab @strong{Yes}  @tab No
33 @item Sneakernet friendliness  @tab No            @tab Partially     @tab @strong{Yes}  @tab No
34
35 @end multitable
36
37 @table @strong
38
39 @item Ease of setup
40     UUCP can be setup rather easily with few configuration files
41     and few lines in each of them. But you have to add some encryption
42     and authentication overlay for securing you data transmission.
43
44     FTN is hard to setup because it is totally different world of
45     software comparing to Unix one. Even mail editor will be something
46     like GoldEd, not an ordinary email client. Moreover, there is no
47     out-of-box encryption and strong authentication involved.
48
49     NNCP requires editing of single Hjson @ref{Configuration,
50     configuration file}.
51
52 @item File transmission
53     SMTP could transfer files only Base64-encoding them -- this is very
54     inefficient.
55
56 @item Chunked files
57     FTN software can automatically split huge files on smaller chunks,
58     to reassemble it on the destination node. NNCP also supports
59     @ref{Chunked, that feature}, especially important when dealing with
60     small capacity removable storage devices.
61
62 @item Packets prioritizing
63     UUCP and NNCP will push higher priority ("grade" in UUCP
64     terminology) packets first. You mail will pass, even when many
65     gigabytes files are queued in parallel.
66
67 @item SMTP integration
68     Mail servers like @url{http://www.postfix.org/, Postfix} and
69     @url{http://www.exim.org/, Exim} offers documentation and
70     configuration file examples how to use it with UUCP.
71     @url{http://www.sendmail.com/sm/open_source/, Sendmail} could be
72     integrated with UUCP rather easily too. For using NNCP, just replace
73     UUCP commands with NNCP ones.
74
75 @item Push/poll
76     With SMTP, you have to wait online when remote peers will push you
77     the messages. There are extensions to the protocol allowing
78     poll-model, but they are not used everywhere. This is very important
79     to be independent from specified model and be able to exchange the
80     data with possibility you have.
81
82 @item @url{https://en.wikipedia.org/wiki/Delay-tolerant_networking, DTN} (delay tolerant networking)
83     SMTP will drop messages that can not be delivered for a long time
84     (several days). Others are tolerant for the long delays.
85
86 @item Routing
87     UUCP and NNCP does not known nothing about routing. You have to
88     explicitly tell how to send (what hops to use) packets to each node.
89
90 @item PSTN support
91     UUCP and FidoNet always have been working with modems out-of-box.
92     Only many years later they gained support for working over TCP/IP
93     connections. SMTP works only over TCP/IP. NNCP currently has only
94     TCP daemon, but nothing prohibits using of another 8-bit aware
95     online transport.
96
97 @item Anonymous peers
98     NNCP and FTN are friend-to-friend networks exclusively. This is very
99     secure and mitigates many possible man-in-the-middle (MitM) and
100     @url{https://en.wikipedia.org/wiki/Sybil_attack, Sybil} attacks.
101
102 @item Sneakernet friendliness
103     No one, except NNCP, supports data exchanging via removable storages
104     likes flash drives, CD-ROMs, tapes and hard drives out-of-box. It
105     can be emulated for many FTN software, by manually copying files in
106     its inbound/outbound directories. But UUCP and SMTP software
107     requires more manual work to do so.
108
109 @end table
110
111 Also there is
112 @url{https://changelog.complete.org/archives/10165-asynchronous-email-exim-over-nncp-or-uucp, copy of}
113 comparable commands of UUCP and NNCP, just for the interest:
114
115 @multitable @columnfractions 0.5 0.25 0.25
116 @headitem Purpose @tab UUCP @tab NNCP
117
118 @item Connect to remote system
119     @tab @command{uucico -s}, @command{uupoll}
120     @tab @command{nncp-call}, @command{nncp-caller}
121 @item Receive connection (pipe, daemon, etc)
122     @tab @command{uucico} (@option{-l} or similar)
123     @tab @command{nncp-daemon}
124 @item Request remote execution, @code{stdin} piped in
125     @tab @command{uux}
126     @tab @command{nncp-exec}
127 @item Copy file to remote machine
128     @tab @command{uucp}
129     @tab @command{nncp-file}
130 @item Copy file from remote machine
131     @tab @command{uucp}
132     @tab @command{nncp-freq}
133 @item Process received requests
134     @tab @command{uuxqt}
135     @tab @command{nncp-toss}
136 @item Move outbound requests to dir (for USB stick, airgap, etc)
137     @tab N/A
138     @tab @command{nncp-xfer}
139 @item Create streaming package of outbound requests
140     @tab N/A
141     @tab @command{nncp-bundle}
142
143 @end multitable