The command:
-@verbatim
-% nncp-file file_i_want_to_send bob:
-% nncp-file another_file bob:movie.avi
-@end verbatim
+@example
+$ nncp-file file_i_want_to_send bob:
+$ nncp-file another_file bob:movie.avi
+@end example
will queue two files for sending to @emph{bob} node. Fire and forget!
Now this is daemon's job (or offline transfer) to send this files part
niceness level, that will guarantee that it will be processed earlier or
later than the other ones. Nearly all commands has corresponding option:
-@verbatim
-% nncp-file -nice FLASH myfile node:dst
-% nncp-xfer -nice PRIORITY /mnt/shared
-% nncp-call -nice NORMAL bob
+@example
+$ nncp-file -nice FLASH myfile node:dst
+$ nncp-xfer -nice PRIORITY /mnt/shared
+$ nncp-call -nice NORMAL bob
[...]
-@end verbatim
+@end example
Huge files could be split on smaller @ref{Chunked, chunks}, giving
possibility to transfer virtually any volumes using small capacity
You can also use CD-ROM and tape drives:
-@verbatim
-% nncp-bundle -tx bob | cdrecord -tao -
-% nncp-bundle -tx bob | dd of=/dev/sa0 bs=10240
-@end verbatim
+@example
+$ nncp-bundle -tx bob | cdrecord -tao -
+$ nncp-bundle -tx bob | dd of=/dev/sa0 bs=10240
+@end example
@node UsecaseNoLink
@section Extreme terrestrial environments, no link
Assume that you send two files to @emph{bob} node. Insert USB storage
device (SD is preferable!), mount it and run @ref{nncp-xfer}:
-@verbatim
-% nncp-xfer -node bob /media/usbstick
-@end verbatim
+@example
+$ nncp-xfer -node bob /media/usbstick
+@end example
to copy all outbound packets related to @emph{bob}. Use @option{-mkdir}
option to create related directory on USB/SD storage if they are missing
@emph{alice}, then just omit @option{-node} option to copy all available
outgoing packets.
-@verbatim
-% nncp-xfer /media/usbstick
-@end verbatim
+@example
+$ nncp-xfer /media/usbstick
+@end example
Unmount it and transfer storage to Bob and Alice. When they will insert
it in their computers, they will use exactly the same command:
-@verbatim
-% nncp-xfer /media/usbstick
-@end verbatim
+@example
+$ nncp-xfer /media/usbstick
+@end example
to find all packets related to their node and copy them locally for
further processing. @command{nncp-xfer} is the only command used with
You can use @ref{Bundles, bundles} and stream them above. They are just
a sequence of @ref{Encrypted, encrypted packets} you can catch on.
-@verbatim
-% nncp-bundle -tx alice bob eve ... | command to send broadcast
-% command to receive broadcast | nncp-bundle -rx
-@end verbatim
+@example
+$ nncp-bundle -tx alice bob eve ... | command to send broadcast
+$ command to receive broadcast | nncp-bundle -rx
+@end example
With built-in packet duplicates detection ability, you can retransmit
your broadcasts from time to time, to increase chances the recipient
in the very first packet) secure transport with forward secrecy
property.
-@verbatim
-% nncp-daemon -bind [::]:5400
-@end verbatim
+@example
+$ nncp-daemon -bind "[::]":5400
+@end example
+
will start TCP daemon listening on all interfaces for incoming
connections.
-@verbatim
-% nncp-call bob
-@end verbatim
+@example
+$ nncp-call bob
+@end example
+
will try to connect to @emph{bob}'s node known TCP addresses (taken from
configuration file) and send all related outbound packets and retrieve
those the Bob has. All interrupted transfers will be automatically
NNCP supports packets relying (transitioning) out-of-box.
@verbatim
-neigh:
- bob:
+neigh: {
+ bob: {
[...]
- addrs:
- lan: [fe80::5400%igb0]:5400
+ addrs: {
+ lan: "[fe80::5400%igb0]:5400"
+ }
+ }
bob-airgap:
[...]
- via: [bob]
+ via: ["bob"]
+ }
+}
@end verbatim
That @ref{Configuration, configuration file} tells that we have got two
communications.
@verbatim
-neigh:
+neigh: {
[...]
- some-node:
+ some-node: {
[...]
- addrs:
+ addrs: {
lan: "[fe80::be5f:f4ff:fedd:2752%igb0]:5400"
wan: "some-node.com:5400"
- calls:
- -
+ }
+ calls: [
+ {
cron: "*/1 * * * *"
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