]> Cypherpunks.ru repositories - nncp.git/blobdiff - doc/sp.texi
Better text style
[nncp.git] / doc / sp.texi
index b111988367312de51809402c087693661fd18eaa..ab8390e6bbb85e5c98d10fe3bb5c4802052b1d6f 100644 (file)
@@ -1,20 +1,20 @@
 @node Sync
-@unnumbered Sync protocol
+@unnumbered Synchronization protocol
 
-So-called sync protocol (SP) is used in current TCP daemon's
+So-called synchronization protocol (SP) is used in current TCP daemon's
 implementation. It is used for synchronizing @ref{Spool, spool}
 directory contents between two nodes.
 
 It is aimed to be very simple and effective. It uses reliable transport
 like TCP connections. It must be effective both on single-duplex and
-full-duplex links: for example satellites have very high throughput and
+full-duplex links: for example satellites have very high throughput but
 high-delay links, so acknowledging of each received packet, like
 @url{https://en.wikipedia.org/wiki/XMODEM, XMODEM} does, causes
 unacceptable performance degradation.
 
 SP works on top of
 @url{http://noiseprotocol.org/noise.html#interactive-patterns,
-@code{Noise_IK_25519_ChaChaPoly_BLAKE2b}} protocol. Each Noise packet
+@verb{|Noise_IK_25519_ChaChaPoly_BLAKE2b|}} protocol. Each Noise packet
 are sent inside XDR envelope:
 
 @verbatim
@@ -27,46 +27,51 @@ are sent inside XDR envelope:
 @headitem  @tab XDR type @tab Value
 @item Magic number @tab
     8-byte, fixed length opaque data @tab
-    @code{NNCPS0x10x00x00}
+    @verb{|NNCPS0x00x00x01|}
 @item Payload @tab
     variable length opaque data @tab
     Noise packet itself
 @end multitable
 
-Peers static keys are specified as @ref{Configuration, @code{noisepub}}
+Peers static keys are specified as @ref{Configuration, @emph{noisepub}}
 configuration entry.
 
-Payload inside Noise packets has maximum size of @code{65 KiB - 256 B =
+Payload inside Noise packets has maximum size of @emph{65 KiB - 256 B =
 65280 B}. It is sent immediately in the first message by each side. The
 very first payload (that is carried inside handshake messages) is always
-padded to the maximum size with @code{HALT} packets (read below), for
-hiding actual number of @code{INFO} packets (number of files available
+padded to the maximum size with @emph{HALT} packets (read below), for
+hiding actual number of @emph{INFO} packets (number of files available
 for transmission).
 
-Each SP payload is a concatenation of various SP packets. Each packet
-has XDR-encoded header and then corresponding XDR-encoded body. Header
-is just an unsigned integer telling what body structure follows.
+Each SP payload is a concatenation of SP packets. Each packet has
+XDR-encoded header and then corresponding XDR-encoded body. Header is
+just an unsigned integer telling what body structure follows.
 
-@table @code
+@table @emph
 
 @item HALT
     Stop file transmission, empty sending queue on the remote side.
-    Actually @code{HALT} packet does not have any body, only the header
+    Actually @emph{HALT} packet does not have any body, only the header
     with the type. It is also used in the first payload for padding to
     the maximum size.
+@verbatim
++------+
+| HALT |
++------+
+@end verbatim
 
 @item INFO
     Information about the file we have for transmission.
 @verbatim
-+--------------------+
-| NICE | SIZE | HASH |
-+--------------------+
++------+--------------------+
+| INFO | NICE | SIZE | HASH |
++------+--------------------+
 @end verbatim
     @multitable @columnfractions 0.2 0.3 0.5
     @headitem  @tab XDR type @tab Value
     @item Niceness @tab
         unsigned integer @tab
-        1-255, file niceness level, its priority
+        1-255, file niceness level
     @item Size @tab
         unsigned hyper integer @tab
         File size
@@ -79,9 +84,9 @@ is just an unsigned integer telling what body structure follows.
     File transmission request. Ask remote side to queue the file for
     transmission.
 @verbatim
-+---------------+
-| HASH | OFFSET |
-+---------------+
++------+---------------+
+| FREQ | HASH | OFFSET |
++------+---------------+
 @end verbatim
     @multitable @columnfractions 0.2 0.3 0.5
     @headitem  @tab XDR type @tab Value
@@ -96,9 +101,9 @@ is just an unsigned integer telling what body structure follows.
 @item FILE
     Chunk of file.
 @verbatim
-+-------------------------+
-| HASH | OFFSET | PAYLOAD |
-+-------------------------+
++------+-------------------------+
+| FILE | HASH | OFFSET | PAYLOAD |
++------+-------------------------+
 @end verbatim
     @multitable @columnfractions 0.2 0.3 0.5
     @headitem  @tab XDR type @tab Value
@@ -116,9 +121,9 @@ is just an unsigned integer telling what body structure follows.
 @item DONE
     Signal remote side that we have successfully downloaded the file.
 @verbatim
-+------+
-| HASH |
-+------+
++------+------+
+| DONE | HASH |
++------+------+
 @end verbatim
     @multitable @columnfractions 0.2 0.3 0.5
     @headitem  @tab XDR type @tab Value