See also this page @ref{Сценарии, on russian}.
@menu
-* Occasional connection to mail server: UsecaseMail.
-* Lightweight fast POP3/IMAP4 replacement: UsecasePOP.
-* Unreliable/expensive communication link: UsecaseUnreliable.
-* Slow/expensive link for high-volume data, bad QoS: UsecaseQoS.
-* Extreme terrestrial environments, no link: UsecaseNoLink.
-* One-way broadcasting communications: UsecaseBroadcast.
-* Satellite links: UsecaseSatelliteLinks.
-* Private, isolated MitM/Sybil-resistant networks: UsecaseF2F.
-* Highly secure isolated air-gap computers: UsecaseAirgap.
-* Network censorship bypassing, health: UsecaseCensor.
-* Reconnaissance, spying, intelligence, covert agents: UsecaseSpy.
-* Cheap night transfers: UsecaseCaller.
+* Occasional connection to mail server: UsecaseMail
+* Lightweight fast POP3/IMAP4 replacement: UsecasePOP
+* Unreliable/expensive communication link: UsecaseUnreliable
+* Slow/expensive link for high-volume data, bad QoS: UsecaseQoS
+* Extreme terrestrial environments, no link: UsecaseNoLink
+* One-way broadcasting communications: UsecaseBroadcast
+* Satellite links: UsecaseSatelliteLinks
+* Private, isolated MitM/Sybil-resistant networks: UsecaseF2F
+* Highly secure isolated air-gap computers: UsecaseAirgap
+* Network censorship bypassing, health: UsecaseCensor
+* Reconnaissance, spying, intelligence, covert agents: UsecaseSpy
+* Cheap night transfers: UsecaseCaller
+* Multicast flooding transmission: UsecaseMulticast
@end menu
@node UsecaseMail
@section Occasional connection to mail server
-Assume that you have got your own @url{http://www.postfix.org/, Postfix}
-SMTP server connected to the Internet. But you read and write emails on
-your notebook, that is connected to it just from time to time. How can
-you flush buffered mail queues when your notebook is connected?
+Assume that you have got your own @url{http://www.postfix.org/,
+Postfix}/@url{http://www.exim.org/, Exim} SMTP server connected to the
+Internet. But you read and write emails on your notebook, that is
+connected to it just from time to time. How can you flush buffered mail
+queues when your notebook is connected?
One possibility is to log in and run something like @command{postqueue
-f}, but by default you have got only several days so and sender will
overcomplicated and bloated for the simple task. Not an option.
@url{https://en.wikipedia.org/wiki/KISS_principle, KISS}!
-Just tell both of your Postfixes (on the server and notebook) to drop
-email as a mail via NNCP (@ref{nncp-exec}) to specified node. This is
-done similarly as with UUCP and as written in
-@url{http://www.postfix.org/UUCP_README.html, Postfix documentation}.
+Just tell both of your Postfix/Exim (on the server and notebook) to drop
+email as a mail via NNCP (@ref{nncp-exec}) to specified node.
-Look @ref{Postfix, here} for further information. All mail will be
-stored in NNCP @ref{Spool, spool}, that after exchanging and tossing
-will call local @command{sendmail} command to deliver them just like
-that happened on the same machine.
+More information for Postfix is @ref{Postfix, here} and for Exim is
+@ref{Exim, here}. All mail will be stored in NNCP @ref{Spool, spool},
+that after exchanging and tossing will call local @command{sendmail}
+command to deliver them just like that happened on the same machine.
@node UsecasePOP
@section Lightweight fast POP3/IMAP4 replacement
those the Bob has. All interrupted transfers will be automatically
resumed.
+Ability to do @ref{MCD, multicast nodes discovery} of participant in
+IPv6 networks allows complete ignorance of network addresses specifying.
+
@node UsecaseAirgap
@section Highly secure isolated air-gap computers
addr: lan
nice: MAX
onlinedeadline: 3600
- },
+ }
{
cron: "*/10 * * * *"
addr: wan
nice: PRIORITY
xx: rx
- },
+ }
{
cron: "*/1 0-7 * * *"
addr: wan
nice: BULK
onlinedeadline: 3600
maxonlinetime: 3600
- },
+ }
]
}
}
@end verbatim
+
+@node UsecaseMulticast
+@section Multicast flooding transmission
+
+Do you need to send single mail message or file to many recipients at
+once? For example an update of some program, network participants list
+or available files for freqing? But you are not connected directly to
+each of them?
+
+@verbatim
+ A-------->E---->F A -> B C E
+ / \ |\ ^ C -> H J
+ / \ | \ | E -> D F G
+v v v \v D -> G
+B C D---->G J -> K
+ / \ ^ / K -> D G
+ / \ | /
+ v v v /
+ H J<->K<-
+@end verbatim
+
+NNCP has @ref{Multicast, multicast} packets format, allowing you to
+flood transmission of the single packet to multiple recipients.
+@strong{A} sends packet to three destinations. @strong{C} sends it to
+the two nodes next. @strong{E} sends it to three. Some participants may
+receive multiple copies of the same packet, like @strong{D}, @strong{J},
+@strong{G}, @strong{F}, but that copies will be just ignored. If
+@strong{B} sends packet to single known to him @strong{A}, then that
+packet will be distributed among all other multicast area subscribers.
+
+Moreover those multicast packets are encrypted and require key knowledge
+for reading. But that does not prevent their relaying! Also you are not
+required to know sender's public keys. That way you can easily create
+echo-conferences for files or commands (like mail message delivering)
+transmission.
+
+Let's create keys for the new multicast area:
+
+@example
+$ nncp-cfgnew -area filelists -nocomments
+areas: @{
+ filelists: @{
+ id: TOU5TKOW4JBIZJBX63D4776C72FMWDAUAUSZNJX4DFOITVYQ5ZQA
+ pub: DSHL5O6BK2R3QKJAIJ7BC4UIGE73EC2LJPOV3VTS44KYOTUQYZLA
+ prv: AYD5FAA4GDDSAD5N65NJLLFS6TG2NSPQ46KAQO5U722JLVG34SOQ
+ @}
+@}
+@end example
+
+and send that keypair everybody who wants to read that area.
+For intermediaries willing to relay packets on, but that should not read
+them, you just need to send area's identity. For example @strong{A} adds
+to his configuration:
+
+@example
+areas: @{
+ filelists: @{
+ id: TOU...
+ pub: DSH...
+ prv: AYD...
+ subs: ["B", "C", "E"]
+ incoming: /home/A/areas/filelists
+ @}
+@end example
+
+and @strong{E}, that will be relaying intermediary (as we decided):
+
+@example
+areas: @{
+ filelists: @{
+ id: TOU...
+ subs: ["D", "F", "G"]
+ @}
+@end example
+
+After you distributed the knowledge about @code{nodelist} multicast
+area, you can share @ref{FreqIndex, file lists}:
+
+@example
+$ nncp-file tree-of-A-20210715.txt.zst area:filelists:
+$ nncp-toss -node self
+@end example