]> Cypherpunks.ru repositories - nncp.git/blobdiff - doc/sp.texi
Add various documentation indices
[nncp.git] / doc / sp.texi
index e7f4895c67f43c539915046887c1252d2de573b2..36f5cc794d32ced78508a4e99c718fa45cfea69a 100644 (file)
@@ -1,10 +1,14 @@
 @node Sync
+@cindex sync protocol
+@cindex online protocol
+@cindex synchronization
 @unnumbered Synchronization protocol
 
 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.
 
+@cindex XMODEM
 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 but
@@ -12,11 +16,13 @@ high-delay links, so acknowledging of each received packet, like
 @url{https://en.wikipedia.org/wiki/XMODEM, XMODEM} does, causes
 unacceptable performance degradation.
 
+@vindex NNCPDEADLINE
 Internally it uses various timeouts and deadlines. One of them used
 extensively is 10 seconds default deadline timeout. You can override it
 with @env{$NNCPDEADLINE} environment variable, that could be useful with
 very high delay links.
 
+@cindex Noise-IK
 SP works on top of
 @url{http://noiseprotocol.org/noise.html#interactive-patterns,
 @code{Noise_IK_25519_ChaChaPoly_BLAKE2b}} protocol. Each Noise packet
@@ -54,6 +60,7 @@ just an unsigned integer telling what body structure follows.
 
 @table @emph
 
+@cindex HALT payload
 @item HALT
     Stop file transmission, empty sending queue on the remote side.
     Actually @emph{HALT} packet does not have any body, only the header
@@ -66,6 +73,7 @@ just an unsigned integer telling what body structure follows.
 +------+
 @end verbatim
 
+@cindex PING payload
 @item PING
     Dummy packet only used for determining workability of the connection.
 
@@ -75,6 +83,7 @@ just an unsigned integer telling what body structure follows.
 +------+
 @end verbatim
 
+@cindex INFO payload
 @item INFO
     Information about the file we have for transmission.
 
@@ -97,6 +106,7 @@ just an unsigned integer telling what body structure follows.
         Unique file identifier, its checksum
     @end multitable
 
+@cindex FREQ payload
 @item FREQ
     File transmission request. Ask remote side to queue the file for
     transmission.
@@ -117,6 +127,7 @@ just an unsigned integer telling what body structure follows.
         Offset from which remote side must transmit the file
     @end multitable
 
+@cindex FILE payload
 @item FILE
     Chunk of file.
 
@@ -139,6 +150,7 @@ just an unsigned integer telling what body structure follows.
         Chunk of file itself
     @end multitable
 
+@cindex DONE payload
 @item DONE
     Signal remote side that we have successfully downloaded the file.