]> Cypherpunks.ru repositories - nncp.git/blobdiff - doc/pkt/encrypted.texi
Multicast areas
[nncp.git] / doc / pkt / encrypted.texi
similarity index 61%
rename from doc/pkt.texi
rename to doc/pkt/encrypted.texi
index b47911330cd05978912fa2e317a30a995076de8c..b03614744dc08e867d046bf254c2bc74b45c366d 100644 (file)
@@ -1,76 +1,3 @@
-@node Packet
-@unnumbered Packet format
-
-All packets are
-@url{https://tools.ietf.org/html/rfc4506, XDR}-encoded structures.
-
-@menu
-* Plain packet: Plain.
-* Encrypted packet: Encrypted.
-@end menu
-
-@node Plain
-@section Plain packet
-
-Plain packet contains either the whole file, or file request (freq), or
-transition packet or exec message. It is called "plain", because it
-contains plaintext, but plain packets would never be stored on your hard
-drive.
-
-@verbatim
-            HEADER
-+--------------------------------------+--...---+
-| MAGIC | TYPE | NICE | PATHLEN | PATH | PAYLOAD|
-+--------------------------------------+--...---+
-@end verbatim
-
-@multitable @columnfractions 0.2 0.3 0.5
-@headitem @tab XDR type @tab Value
-@item Magic number @tab
-    8-byte, fixed length opaque data @tab
-    @verb{|N N C P P 0x00 0x00 0x03|}
-@item Payload type @tab
-    unsigned integer @tab
-    0 (file), 1 (freq), 2 (exec), 3 (transition), 4 (exec-fat)
-@item Niceness @tab
-    unsigned integer @tab
-    1-255, preferred packet @ref{Niceness, niceness} level
-@item Path length @tab
-    unsigned integer @tab
-    actual length of @emph{path} field's payload
-@item Path @tab
-    255 byte, fixed length opaque data @tab
-    @itemize
-    @item UTF-8 encoded destination path for file transfer
-    @item UTF-8 encoded source path for file request
-    @item UTF-8 encoded, zero byte separated, exec's arguments
-    @item Node's id the transition packet must be relayed on
-    @end itemize
-@end multitable
-
-Path has fixed size because of hiding its actual length -- it is
-valuable metadata. Payload is appended to the header -- it is not stored
-as XDR field, because XDR has no ability to pass more than 4 GiB of
-opaque data. Moreover most XDR libraries store fields in the memory in
-practice.
-
-Depending on the packet's type, payload could store:
-
-@itemize
-@item File contents
-@item Destination path for freq
-@item @url{https://facebook.github.io/zstd/, Zstandard} compressed exec body
-@item Whole encrypted packet we need to relay on
-@item Uncompressed exec body
-@end itemize
-
-Also depending on packet's type, niceness level means:
-
-@itemize
-@item Preferable niceness level for files sent by freq
-@item @env{NNCP_NICE} variable's value passed during @ref{CfgExec} invocation.
-@end itemize
-
 @node Encrypted
 @section Encrypted packet