]> Cypherpunks.ru repositories - nncp.git/blobdiff - doc/ack.texi
Merge branch 'develop'
[nncp.git] / doc / ack.texi
diff --git a/doc/ack.texi b/doc/ack.texi
new file mode 100644 (file)
index 0000000..085251b
--- /dev/null
@@ -0,0 +1,72 @@
+@node ACK
+@cindex ACKnowledgements
+@cindex packet acknowledgement
+@unnumbered ACKnowledgements
+
+There is possibility to explicitly acknowledge the receipt of the
+encrypted packet, by generating the reply of @code{ACK}-type which
+contains the packet identifier.
+
+ACK packets can be generated explicitly by @command{@ref{nncp-ack}}
+command, or during the tossing procedure if @option{-gen-ack} option
+is specified.
+
+General workflow with acknowledgement is following, assuming that
+Alice has some outbound packets for Bob:
+
+@itemize
+
+@item Transfer encrypted packets, without deleting them locally:
+
+@example
+alice$ nncp-xfer -keep -tx -node bob /mnt/shared
+@end example
+
+@item On Bob's side retrieve those packets:
+
+@example
+bob$ nncp-xfer -rx /mnt/shared
+@end example
+
+That will also check if copied packets checksum is not mismatched.
+
+@item Create ACK packets of received ones, saving the list of encrypted
+    ACK packets:
+
+@example
+bob$ nncp-ack -node alice 4>acks
+@end example
+
+@item Send those newly created packets back to Alice:
+
+@example
+bob$ nncp-xfer [-keep] -tx /mnt/shared
+@end example
+
+@item Remove them from outbound spool, because we expect no
+    acknowledgement for them:
+
+@example
+bob$ nncp-rm -node alice -pkt <acks
+@end example
+
+@item Get those acknowledgement packets and @ref{nncp-toss, toss} them:
+
+@example
+alice$ nncp-xfer -rx /mnt/shared
+alice$ nncp-toss
+@end example
+
+Each ACK packet will remove kept corresponding outbound packets, because
+Bob explicitly confirmed their receipt.
+
+@end itemize
+
+Similarly you can use it with @command{@ref{nncp-bundle}}, but do not
+forget that by default it does not do checksumming of the packets, so
+you should either use its @option{-check} option, or run
+@command{@ref{nncp-check}} after.
+
+If you generate ACK packet during the tossing, then the list of ACK
+packets is saved as empty files directly in the @ref{Spool, spool}.
+You can remove transferred ACK packets with @command{nncp-rm -ack}.